Skip to content

Commit

Permalink
Merge pull request #3 from Avaiga/feature/doc#986-document-best-pract…
Browse files Browse the repository at this point in the history
…ice-on-main-script

Feature/doc#986 - Document best practice on main script
  • Loading branch information
trgiangdo authored Jul 29, 2024
2 parents c3a4ad2 + 30a4cb3 commit 80b7d09
Showing 1 changed file with 46 additions and 47 deletions.
93 changes: 46 additions & 47 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,77 +4,76 @@

# Create a Taipy App that will output the 7 best movies for a genre

# Taipy Core - backend definition

# Filter function for Task
def filtering_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


# Input Data Nodes configuration
initial_dataset_cfg = Config.configure_data_node(id="initial_dataset",
storage_type="csv",
path="data.csv",
scope=Scope.GLOBAL)

selected_genre_cfg = Config.configure_data_node(id="selected_genre_node",
default_data="ACTION",
scope=Scope.GLOBAL)
# Callback definition
def modify_df(state):
scenario.selected_genre_node.write(state.selected_genre)
tp.submit(scenario)
state.df = scenario.filtered_data.read()

# Output Data Node configuration
filtered_data_cfg = Config.configure_data_node(id="filtered_data",
scope=Scope.GLOBAL)

if __name__ == "__main__":
# Taipy Core - backend definition

# Task configuration
filter_task_cfg = Config.configure_task(id="filter_genre",
function=filtering_genre,
input=[initial_dataset_cfg, selected_genre_cfg],
output=filtered_data_cfg,
skippable=True)
# Input Data Nodes configuration
initial_dataset_cfg = Config.configure_data_node(id="initial_dataset",
storage_type="csv",
path="data/data.csv",
scope=Scope.GLOBAL)

# Pipeline configuration
pipeline_cfg = Config.configure_pipeline(id="pipeline",
task_configs=[filter_task_cfg])
# Scenario configuration
scenario_cfg = Config.configure_scenario(id="scenario", pipeline_configs=[pipeline_cfg])
selected_genre_cfg = Config.configure_data_node(id="selected_genre_node",
default_data="ACTION",
scope=Scope.GLOBAL)

# Run of the Taipy Core service
tp.Core().run()
# Output Data Node configuration
filtered_data_cfg = Config.configure_data_node(id="filtered_data",
scope=Scope.GLOBAL)

# Creation of my scenario
scenario = tp.create_scenario(scenario_cfg)
# Task configuration
filter_task_cfg = Config.configure_task(id="filter_genre",
function=filtering_genre,
input=[initial_dataset_cfg, selected_genre_cfg],
output=filtered_data_cfg,
skippable=True)

# Pipeline configuration
pipeline_cfg = Config.configure_pipeline(id="pipeline",
task_configs=[filter_task_cfg])
# Scenario configuration
scenario_cfg = Config.configure_scenario(id="scenario", pipeline_configs=[pipeline_cfg])

# Run of the Taipy Core service
tp.Core().run()

# Taipy GUI- front end definition
# Creation of my scenario
scenario = tp.create_scenario(scenario_cfg)

# Callback definition
def modify_df(state):
scenario.selected_genre_node.write(state.selected_genre)
tp.submit(scenario)
state.df = scenario.filtered_data.read()
# Taipy GUI- front end definition

# Get list of genres
list_genres = ['Action', 'Adventure', 'Animation', 'Children', 'Comedy', 'Fantasy', 'IMAX', 'Romance',
'Sci-FI', 'Western', 'Crime', 'Mystery', 'Drama', 'Horror', 'Thriller', 'Film-Noir',
'War', 'Musical', 'Documentary']
# Get list of genres
list_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
# Initialization of variables
df = pd.DataFrame(columns=['Title', 'Popularity %'])
selected_genre = None

# movie_genre_app
movie_genre_app = """
# movie_genre_app
movie_genre_app = """
# Film recommendation
## Choose your favorite genre
<|{selected_genre}|selector|lov={list_genres}|on_change=modify_df|dropdown|>
## Here are the top 7 picks
<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>
"""
# run the app
Gui(page=movie_genre_app).run()
"""
# run the app
Gui(page=movie_genre_app).run()

0 comments on commit 80b7d09

Please sign in to comment.