taipy


Nametaipy JSON
Version 3.1.1 PyPI version JSON
download
home_pagehttps://github.com/avaiga/taipy
SummaryA 360° open-source platform from Python pilots to production-ready web apps.
upload_time2024-04-08 13:45:44
maintainerNone
docs_urlNone
authorAvaiga
requires_python>=3.8
licenseApache License 2.0
keywords taipy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <a href="https://taipy.io?utm_source=github" target="_blank">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://github.com/Avaiga/taipy/assets/100117126/f59f70e9-1905-4abc-8760-8631b57c14c2">
    <img alt="Taipy" src="readme_img/readme_logo.png" width="200" />
  </picture>
  </a>
</div>

<h1 align="center">
Data and AI algorithms into production-ready web apps
</h1>

<div align="center">
Taipy is an open-source Python library for easy, end-to-end application development,<br />featuring what-if analyses, smart pipeline execution, built-in scheduling, and deployment tools.
</div>

  <p align="center">
    <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>
  </p>

&nbsp;

## ⭐️ What's Taipy?

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

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

&nbsp;

| User Interface Generation  | Scenario and Data Management |
| --------  | -------- |
|<img src="readme_img/gui_creation.webp" alt="Interface Animation"  width="850px" height="250px" /> | <img src="readme_img/scenario_and_data_mgt.gif" alt="Back-End Animation"  width="100%"/>

&nbsp;

## ✨ 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.

&nbsp;

## ⚙️ Quickstart
To install Taipy stable release run:
```bash
pip install taipy
```

