Skip to content
/ test Public

Turns Data and AI algorithms into full web applications in no time.

Notifications You must be signed in to change notification settings

marisogo/test

Repository files navigation



Taipy Logo

Welcome to Taipy - Your Web Application Builder

PyPI PyPI

Taipy is an open-source Python library for building your web application front-end & back-end. No knowledge of web development is required!

Turns Data and AI algorithms into full web applications in no time.


📊 We make both ends meet ⚙️


TAIPY - the frond-end TAIPY - the back-end
Taipy FE Animation Taipy BE Animation


Installation

Open a terminal and run:

$ pip install taipy

You're all set! All aboard the Taipy journey 🚂


Community

Join our Discord to give us feedback, share your creations or just to have a chat with us.


Ready, Set, GUI

Tiny Taipy Front-End Demo

from taipy import Gui

excitement_page = """
# Welcome to Taipy
## Getting started with Taipy
### How excited are you to try Taipy?

<|{excitement}|slider|min=1|max=100|>

My excitement level: <|{excitement}|text|>
"""
excitement = 100

Gui(page=excitement_page).run()

RUN🏃🏽‍♀️

🎊 TA-DA! 🎊

FE demo


Find out more
Check out our Getting Started and Documentation



Taipy Back-End ⚙️

Let's create a back-end execution, also called scenario in Taipy. Our scenario will filter movie data based on the genre you choose. This scenario will be submitted (i.e., executed) each time the genre selection changes and output the seven most popular movies of that genre.


⚠️ Here, the backend involves the execution of a very simple pipeline (made of a single task). Note that Taipy is designed to build much more complex pipelines 🚀 (with many tasks!)


Here is our filter function: a standard Python function that is used by the unique task in the scenario

def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
    filtered_dataset = initial_dataset[initial_dataset['genres'].str.contains(selected_genre)]
    filtered_data = filtered_dataset.nlargest(7, 'Popularity %')
    return filtered_data

This is the execution graph of the scenario we are implementing

Taipy BE Graph

Taipy Studio - The easy-peasy way

You can use the Taipy Studio extension in VSCode to configure your sequence with no code

demo BE

Your configuration is automatically saved as a TOML file



Find out more
Check out our Documentation





Taipy Back-End - a walk on the code side

For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio, Taipy has your back!

Check out the movie genre demo scenario creation with this Demo




Find out more
Check out our Getting Started and Documentation




Front-end ➕ Back-end

Now, let's load this configuration and add a user interface on top for a 🎉FULL APPLICATION🎉

import taipy as tp
import pandas as pd
from taipy import Config, Scope, Gui

# TAIPY Back-end

# Filtering function - task
def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
    filtered_dataset = initial_dataset[initial_dataset['genres'].str.contains(selected_genre)]
    filtered_data = filtered_dataset.nlargest(7, 'Popularity %')
    return filtered_data

# Load the configuration made with Taipy Studio
Config.load('config.toml')
scenario_cfg = Config.scenarios['scenario']

# Start Taipy Core service
tp.Core().run()

# Create a scenario
scenario = tp.create_scenario(scenario_cfg)


# TAIPY Front-end
# Let's add fa GUI to our back-end for a full application

# Callback definition - submits scenario with genre selection
def on_genre_selected(state):
    scenario.selected_genre_node.write(state.selected_genre)
    tp.submit(scenario)
    state.df = scenario.filtered_data.read()

# Get list of genres
genres = [
    'Action', 'Adventure', 'Animation', 'Children', 'Comedy', 'Fantasy', 'IMAX'
    'Romance','Sci-FI', 'Western', 'Crime', 'Mystery', 'Drama', 'Horror', 'Thriller', 'Film-Noir','War', 'Musical', 'Documentary'
    ]

# Initialization of variables
df = pd.DataFrame(columns=['Title', 'Popularity %'])
selected_genre = 'Action'

## Set initial value to Action
def on_init(state):
    on_genre_selected(state)

# User interface definition
my_page = """
# Film recommendation

## Choose your favorite genre
<|{selected_genre}|selector|lov={genres}|on_change=on_genre_selected|dropdown|>

## Here are the top seven picks by popularity
<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>
"""

Gui(page=my_page).run()

RUN🏃🏽‍♀️


🎊TA-DA!🎊

Demo app


☁️Taipy Cloud☁️

With Taipy Cloud, you can deploy your Taipy application in a few clicks and for free!

cloud demo


Click here to get started for free



Contributing ⚒⚒

Want to help build Taipy? Check out our CONTRIBUTING.md file.

Code of conduct

Want to be part of the Taipy community? Check out our CODE_OF_CONDUCT.md file.

License

Copyright 2023 Avaiga Private Limited

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.