用于快速构建 基于python的web应用

Dinh Long Nguyen 2db60f2c89 Merge branch 'develop' into feature/gui-builder-direct-variable-passing 1 năm trước cách đây
.github d437eb766c fix: remove package.json from commit 1 năm trước cách đây
doc e47c7bf57c fix: remove $ from bash example to allow the user to copy the commands 1 năm trước cách đây
frontend 50ff0dc643 Added Step Property to the Slider component (#800) 1 năm trước cách đây
readme_img e1243292c6 Last change from comment 1 năm trước cách đây
taipy 2db60f2c89 Merge branch 'develop' into feature/gui-builder-direct-variable-passing 1 năm trước cách đây
tests 832ccaa53c Merge pull request #878 from Avaiga/fix/block-config-and-create-version-when-create-entities 1 năm trước cách đây
tools f471fc7e79 feat: modify build and release 1 năm trước cách đây
.editorconfig 356260bd3b fix: update markdown format 1 năm trước cách đây
.gitattributes 7f0b872e89 Add taipy-rest package (#13) 3 năm trước cách đây
.gitignore 21925680a7 feat: clean up .gitignore files 1 năm trước cách đây
.license-header 569f29cc06 Change year in copyright 1 năm trước cách đây
.pre-commit-config.yaml 64478fffc5 feat: enable mypy type checker 1 năm trước cách đây
CODE_OF_CONDUCT.md 571c461f13 add CONTRIBUTING.md and CODE_OF_CONDUCT.md 3 năm trước cách đây
CONTRIBUTING.md e47c7bf57c fix: remove $ from bash example to allow the user to copy the commands 1 năm trước cách đây
INSTALLATION.md e47c7bf57c fix: remove $ from bash example to allow the user to copy the commands 1 năm trước cách đây
LICENSE 662da8f227 Update LICENSE 1 năm trước cách đây
MANIFEST.in 356260bd3b fix: update markdown format 1 năm trước cách đây
Pipfile 4bcf158cbd fix: remove unused tox.ini 1 năm trước cách đây
README.md e47c7bf57c fix: remove $ from bash example to allow the user to copy the commands 1 năm trước cách đây
contributors.txt 7935c1eb6d feat: clean up contributors.txt files 1 năm trước cách đây
pyproject.toml 4bcf158cbd fix: remove unused tox.ini 1 năm trước cách đây
pytest.ini f5a18ef9f8 Remove modin dependency. compatibility is guaranteed by falling back on pandas. 1 năm trước cách đây
setup.py 6bad9c54e6 feat: change setup.py requirements to look to setup.requires 1 năm trước cách đây

README.md

Data and AI algorithms into production-ready web apps

Taipy is an open-source Python library for easy, end-to-end application development,
featuring what-if analyses, smart pipeline execution, built-in scheduling, and deployment tools.

<br />
<a href="https://docs.taipy.io/en/latest/"><strong>Explore the docs »</strong></a>
<br/><br/>
<a href="https://discord.com/invite/SJyz2VJGxV">Discord support</a>
·
<a href="https://docs.taipy.io/en/latest/knowledge_base/demos">Demos & Examples</a>

 

⭐️ What's Taipy?

Taipy is designed for data scientists and machine learning engineers to build full-stack apps.  

⭐️ Enables building production-ready web applications.
⭐️ No need to learn new languages or full-stack frameworks.
⭐️ Concentrate on Data and AI algorithms without development and deployment complexities.

 

User Interface Generation Scenario and Data Management
Interface Animation Back-End Animation

 

✨ Features

  • Python-Based UI Framework: Taipy is designed for Python users, particularly those working in AI and data science. It allows them to create full stack applications without needing to learn additional skills like HTML, CSS, or JavaScript.

  • Pre-Built Components for Data Pipelines: Taipy includes pre-built components that allow users to interact with data pipelines, including visualization and management tools.

  • Scenario and Data Management Features: Taipy offers features for managing different business scenarios and data, which can be useful for applications like demand forecasting or production planning.

  • Version Management and Pipeline Orchestration: It includes tools for managing application versions, pipeline versions, and data versions, which are beneficial for multi-user environments.

 

⚙️ Quickstart

To install Taipy stable release run:

pip install taipy

To install Taipy on a Conda Environment or from source, please refer to the Installation Guide.
To get started with Taipy, please refer to the Getting Started Guide.

 

🔌 Scenario and Data Management

Let's create a scenario in Taipy that allows you to filter movie data based on your chosen genre.
This scenario is designed as a straightforward pipeline.
Every time you change your genre selection, the scenario runs to process your request.
It then displays the top seven most popular movies in that genre.


⚠️ Keep in mind, in this example, we're using a very basic pipeline that consists of just one task. However,
Taipy is capable of handling much more complex pipelines 🚀


Below is our filter function. This is a typical Python function and it's the only task used in this 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 Studio

You can use the Taipy Studio extension in Visual Studio Code to configure your scenario with no code
Your configuration is automatically saved as a TOML file.
Check out Taipy Studio Documentation

For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio,
Check out the movie genre demo scenario creation with this Demo.

TaipyStudio

 

User Interface Generation and Scenario & Data Management

This simple Taipy application demonstrates how to create a basic film recommendation system using Taipy.
The application filters a dataset of films based on the user's selected genre and displays the top seven films in that genre by popularity. Here is the full code for both the frontend and backend of the application.

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

# 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 %")
    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 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):
    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()

And the final result:

 

☁️ Taipy cloud

With Taipy Cloud, you can deploy your Taipy applications in a few clicks and for free! To learn more about Taipy Cloud, please refer to the Taipy Cloud Documentation.

TaipyCloud

⚒️ Contributing

Want to help build Taipy? Check out our Contributing Guide.

🪄 Code of conduct

Want to be part of the Taipy community? Check out our Code of Conduct

🪪 License

Copyright 2021-2024 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.