https://github.com/dimitri-pletschette/taipyclone
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: dimitri-pletschette
- License: apache-2.0
- Language: Python
- Default Branch: develop
- Size: 307 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
- Releases: 0
Metadata Files
README.md
Build Python Data & AI web applications
No more compromises on performance, customization, and scalability.
## Table of Contents
- What's Taipy?
- Key Features
- Quickstart
- Scenario and Data Management
- Taipy Studio
- User Interface Generation and Scenario & Data Management
- Contributing
- Code of Conduct
- License
⭐️ What's Taipy?
Taipy is designed for data scientists and machine learning engineers to build data & AI web applications.
⭐️ Enables building production-ready web applications.
⭐️ No need to learn new languages; only Python is needed.
⭐️ Concentrate on data and AI algorithms without the complexities of development and deployment.
Taipy is a Two-in-One Tool for UI Generation and Scenario & Data Management
| User Interface Generation | Scenario & Data Management |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
|
|
|
✨ Key Features

⚙️ Quickstart
To install the stable release of Taipy, run:
bash
pip install taipy
Ready to Install Taipy? 🚀
Get everything set up in no time! Whether you're using a Conda environment or installing from
source, follow our Installation Guide for
step-by-step instructions.
Excited to Dive In? 💡
Start building with Taipy today! Our Getting Started Guide is the perfect place to begin your journey and unlock the full potential of Taipy.
🔌 Scenario & Data Management
Let's create a simple 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 that 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.
python
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 the 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.
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 front end and back end of the application.
```python import taipy as tp import pandas as pd from taipy import Config, Scope, Gui # Defining the helper functions # 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() ## Set initial value to Action def on_init(state): on_genre_selected(state) # 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 # The main script if __name__ == "__main__": # Taipy Scenario & Data Management # Load the configuration made with Taipy Studio Config.load("config.toml") scenario_cfg = Config.scenarios["scenario"] # Start Taipy Orchestrator tp.Orchestrator().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 # Get the 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" # 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:
⚒️ 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-2025 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 Apache License
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.
Owner
- Name: Dimitri Pletschette
- Login: dimitri-pletschette
- Kind: user
- Location: Zurich
- Website: dimitripletschette.com
- Twitter: dmxplx
- Repositories: 1
- Profile: https://github.com/dimitri-pletschette
Digital Product Manager & Technology Blogger
GitHub Events
Total
- Issue comment event: 3
- Push event: 5
- Pull request event: 6
- Create event: 26
Last Year
- Issue comment event: 3
- Push event: 5
- Pull request event: 6
- Create event: 26
Dependencies
- ./.github/actions/gui-test/e2e * composite
- ./.github/actions/gui-test/prefix * composite
- ./.github/actions/gui-test/pyi * composite
- actions/cache v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- stefanzweifel/git-auto-commit-action v5 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- stefanzweifel/git-auto-commit-action v5 composite
- actions/checkout v4 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v4 composite
- codespell-project/actions-codespell v2 composite
- actions/checkout v4 composite
- actions/github-script v7 composite
- actions/setup-python v5 composite
- peter-evans/create-pull-request v5 composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- artiomtr/jest-coverage-report-action v2 composite
- actions/github-script v6 composite
- actions/stale v9 composite
- boundfoxstudios/action-unassign-contributor-after-days-of-inactivity v1 composite
- ./.github/actions/install * composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- ./.github/actions/gui-test * composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- chartboost/ruff-action v1 composite
- dorny/paths-filter v2 composite
- jpetrucciani/mypy-check master composite
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/setup-python v5 composite
- nicksnell/action-reset-repo master composite
- stefanzweifel/git-auto-commit-action v5 composite
- actions/checkout v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- pypa/gh-action-pypi-publish release/v1 composite
- dasmerlon/project-issue-state-sync v2.0.1 composite
- peter-evans/repository-dispatch v3 composite
- convictional/trigger-workflow-and-wait v1.6.1 composite
- nginx latest build
- @types/react ^18.0.15 development
- @types/react-plotly.js ^2.6.3 development
- @typescript-eslint/eslint-plugin ^5.30.7 development
- @typescript-eslint/parser ^5.30.7 development
- child_process ^1.0.2 development
- copy-webpack-plugin ^11.0.0 development
- dotenv ^16.0.3 development
- eslint ^8.20.0 development
- eslint-plugin-react ^7.30.1 development
- eslint-plugin-react-hooks ^4.6.0 development
- eslint-webpack-plugin ^3.2.0 development
- ts-loader ^9.3.1 development
- typescript ^4.7.4 development
- webpack ^5.74.0 development
- webpack-cli ^4.10.0 development
- plotly.js ^2.35.3
- react ^18.2.0
- react-plotly.js ^2.6.0
- 684 dependencies
- @testing-library/jest-dom ^6.5.0 development
- @testing-library/react ^16.0.1 development
- @testing-library/user-event ^14.5.2 development
- @types/jest ^29.5.13 development
- @types/react ^18.0.15 development
- @typescript-eslint/eslint-plugin ^8.5.0 development
- @typescript-eslint/parser ^8.5.0 development
- child_process ^1.0.2 development
- cross-env ^7.0.3 development
- dotenv ^16.4.5 development
- eslint ^9.18.0 development
- eslint-plugin-react ^7.30.1 development
- eslint-plugin-react-hooks ^5.1.0 development
- eslint-plugin-tsdoc ^0.4.0 development
- eslint-webpack-plugin ^4.0.0 development
- jest ^29.7.0 development
- jest-environment-jsdom ^29.7.0 development
- ts-jest ^29.2.5 development
- ts-loader ^9.3.1 development
- typescript ^5.0.2 development
- webpack ^5.74.0 development
- webpack-cli ^6.0.1 development
- @emotion/react ^11.10.6
- @emotion/styled ^11.10.8
- @mui/icons-material ^6.0.1
- @mui/material ^6.0.1
- @mui/x-date-pickers ^7.0.0
- @mui/x-tree-view ^7.0.0
- @projectstorm/react-diagrams ^7.0.2
- @textea/json-viewer ^4.0.0
- date-fns ^3.6.0
- fast-deep-equal ^3.1.3
- formik ^2.2.9
- react ^18.2.0
- react-dom ^18.2.0
- taipy-gui file:../../taipy/gui/webapp
- js-tokens 4.0.0
- loose-envify 1.4.0
- react 18.3.1
- react-dom 18.3.1
- scheduler 0.23.2
- taipy-gui *
- react ^18.2.0
- react-dom ^18.2.0
- taipy-gui file:../packaging
- 1160 dependencies
- @testing-library/jest-dom ^6.1.3 development
- @testing-library/react ^16.0.0 development
- @testing-library/user-event ^14.2.1 development
- @types/css-mediaquery ^0.1.1 development
- @types/jest ^29.0.1 development
- @types/lodash ^4.14.177 development
- @types/react ^18.3.18 development
- @types/react-dom ^18.3.5 development
- @types/react-plotly.js ^2.5.0 development
- @types/react-router ^5.1.20 development
- @types/react-virtualized-auto-sizer ^1.0.1 development
- @types/react-window ^1.8.5 development
- @types/react-window-infinite-loader ^1.0.5 development
- @types/sprintf-js ^1.1.2 development
- @typescript-eslint/eslint-plugin ^8.5.0 development
- @typescript-eslint/parser ^8.5.0 development
- add-asset-html-webpack-plugin ^6.0.0 development
- autoprefixer ^10.4.0 development
- copy-webpack-plugin ^12.0.1 development
- cross-env ^7.0.3 development
- css-loader ^7.1.0 development
- css-mediaquery ^0.1.2 development
- dotenv-webpack ^8.0.0 development
- dts-bundle-generator ^7.2.0 development
- eslint ^9.18.0 development
- eslint-plugin-react ^7.26.1 development
- eslint-plugin-react-hooks ^5.1.0 development
- eslint-plugin-tsdoc ^0.4.0 development
- eslint-webpack-plugin ^4.0.0 development
- generate-json-webpack-plugin ^2.0.0 development
- html-webpack-plugin ^5.5.0 development
- husky ^9.0.11 development
- jest ^29.0.3 development
- jest-environment-jsdom ^29.0.3 development
- jest-websocket-mock ^2.2.1 development
- lint-staged ^15.0.2 development
- mock-socket ^9.0.7 development
- mock-xmlhttprequest ^8.2.0 development
- ts-jest ^29.0.0 development
- ts-jest-mock-import-meta ^1.2.0 development
- ts-loader ^9.2.6 development
- typedoc ^0.27.5 development
- typedoc-plugin-markdown ^4.3.2 development
- typescript ^5.7.2 development
- webpack ^5.61.0 development
- webpack-cli ^6.0.1 development
- @emotion/react ^11.10.0
- @emotion/styled ^11.10.0
- @mui/icons-material ^6.0.1
- @mui/material ^6.0.1
- @mui/x-date-pickers ^7.0.0
- @mui/x-tree-view ^7.0.0
- apache-arrow ^16.1.0
- axios ^1.2.0
- better-react-mathjax ^2.0.3
- date-fns ^4.1.0
- date-fns-tz ^3.1.3
- lodash ^4.17.21
- nanoid ^5.0.7
- notistack ^3.0.0
- plotly.js ^2.33.0
- react ^18.3.1
- react-dom ^18.3.1
- react-error-boundary ^5.0.0
- react-helmet-async ^2.0.1
- react-jsx-parser ^2.1.0
- react-markdown ^9.0.1
- react-plotly.js ^2.5.1
- react-router ^7.1.1
- react-virtualized-auto-sizer ^1.0.6
- react-window ^1.8.6
- react-window-infinite-loader ^1.0.7
- socket.io-client ^4.3.2
- sprintf-js ^1.1.2
- 123 dependencies
- freezegun * develop
- ipykernel * develop
- ipython * develop
- markdownify * develop
- mkdocs * develop
- mkdocs-autorefs * develop
- mkdocs-include-markdown-plugin * develop
- mkdocs-macros-plugin * develop
- mkdocs-material ==7.3.0 develop
- mkdocs-material-extensions * develop
- mkdocstrings * develop
- mongomock * develop
- moto ==4.2.13 develop
- pandas-stubs * develop
- playwright * develop
- pre-commit * develop
- pyopenssl * develop
- pytest ==7.4.3 develop
- pytest-cov * develop
- pytest-mock * develop
- pytest-playwright * develop
- pytest-timeout * develop
- python-dotenv * develop
- requests * develop
- ruff * develop
- testbook * develop
- twine * develop
- types-Flask-Cors * develop
- types-Markdown * develop
- types-flask * develop
- types-python-dateutil * develop
- types-pytz * develop
- types-toml >=0.10.0 develop
- types-tzlocal * develop
- Flask-RESTful >=0.3.9
- apispec ==6.3
- apispec-webframeworks ==0.5.2
- boto3 ==1.29.1
- charset-normalizer ==3.3.2
- cookiecutter ==2.1.1
- deepdiff ==6.7.1
- flask ==3.1.0
- flask-cors ==5.0.0
- flask-socketio ==5.4.1
- gevent ==24.11.1
- gevent-websocket ==0.10.1
- gitignore-parser ==0.1.1
- kthread ==0.2.3
- markdown ==3.4.4
- marshmallow ==3.20.1
- networkx ==2.6
- numpy <2.0.0
- openpyxl ==3.1.2
- pandas ==1.3.5
- pyarrow ==16.0.0
- pymongo ==4.6.3
- python-dotenv ==1.0.0
- python-magic ==0.4.24
- python-magic-bin ==0.4.14
- pytz ==2021.3
- simple-websocket ==0.10.1
- sqlalchemy ==2.0.16
- toml ==0.10
- twisted ==24.7.0
- tzlocal ==3.0
- watchdog ==4.0.0
- taipy-gui >=2.2
- taipy-gui >=2.2
- taipy *
- taipy *
- requests *
- tabulate *
- toml *
- cookiecutter >=2.1.1,<=2.6.0
- taipy-gui *
- taipy-rest *
- taipy-templates *
- deepdiff >=6.7.0,<=8.1.1
- toml >=0.10,<=0.10.2
- boto3 >=1.29.4,<=1.35.90
- networkx >=2.6,<=3.4.2
- openpyxl >=3.1.2,<=3.1.5
- pandas >=1.3.5,<=2.2.3
- pyarrow >=16.0.0,<=18.1.0
- pymongo >=4.2.0,<=4.10.1
- sqlalchemy >=2.0.16,<=2.0.36
- taipy-common *
- toml >=0.10,<=0.10.2
- charset-normalizer >=3.3.2,<=3.4.1
- flask >=3.1.0,<=3.1.0
- flask-cors >=5.0.0,<=5.0.0
- flask-socketio >=5.4.1,<=5.5.0
- gevent >=24.11.1,<=24.11.1
- gevent-websocket >=0.10.1,<=0.10.1
- gitignore-parser >=0.1,<=0.1.11
- kthread >=0.2.3,<=0.2.3
- markdown >=3.4.4,<=3.7
- pandas >=1.3.5,<=2.2.3
- python-dotenv >=1.0.0,<=1.0.1
- pytz >=2021.3,<=2024.2
- simple-websocket >=0.10.1,<=1.1.0
- taipy-common *
- twisted >=24.7.0,<=24.11.0
- tzlocal >=3.0,<=5.2
- watchdog >=4.0.0,<=6.0.0
- apispec >=6.3,<=6.8.0
- apispec-webframeworks >=0.5.2,<=1.2.0
- flask >=3.1.0,<=3.1.0
- flask-restful >=0.3.9,<=0.3.10
- marshmallow >=3.20.1,<=3.23.2
- passlib >=1.7.4,<=1.7.4
- taipy-core *