To install Taipy on a Conda Environment or from source, please refer to the [Installation Guide](https://docs.taipy.io/en/latest/installation/).<br />
To get started with Taipy, please refer to the [Getting Started Guide](https://docs.taipy.io/en/latest/getting_started/).

&nbsp;

## 🔌 Scenario and Data Management

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

<br />

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

<br />

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
<p align="center">
<img src="https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_exec_graph.png" width="600" align="center" />
</p>

### Taipy Studio
You can use the Taipy Studio extension in Visual Studio Code to configure your scenario with no code<br />
Your configuration is automatically saved as a TOML file.<br />
Check out Taipy Studio [Documentation](https://docs.taipy.io/en/latest/manuals/studio/)

For more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio,<br />
Check out the movie genre demo scenario creation with this [Demo](https://docs.taipy.io/en/latest/knowledge_base/demos/movie_genre_selector/).

![TaipyStudio](https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_demo_studio.gif)

&nbsp;

## User Interface Generation and Scenario & Data Management
This simple Taipy application demonstrates how to create a basic film recommendation system using Taipy.<br />
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.

```python
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:
<img src="readme_img/readme_app.gif" />

&nbsp;

## ☁️ 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](https://docs.taipy.io/en/latest/cloud/).

![TaipyCloud](https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_cloud_demo.gif)

## ⚒️ Contributing
Want to help build Taipy? Check out our [Contributing Guide](https://github.com/Avaiga/taipy/blob/develop/CONTRIBUTING.md).

## 🪄 Code of conduct
Want to be part of the Taipy community? Check out our [Code of Conduct](https://github.com/Avaiga/taipy/blob/develop/CODE_OF_CONDUCT.md)

## 🪪 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](https://www.apache.org/licenses/LICENSE-2.0.txt)

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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/avaiga/taipy",
    "name": "taipy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "taipy",
    "author": "Avaiga",
    "author_email": "dev@taipy.io",
    "download_url": "https://files.pythonhosted.org/packages/45/8c/9aca7b912c23cabf5f146a90243d8694b525f54e758476791af8a2e62938/taipy-3.1.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <a href=\"https://taipy.io?utm_source=github\" target=\"_blank\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/Avaiga/taipy/assets/100117126/f59f70e9-1905-4abc-8760-8631b57c14c2\">\n    <img alt=\"Taipy\" src=\"readme_img/readme_logo.png\" width=\"200\" />\n  </picture>\n  </a>\n</div>\n\n<h1 align=\"center\">\nData and AI algorithms into production-ready web apps\n</h1>\n\n<div align=\"center\">\nTaipy is an open-source Python library for easy, end-to-end application development,<br />featuring what-if analyses, smart pipeline execution, built-in scheduling, and deployment tools.\n</div>\n\n  <p align=\"center\">\n    <br />\n    <a href=\"https://docs.taipy.io/en/latest/\"><strong>Explore the docs \u00bb</strong></a>\n    <br/><br/>\n    <a href=\"https://discord.com/invite/SJyz2VJGxV\">Discord support</a>\n    \u00b7\n    <a href=\"https://docs.taipy.io/en/latest/knowledge_base/demos\">Demos & Examples</a>\n  </p>\n\n&nbsp;\n\n## \u2b50\ufe0f What's Taipy?\n\nTaipy is designed for data scientists and machine learning engineers to build full-stack apps.\n&nbsp;\n\n\u2b50\ufe0f Enables building production-ready web applications.<br />\n\u2b50\ufe0f No need to learn new languages or full-stack frameworks.<br />\n\u2b50\ufe0f Concentrate on Data and AI algorithms without development and deployment complexities.\n\n&nbsp;\n\n| User Interface Generation  | Scenario and Data Management |\n| --------  | -------- |\n|<img src=\"readme_img/gui_creation.webp\" alt=\"Interface Animation\"  width=\"850px\" height=\"250px\" /> | <img src=\"readme_img/scenario_and_data_mgt.gif\" alt=\"Back-End Animation\"  width=\"100%\"/>\n\n&nbsp;\n\n## \u2728 Features\n- **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.\n\n\n- **Pre-Built Components for Data Pipelines:** Taipy includes pre-built components that allow users to interact with data pipelines, including visualization and management tools.\n\n\n- **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.\n\n\n- **Version Management and Pipeline Orchestration:** It includes tools for managing application versions, pipeline versions, and data versions, which are beneficial for multi-user environments.\n\n&nbsp;\n\n## \u2699\ufe0f Quickstart\nTo install Taipy stable release run:\n```bash\npip install taipy\n```\n\nTo install Taipy on a Conda Environment or from source, please refer to the [Installation Guide](https://docs.taipy.io/en/latest/installation/).<br />\nTo get started with Taipy, please refer to the [Getting Started Guide](https://docs.taipy.io/en/latest/getting_started/).\n\n&nbsp;\n\n## \ud83d\udd0c Scenario and Data Management\n\nLet's create a scenario in Taipy that allows you to filter movie data based on your chosen genre.<br />\nThis scenario is designed as a straightforward pipeline.<br />\nEvery time you change your genre selection, the scenario runs to process your request.<br />\nIt then displays the top seven most popular movies in that genre.\n\n<br />\n\n> \u26a0\ufe0f Keep in mind, in this example, we're using a very basic pipeline that consists of just one task. However,<br />\n> Taipy is capable of handling much more complex pipelines \ud83d\ude80\n\n<br />\n\nBelow is our filter function. This is a typical Python function and it's the only task used in this scenario.\n\n```python\ndef filter_genre(initial_dataset: pd.DataFrame, selected_genre):\n    filtered_dataset = initial_dataset[initial_dataset['genres'].str.contains(selected_genre)]\n    filtered_data = filtered_dataset.nlargest(7, 'Popularity %')\n    return filtered_data\n```\n\nThis is the execution graph of the scenario we are implementing\n<p align=\"center\">\n<img src=\"https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_exec_graph.png\" width=\"600\" align=\"center\" />\n</p>\n\n### Taipy Studio\nYou can use the Taipy Studio extension in Visual Studio Code to configure your scenario with no code<br />\nYour configuration is automatically saved as a TOML file.<br />\nCheck out Taipy Studio [Documentation](https://docs.taipy.io/en/latest/manuals/studio/)\n\nFor more advanced use cases or if you prefer coding your configurations instead of using Taipy Studio,<br />\nCheck out the movie genre demo scenario creation with this [Demo](https://docs.taipy.io/en/latest/knowledge_base/demos/movie_genre_selector/).\n\n![TaipyStudio](https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_demo_studio.gif)\n\n&nbsp;\n\n## User Interface Generation and Scenario & Data Management\nThis simple Taipy application demonstrates how to create a basic film recommendation system using Taipy.<br />\nThe application filters a dataset of films based on the user's selected genre and displays the top seven films in that genre by popularity.\nHere is the full code for both the frontend and backend of the application.\n\n```python\nimport taipy as tp\nimport pandas as pd\nfrom taipy import Config, Scope, Gui\n\n# Taipy Scenario & Data Management\n\n# Filtering function - task\ndef filter_genre(initial_dataset: pd.DataFrame, selected_genre):\n    filtered_dataset = initial_dataset[initial_dataset[\"genres\"].str.contains(selected_genre)]\n    filtered_data = filtered_dataset.nlargest(7, \"Popularity %\")\n    return filtered_data\n\n# Load the configuration made with Taipy Studio\nConfig.load(\"config.toml\")\nscenario_cfg = Config.scenarios[\"scenario\"]\n\n# Start Taipy Core service\ntp.Core().run()\n\n# Create a scenario\nscenario = tp.create_scenario(scenario_cfg)\n\n\n# Taipy User Interface\n# Let's add a GUI to our Scenario Management for a full application\n\n# Callback definition - submits scenario with genre selection\ndef on_genre_selected(state):\n    scenario.selected_genre_node.write(state.selected_genre)\n    tp.submit(scenario)\n    state.df = scenario.filtered_data.read()\n\n# Get list of genres\ngenres = [\n    \"Action\", \"Adventure\", \"Animation\", \"Children\", \"Comedy\", \"Fantasy\", \"IMAX\"\n    \"Romance\",\"Sci-FI\", \"Western\", \"Crime\", \"Mystery\", \"Drama\", \"Horror\", \"Thriller\", \"Film-Noir\",\"War\", \"Musical\", \"Documentary\"\n    ]\n\n# Initialization of variables\ndf = pd.DataFrame(columns=[\"Title\", \"Popularity %\"])\nselected_genre = \"Action\"\n\n## Set initial value to Action\ndef on_init(state):\n    on_genre_selected(state)\n\n# User interface definition\nmy_page = \"\"\"\n# Film recommendation\n\n## Choose your favorite genre\n<|{selected_genre}|selector|lov={genres}|on_change=on_genre_selected|dropdown|>\n\n## Here are the top seven picks by popularity\n<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>\n\"\"\"\n\nGui(page=my_page).run()\n```\n\nAnd the final result:\n<img src=\"readme_img/readme_app.gif\" />\n\n&nbsp;\n\n## \u2601\ufe0f Taipy cloud\nWith Taipy Cloud, you can deploy your Taipy applications in a few clicks and for free!\nTo learn more about Taipy Cloud, please refer to the [Taipy Cloud Documentation](https://docs.taipy.io/en/latest/cloud/).\n\n![TaipyCloud](https://github.com/Avaiga/taipy/raw/develop/readme_img/readme_cloud_demo.gif)\n\n## \u2692\ufe0f Contributing\nWant to help build Taipy? Check out our [Contributing Guide](https://github.com/Avaiga/taipy/blob/develop/CONTRIBUTING.md).\n\n## \ud83e\ude84 Code of conduct\nWant to be part of the Taipy community? Check out our [Code of Conduct](https://github.com/Avaiga/taipy/blob/develop/CODE_OF_CONDUCT.md)\n\n## \ud83e\udeaa License\nCopyright 2021-2024 Avaiga Private Limited\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with\nthe License. You may obtain a copy of the License at\n[http://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "A 360\u00b0 open-source platform from Python pilots to production-ready web apps.",
    "version": "3.1.1",
    "project_urls": {
        "Homepage": "https://github.com/avaiga/taipy"
    },
    "split_keywords": [
        "taipy"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f68943268850281e2931bc2923ff27c713a521d44bf586e3b984ece0bd421e3",
                "md5": "348a283db7f6f7534b6d574811e8be55",
                "sha256": "f20034299d170a700e8171ed9fbb014921b50679df2f0748016013e6b1491aa6"
            },
            "downloads": -1,
            "filename": "taipy-3.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "348a283db7f6f7534b6d574811e8be55",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2925210,
            "upload_time": "2024-04-08T13:45:41",
            "upload_time_iso_8601": "2024-04-08T13:45:41.659484Z",
            "url": "https://files.pythonhosted.org/packages/8f/68/943268850281e2931bc2923ff27c713a521d44bf586e3b984ece0bd421e3/taipy-3.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "458c9aca7b912c23cabf5f146a90243d8694b525f54e758476791af8a2e62938",
                "md5": "881ffd982c5f023f5f2c4e1d225173f3",
                "sha256": "9758147fd034f16f18bda1a25ee6d08b9ef757455fe6cbbe9e96da3cfa76aec9"
            },
            "downloads": -1,
            "filename": "taipy-3.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "881ffd982c5f023f5f2c4e1d225173f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 2885493,
            "upload_time": "2024-04-08T13:45:44",
            "upload_time_iso_8601": "2024-04-08T13:45:44.619911Z",
            "url": "https://files.pythonhosted.org/packages/45/8c/9aca7b912c23cabf5f146a90243d8694b525f54e758476791af8a2e62938/taipy-3.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-08 13:45:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "avaiga",
    "github_project": "taipy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "taipy"
}
        
Elapsed time: 0.21978s