Avaiga / taipy

Turns Data and AI algorithms into production-ready web applications in no time.
https://www.taipy.io
Apache License 2.0
10.94k stars 775 forks source link

BUG- Two Data Node table views not refreshing #1231

Closed FlorianJacta closed 4 months ago

FlorianJacta commented 4 months ago

Description When visualizing two tabular data nodes, the first one doesn't appear.

How to reproduce

Run this code.


# Import necessary libraries
import pandas as pd
import taipy as tp
from taipy import Config, Scope
import datetime as dt

# Function to run a Dataiku scenario
def run_something(input_1, input_2):
    datetime = dt.datetime.now()
    date = dt.date(2018, 1, 1)
    int_var = 10
    string_var = "String"
    return datetime, date, int_var, string_var

data = {"toto": [i for i in range(10_000)], 
        "titi": [2*i for i in range(10_000)],
        "tata": [4*i for i in range(10_000)]}

input_1_cfg = Config.configure_data_node(
    id="input_1_data_node",
    default_data=data,
)

input_2_cfg = Config.configure_data_node(
    id="input_2_data_node",
    default_data=data,
)

datetime_cfg = Config.configure_data_node(id="datetime_data_node")
date_cfg = Config.configure_data_node(id="date_data_node")
int_cfg = Config.configure_data_node(id="int_data_node")
string_cfg = Config.configure_data_node(id="string_data_node")

# Scenario and task configuration in Taipy
scenario_task_cfg = Config.configure_task(
    id="scenario_task",
    function=run_something,
    input=[input_1_cfg, input_2_cfg],
    output=[datetime_cfg, date_cfg, int_cfg, string_cfg]
)

scenario_cfg = Config.configure_scenario(
    id="scenario",
    task_configs=[scenario_task_cfg])

data_node = None

# GUI Markdown content
scenario_md = """
<|1 1|layout|
<|{scenario}|scenario_selector|>

<|{scenario}|scenario|>
|>

<|job_selector|>

<|1 1|layout|
Input 1 Dataset:
<|{scenario.input_1_data_node if scenario else None}|data_node|>

Input 2 Dataset:
<|{scenario.input_2_data_node if scenario else None}|data_node|>
|>

<|1 1|layout|
<|{data_node}|data_node_selector|>

<|{data_node}|data_node|>
|>
"""

# Main execution block with GUI setup
if __name__ == "__main__":
    tp.Core().run()
    scenario = tp.create_scenario(scenario_cfg)
    # Run the GUI
    tp.Gui(scenario_md).run(title="Bug replication", port=3248)

Expected behavior We should be able to see both data nodes properly.

Runtime environment

Acceptance Criteria

FlorianJacta commented 4 months ago

Still in progress, after the merge of the PR. It has created issues with the Data Node viewer