Skip to main content

A 360° open-source platform from Python pilots to production-ready web apps.

Reason this release was yanked:

Not supported anymore.

Project description



Taipy Logo

Welcome to Taipy

PyPI PyPI

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

How? Taipy GUI with Taipy Core pops out as a 360° platform to build production-ready web applications



Open Source, 100% Python




📊 We make both ends meet ⚙️


TAIPY GUI - the frond-end TAIPY Core - the back-end
Taipy GUI Animation Taipy Core Animation


Installation

Open a terminal and run:

$ pip install taipy

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


Ready, Set, GUI

Tiny Taipy GUI Demo

from taipy import Gui

excitement_page = """
# Welcome to Taipy
## Getting started with Taipy GUI
### 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! 🎊

GUI demo


Find out more

Check out our Getting Started and Documentation



EN-CORE?

Let's create a back-end execution, also called scenario using Taipy Core. 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 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 Core Graph

Taipy Studio - The easy peasy way

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

GUI demo

Your configuration is automatically saved as a TOML file



Find out more

Check out our Getting Started and Documentation





Taipy Core - 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 Core

# 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 GUI
# Let's add Taipy GUI to our Taipy Core 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 = None

# 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!🎊

GUI demo




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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

taipy-2.3.0.tar.gz (205.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

taipy-2.3.0-py3-none-any.whl (206.5 kB view details)

Uploaded Python 3

File details

Details for the file taipy-2.3.0.tar.gz.

File metadata

  • Download URL: taipy-2.3.0.tar.gz
  • Upload date:
  • Size: 205.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for taipy-2.3.0.tar.gz
Algorithm Hash digest
SHA256 a65888aa210d5c66a711a49355d58f417615bec395ba1f41fcb79208d49f8e0e
MD5 c2eee3cce3416c70b8aeb4b82f9a1911
BLAKE2b-256 8d4c68b5ffaa9abc4a80bfe577c6d833aa374ae1c40178e44500a6488e797c75

See more details on using hashes here.

File details

Details for the file taipy-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: taipy-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 206.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for taipy-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97c40693911fcbb2b777ac22460c0105c7f6424fca8fb73d8e34d40e1f59146f
MD5 4861ec357e7f8aeba3e6fd4a837510a1
BLAKE2b-256 7b5d49382c616b37e8373b7d92dbc57753a056588ad986e3f831e773e99c140c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page