Open
Description
📌 Description
I mistakenly wrote the following code:
import taipy as tp
from taipy import Config, Orchestrator
def square(number: int) -> int:
return number**2
number_cfg = Config.configure_data_node(id="number")
squared_number_cfg = Config.configure_data_node(id="squared_number")
square_task_cfg = Config.configure_task(id="square_task", function=square, input=number_cfg, output=squared_number_cfg)
scenario_cfg = Config.configure_scenario(id="square_scenario", tasks_configs=[square_task_cfg])
Orchestrator().run()
scenario = tp.create_scenario(scenario_cfg)
and got the following error:
Traceback (most recent call last):
File "/home/main.py", line 15, in <module>
scenario = tp.create_scenario(scenario_cfg)
File "/home/.venv-git-2025-05-22/lib/python3.10/site-packages/taipy/core/taipy.py", line 915, in create_scenario
return _ScenarioManagerFactory._build_manager()._create(config, creation_date, name)
File "/home/.venv-git-2025-05-22/lib/python3.10/site-packages/taipy/core/scenario/_scenario_manager.py", line 194, in _create
cls._repository._save(scenario)
File "/home/.venv-git-2025-05-22/lib/python3.10/site-packages/taipy/core/_repository/_filesystem_repository.py", line 65, in _save
json.dumps(model.to_dict(), ensure_ascii=False, indent=0, cls=_Encoder, check_circular=False),
File "/home/.venv-git-2025-05-22/lib/python3.10/site-packages/taipy/core/_repository/_base_taipy_model.py", line 26, in to_dict
model_dict = {**dataclasses.asdict(self)} # type: ignore[call-overload]
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1238, in asdict
return _asdict_inner(obj, dict_factory)
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1245, in _asdict_inner
value = _asdict_inner(getattr(obj, f.name), dict_factory)
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1275, in _asdict_inner
return type(obj)((_asdict_inner(k, dict_factory),
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1276, in <genexpr>
_asdict_inner(v, dict_factory))
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1273, in _asdict_inner
return type(obj)(_asdict_inner(v, dict_factory) for v in obj)
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1273, in <genexpr>
return type(obj)(_asdict_inner(v, dict_factory) for v in obj)
File "/home/.pyenv/versions/3.10.10/lib/python3.10/dataclasses.py", line 1279, in _asdict_inner
return copy.deepcopy(obj)
File "/home/.pyenv/versions/3.10.10/lib/python3.10/copy.py", line 161, in deepcopy
rv = reductor(4)
TypeError: 'NoneType' object is not callable
My mistake was that I did tasks_configs
instead of task_configs
.
Error message could be improved when the core configuration is misconfigured.
📜 Code of Conduct
- I have checked the existing issues to avoid duplicates.
- I am willing to work on this issue (optional)
✅ Acceptance Criteria
- The refactored code maintains existing functionality without breaking changes.
- Any new code is covered by unit tests.
- Code coverage remains at least 90%.
- Performance improvements are documented, if applicable.