|
@@ -17,7 +17,7 @@
|
|
|
|
|
|
<br>
|
|
|
|
|
|
-### <div align="left">Pure Python & Open-Source. <div align="left"> How? Taipy pops out as a 360° platform to build production-ready web applications.
|
|
|
+### <div align="left">Pure Python & Open-Source. <div align="left"> "How? Taipy covers front-end, back-end, and deployment to build production-ready web applications."
|
|
|
|
|
|
<br>
|
|
|
|
|
@@ -25,9 +25,9 @@
|
|
|
<br>
|
|
|
<div align="center">
|
|
|
|
|
|
-| TAIPY - the frond-end | TAIPY - the back-end |
|
|
|
+| User Interface Generation | Scenario and Data Management |
|
|
|
| -------- | -------- |
|
|
|
-|<img src="readme_img/readme_gui_intro.gif" alt="Taipy FE Animation" width="100%"/> | <img src="readme_img/readme_be_intro.gif" alt="Taipy BE Animation" width="100%"/>
|
|
|
+|<img src="readme_img/gui_creation.webp" alt="Interface Animation" width="100%"/> | <img src="readme_img/scenario_and_data_mgt.gif" alt="Back-End Animation" width="100%"/>
|
|
|
|
|
|
|
|
|
</div>
|
|
@@ -55,7 +55,7 @@ Join our [Discord](https://discord.gg/XcFhrJZru3) to give us feedback, share you
|
|
|
|
|
|
## Ready, Set, GUI
|
|
|
|
|
|
-### Tiny Taipy Front-End Demo
|
|
|
+### Tiny User Interface Demo
|
|
|
|
|
|
```python
|
|
|
from taipy import Gui
|
|
@@ -67,7 +67,7 @@ excitement_page = """
|
|
|
|
|
|
<|{excitement}|slider|min=1|max=100|>
|
|
|
|
|
|
-My excitement level: <|{excitement}|text|>
|
|
|
+My excitement level: <|{excitement}|>
|
|
|
"""
|
|
|
excitement = 100
|
|
|
|
|
@@ -76,7 +76,7 @@ Gui(page=excitement_page).run()
|
|
|
*RUN*🏃🏽♀️
|
|
|
<div align="center">🎊 TA-DA! 🎊</div>
|
|
|
<br>
|
|
|
-<div align="center"><img src="readme_img/readme_fe_app.gif" width="50%" alt="FE demo"></img></div>
|
|
|
+<div align="center"><img src="readme_img/readme_fe_app.gif" width="50%" alt="Tiny Demo"></img></div>
|
|
|
|
|
|
<br>
|
|
|
|
|
@@ -85,13 +85,13 @@ Gui(page=excitement_page).run()
|
|
|
<br>
|
|
|
<br>
|
|
|
|
|
|
-## Taipy Back-End ⚙️
|
|
|
+## Scenario and Data Management ⚙️
|
|
|
|
|
|
-**<div align="left">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. </div>**
|
|
|
+**<div align="left">Let's create a *Scenario* in Taipy to filter movie data based on the genre you choose. This scenario models a simple pipeline. It is submitted (for execution) each time the genre selection changes and outputs the seven most popular movies of that genre. </div>**
|
|
|
|
|
|
<br>
|
|
|
|
|
|
-<div align="center"> ⚠️ 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!) </div>
|
|
|
+<div align="center"> ⚠️ Here, the back-end 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!) </div>
|
|
|
|
|
|
<br>
|
|
|
<br>
|
|
@@ -106,13 +106,13 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
|
|
|
|
|
|
*This is the execution graph of the scenario we are implementing*
|
|
|
|
|
|
-<div align="center"><img src="readme_img/readme_exec_graph.png" alt="Taipy BE Graph" width="80%"/></div>
|
|
|
+<div align="center"><img src="readme_img/readme_exec_graph.png" alt="Demo Execution Graph" width="80%"/></div>
|
|
|
|
|
|
|
|
|
### Taipy Studio - The easy peasy way
|
|
|
*You can use the Taipy Studio extension in VSCode to configure your sequence with no code*
|
|
|
|
|
|
-<div align="center"><img src="readme_img/readme_demo_studio.gif" width="80%" alt="demo BE"></img></div>
|
|
|
+<div align="center"><img src="readme_img/readme_demo_studio.gif" width="80%" alt="Demo Studio Gif"></img></div>
|
|
|
|
|
|
*Your configuration is automatically saved as a TOML file*
|
|
|
|
|
@@ -123,7 +123,7 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
|
|
|
<br>
|
|
|
<br>
|
|
|
|
|
|
-### Taipy Back-End - a walk on the code side
|
|
|
+### Taipy Scenario & Data Management - a walk on the code side
|
|
|
<div align="left">For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio, Taipy has your back! </div>
|
|
|
|
|
|
*<div align="left">Check out the movie genre demo scenario creation with this [Demo](https://www.taipy.io/project/movie-genre-selector/) </div>*
|
|
@@ -136,24 +136,24 @@ def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
|
|
|
<br>
|
|
|
|
|
|
|
|
|
-## Front-end ➕ Back-end
|
|
|
+## User Interface Generation ➕ Scenario & Data Management
|
|
|
*Now, let's load this configuration and add a user interface on top for a 🎉FULL APPLICATION🎉*
|
|
|
```python
|
|
|
import taipy as tp
|
|
|
import pandas as pd
|
|
|
from taipy import Config, Scope, Gui
|
|
|
|
|
|
-# TAIPY Back-end
|
|
|
+# TAIPY Scenario & Data Management
|
|
|
|
|
|
# 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 %')
|
|
|
+ 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']
|
|
|
+Config.load("config.toml")
|
|
|
+scenario_cfg = Config.scenarios["scenario"]
|
|
|
|
|
|
# Start Taipy Core service
|
|
|
tp.Core().run()
|
|
@@ -162,8 +162,8 @@ tp.Core().run()
|
|
|
scenario = tp.create_scenario(scenario_cfg)
|
|
|
|
|
|
|
|
|
-# TAIPY Front-end
|
|
|
-# Let's add fa GUI to our back-end for a full application
|
|
|
+# TAIPY User Interface
|
|
|
+# Let's add a GUI to our Scenario Management for a full application
|
|
|
|
|
|
# Callback definition - submits scenario with genre selection
|
|
|
def on_genre_selected(state):
|
|
@@ -173,13 +173,13 @@ def on_genre_selected(state):
|
|
|
|
|
|
# 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'
|
|
|
+ "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'
|
|
|
+df = pd.DataFrame(columns=["Title", "Popularity %"])
|
|
|
+selected_genre = "Action"
|
|
|
|
|
|
## Set initial value to Action
|
|
|
def on_init(state):
|
|
@@ -205,16 +205,16 @@ Gui(page=my_page).run()
|
|
|
|
|
|
<div align="center">🎊TA-DA!🎊</div>
|
|
|
<br>
|
|
|
-<div align="center"><img src="readme_img/readme_app.gif" width="80%" alt="Demo app"></img></div>
|
|
|
+<div align="center"><img src="readme_img/readme_app.gif" width="80%" alt="Image of a Taipy demonstration application"></img></div>
|
|
|
|
|
|
<br>
|
|
|
|
|
|
<br>
|
|
|
|
|
|
## ☁️Taipy Cloud☁️
|
|
|
-With Taipy Cloud, you can deploy your Taipy application in a *few clicks* and *for free*!
|
|
|
+With Taipy Cloud, you can deploy your Taipy applications in a *few clicks* and *for free*!
|
|
|
|
|
|
-<div align="center"><img src="readme_img/readme_cloud_demo.gif" alt="cloud demo" width="60%" ></img></div>
|
|
|
+<div align="center"><img src="readme_img/readme_cloud_demo.gif" alt="Demonstration of Taipy Cloud" width="60%" ></img></div>
|
|
|
|
|
|
<br>
|
|
|
<br>
|