waldiez 0.4.0__tar.gz → 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of waldiez might be problematic. Click here for more details.

Files changed (147) hide show
  1. {waldiez-0.4.0 → waldiez-0.4.2}/PKG-INFO +39 -42
  2. {waldiez-0.4.0 → waldiez-0.4.2}/pyproject.toml +50 -45
  3. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/_version.py +1 -1
  4. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/captain_agent.py +5 -4
  5. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/vector_db.py +1 -1
  6. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/base_exporter.py +1 -1
  7. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/chats_exporter.py +1 -1
  8. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/single_chat.py +1 -1
  9. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/swarm.py +1 -1
  10. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/flow_exporter.py +2 -2
  11. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/flow_content.py +6 -6
  12. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/importing_utils.py +0 -1
  13. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/logging_utils.py +25 -4
  14. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/skills/utils.py +2 -2
  15. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/agent.py +1 -2
  16. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/rag_user/vector_db_config.py +1 -1
  17. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/model/__init__.py +2 -1
  18. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/model/model.py +25 -6
  19. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/model/model_data.py +1 -1
  20. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/waldiez.py +1 -1
  21. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/runner.py +1 -0
  22. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/cli_extras/studio.py +2 -1
  23. {waldiez-0.4.0 → waldiez-0.4.2}/.gitignore +0 -0
  24. {waldiez-0.4.0 → waldiez-0.4.2}/LICENSE +0 -0
  25. {waldiez-0.4.0 → waldiez-0.4.2}/NOTICE.md +0 -0
  26. {waldiez-0.4.0 → waldiez-0.4.2}/README.md +0 -0
  27. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/__init__.py +0 -0
  28. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/__main__.py +0 -0
  29. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/cli.py +0 -0
  30. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporter.py +0 -0
  31. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/__init__.py +0 -0
  32. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/__init__.py +0 -0
  33. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/agent_exporter.py +0 -0
  34. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/__init__.py +0 -0
  35. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/code_execution.py +0 -0
  36. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/group_manager.py +0 -0
  37. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/__init__.py +0 -0
  38. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/chroma_utils.py +0 -0
  39. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/mongo_utils.py +0 -0
  40. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/pgvector_utils.py +0 -0
  41. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/qdrant_utils.py +0 -0
  42. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/rag_user/rag_user.py +0 -0
  43. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/reasoning.py +0 -0
  44. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/swarm_agent.py +0 -0
  45. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/teachability.py +0 -0
  46. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/agent/utils/termination_message.py +0 -0
  47. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/__init__.py +0 -0
  48. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/agent_position.py +0 -0
  49. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/export_position.py +0 -0
  50. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/import_position.py +0 -0
  51. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/mixin.py +0 -0
  52. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/utils/__init__.py +0 -0
  53. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/utils/comments.py +0 -0
  54. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/utils/naming.py +0 -0
  55. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/utils/path_check.py +0 -0
  56. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/base/utils/to_string.py +0 -0
  57. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/__init__.py +0 -0
  58. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/__init__.py +0 -0
  59. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/common.py +0 -0
  60. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/nested.py +0 -0
  61. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/chats/utils/sequential.py +0 -0
  62. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/__init__.py +0 -0
  63. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/__init__.py +0 -0
  64. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/agent_utils.py +0 -0
  65. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/chat_utils.py +0 -0
  66. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/def_main.py +0 -0
  67. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/flow/utils/flow_names.py +0 -0
  68. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/models/__init__.py +0 -0
  69. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/models/models_exporter.py +0 -0
  70. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/models/utils.py +0 -0
  71. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/skills/__init__.py +0 -0
  72. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/exporting/skills/skills_exporter.py +0 -0
  73. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/__init__.py +0 -0
  74. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/__init__.py +0 -0
  75. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/__init__.py +0 -0
  76. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/agent_data.py +0 -0
  77. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/agent_type.py +0 -0
  78. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/code_execution.py +0 -0
  79. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/linked_skill.py +0 -0
  80. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/nested_chat.py +0 -0
  81. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/teachability.py +0 -0
  82. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agent/termination_message.py +0 -0
  83. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/agents.py +0 -0
  84. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/assistant/__init__.py +0 -0
  85. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/assistant/assistant.py +0 -0
  86. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/assistant/assistant_data.py +0 -0
  87. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/captain_agent/__init__.py +0 -0
  88. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/captain_agent/captain_agent.py +0 -0
  89. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/captain_agent/captain_agent_data.py +0 -0
  90. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/captain_agent/captain_agent_lib_entry.py +0 -0
  91. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/extra_requirements.py +0 -0
  92. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/group_manager/__init__.py +0 -0
  93. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/group_manager/group_manager.py +0 -0
  94. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/group_manager/group_manager_data.py +0 -0
  95. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/group_manager/speakers.py +0 -0
  96. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/rag_user/__init__.py +0 -0
  97. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/rag_user/rag_user.py +0 -0
  98. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/rag_user/rag_user_data.py +0 -0
  99. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/rag_user/retrieve_config.py +0 -0
  100. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/reasoning/__init__.py +0 -0
  101. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/reasoning/reasoning_agent.py +0 -0
  102. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/reasoning/reasoning_agent_data.py +0 -0
  103. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/reasoning/reasoning_agent_reason_config.py +0 -0
  104. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/__init__.py +0 -0
  105. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/after_work.py +0 -0
  106. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/on_condition.py +0 -0
  107. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/on_condition_available.py +0 -0
  108. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/on_condition_target.py +0 -0
  109. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/swarm_agent.py +0 -0
  110. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/swarm_agent_data.py +0 -0
  111. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/swarm_agent/update_system_message.py +0 -0
  112. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/user_proxy/__init__.py +0 -0
  113. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/user_proxy/user_proxy.py +0 -0
  114. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/agents/user_proxy/user_proxy_data.py +0 -0
  115. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/__init__.py +0 -0
  116. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/chat.py +0 -0
  117. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/chat_data.py +0 -0
  118. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/chat_message.py +0 -0
  119. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/chat_nested.py +0 -0
  120. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/chat/chat_summary.py +0 -0
  121. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/__init__.py +0 -0
  122. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/ag2_version.py +0 -0
  123. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/base.py +0 -0
  124. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/date_utils.py +0 -0
  125. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/dict_utils.py +0 -0
  126. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/common/method_utils.py +0 -0
  127. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/flow/__init__.py +0 -0
  128. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/flow/flow.py +0 -0
  129. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/flow/flow_data.py +0 -0
  130. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/flow/utils.py +0 -0
  131. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/model/extra_requirements.py +0 -0
  132. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/skill/__init__.py +0 -0
  133. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/skill/extra_requirements.py +0 -0
  134. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/skill/skill.py +0 -0
  135. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/skill/skill_data.py +0 -0
  136. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/models/skill/skill_type.py +0 -0
  137. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/py.typed +0 -0
  138. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/running/__init__.py +0 -0
  139. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/running/environment.py +0 -0
  140. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/running/gen_seq_diagram.py +0 -0
  141. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/running/running.py +0 -0
  142. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/__init__.py +0 -0
  143. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/cli_extras/__init__.py +0 -0
  144. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/cli_extras/jupyter.py +0 -0
  145. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/conflict_checker.py +0 -0
  146. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/flaml_warnings.py +0 -0
  147. {waldiez-0.4.0 → waldiez-0.4.2}/waldiez/utils/pysqlite3_checker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waldiez
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: waldiez
5
5
  Project-URL: homepage, https://waldiez.github.io/waldiez/python
6
6
  Project-URL: repository, https://github.com/waldiez/python.git
@@ -17,7 +17,8 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: <3.13,>=3.10
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Requires-Python: <3.14,>=3.10
21
22
  Requires-Dist: aiocsv==1.3.2
22
23
  Requires-Dist: aiofiles==24.1.0
23
24
  Requires-Dist: aiosqlite==0.21.0
@@ -28,82 +29,78 @@ Requires-Dist: jupytext
28
29
  Requires-Dist: numpy<2.2.0
29
30
  Requires-Dist: pandas>=2
30
31
  Requires-Dist: parso==0.8.4
31
- Requires-Dist: pyautogen==0.7.4
32
- Requires-Dist: pydantic<3,>=2.6.1
32
+ Requires-Dist: pyautogen[openai]==0.8.4
33
+ Requires-Dist: pydantic<3,>=2.10.2
33
34
  Requires-Dist: typer<0.16,>=0.9
34
35
  Provides-Extra: ag2-extras
35
36
  Requires-Dist: beautifulsoup4; extra == 'ag2-extras'
36
- Requires-Dist: chromadb>=0.5.23; extra == 'ag2-extras'
37
- Requires-Dist: crewai-tools==0.33.0; extra == 'ag2-extras'
38
- Requires-Dist: crewai>0.98.0; extra == 'ag2-extras'
39
- Requires-Dist: embedchain==0.1.126; extra == 'ag2-extras'
37
+ Requires-Dist: chromadb>=0.5.10; extra == 'ag2-extras'
38
+ Requires-Dist: embedchain; extra == 'ag2-extras'
40
39
  Requires-Dist: huggingface-hub; extra == 'ag2-extras'
41
40
  Requires-Dist: ipython; extra == 'ag2-extras'
42
41
  Requires-Dist: langchain-community<1,>=0.3.12; extra == 'ag2-extras'
43
42
  Requires-Dist: markdownify; extra == 'ag2-extras'
44
- Requires-Dist: pgvector>=0.3.6; extra == 'ag2-extras'
43
+ Requires-Dist: pgvector>=0.4.0; extra == 'ag2-extras'
45
44
  Requires-Dist: protobuf>=4.25.3; extra == 'ag2-extras'
46
- Requires-Dist: psycopg[binary]>=3.2.3; extra == 'ag2-extras'
47
- Requires-Dist: psycopg[binary]>=3.2.4; extra == 'ag2-extras'
48
- Requires-Dist: pyautogen[anthropic]==0.7.4; extra == 'ag2-extras'
49
- Requires-Dist: pyautogen[bedrock]==0.7.4; extra == 'ag2-extras'
50
- Requires-Dist: pyautogen[cohere]==0.7.4; extra == 'ag2-extras'
51
- Requires-Dist: pyautogen[gemini]==0.7.4; extra == 'ag2-extras'
52
- Requires-Dist: pyautogen[groq]==0.7.4; extra == 'ag2-extras'
53
- Requires-Dist: pyautogen[interop-crewai]==0.7.4; extra == 'ag2-extras'
54
- Requires-Dist: pyautogen[interop-langchain]==0.7.4; extra == 'ag2-extras'
55
- Requires-Dist: pyautogen[lmm]==0.7.4; extra == 'ag2-extras'
56
- Requires-Dist: pyautogen[mistral]==0.7.4; extra == 'ag2-extras'
57
- Requires-Dist: pyautogen[neo4j]==0.7.4; extra == 'ag2-extras'
58
- Requires-Dist: pyautogen[ollama]==0.7.4; extra == 'ag2-extras'
59
- Requires-Dist: pyautogen[together]==0.7.4; extra == 'ag2-extras'
60
- Requires-Dist: pyautogen[websurfer]==0.7.4; extra == 'ag2-extras'
45
+ Requires-Dist: psycopg[binary]>=3.2.6; extra == 'ag2-extras'
46
+ Requires-Dist: pyautogen[anthropic]==0.8.4; extra == 'ag2-extras'
47
+ Requires-Dist: pyautogen[bedrock]==0.8.4; extra == 'ag2-extras'
48
+ Requires-Dist: pyautogen[cohere]==0.8.4; extra == 'ag2-extras'
49
+ Requires-Dist: pyautogen[gemini]==0.8.4; extra == 'ag2-extras'
50
+ Requires-Dist: pyautogen[groq]==0.8.4; extra == 'ag2-extras'
51
+ Requires-Dist: pyautogen[interop-crewai]==0.8.4; extra == 'ag2-extras'
52
+ Requires-Dist: pyautogen[interop-langchain]==0.8.4; extra == 'ag2-extras'
53
+ Requires-Dist: pyautogen[lmm]==0.8.4; extra == 'ag2-extras'
54
+ Requires-Dist: pyautogen[mistral]==0.8.4; extra == 'ag2-extras'
55
+ Requires-Dist: pyautogen[neo4j]==0.8.4; extra == 'ag2-extras'
56
+ Requires-Dist: pyautogen[ollama]==0.8.4; extra == 'ag2-extras'
57
+ Requires-Dist: pyautogen[together]==0.8.4; extra == 'ag2-extras'
58
+ Requires-Dist: pyautogen[websurfer]==0.8.4; extra == 'ag2-extras'
61
59
  Requires-Dist: pydantic-ai>=0.0.21; extra == 'ag2-extras'
62
60
  Requires-Dist: pymongo>=4.11; extra == 'ag2-extras'
63
61
  Requires-Dist: pypdf; extra == 'ag2-extras'
64
62
  Requires-Dist: qdrant-client[fastembed]; extra == 'ag2-extras'
65
63
  Requires-Dist: sentence-transformers; extra == 'ag2-extras'
66
- Requires-Dist: weaviate-client>=4.10.2; extra == 'ag2-extras'
67
64
  Provides-Extra: dev
68
65
  Requires-Dist: autoflake==2.3.1; extra == 'dev'
69
- Requires-Dist: bandit==1.8.2; extra == 'dev'
66
+ Requires-Dist: bandit==1.8.3; extra == 'dev'
70
67
  Requires-Dist: black[jupyter]==25.1.0; extra == 'dev'
71
- Requires-Dist: flake8==7.1.1; extra == 'dev'
72
- Requires-Dist: isort==6.0.0; extra == 'dev'
68
+ Requires-Dist: flake8==7.2.0; extra == 'dev'
69
+ Requires-Dist: isort==6.0.1; extra == 'dev'
73
70
  Requires-Dist: mypy==1.15.0; extra == 'dev'
74
71
  Requires-Dist: pandas-stubs; extra == 'dev'
75
- Requires-Dist: pre-commit==4.1.0; extra == 'dev'
72
+ Requires-Dist: pre-commit==4.2.0; extra == 'dev'
76
73
  Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
77
- Requires-Dist: pylint==3.3.4; extra == 'dev'
78
- Requires-Dist: python-dotenv==1.0.1; extra == 'dev'
79
- Requires-Dist: ruff==0.9.6; extra == 'dev'
74
+ Requires-Dist: pylint==3.3.6; extra == 'dev'
75
+ Requires-Dist: python-dotenv==1.1.0; extra == 'dev'
76
+ Requires-Dist: ruff==0.11.2; extra == 'dev'
80
77
  Requires-Dist: toml; (python_version <= '3.10') and extra == 'dev'
81
- Requires-Dist: types-pyyaml==6.0.12.20241230; extra == 'dev'
78
+ Requires-Dist: types-pyyaml==6.0.12.20250326; extra == 'dev'
82
79
  Requires-Dist: types-toml==0.10.8.20240310; extra == 'dev'
83
- Requires-Dist: yamllint==1.35.1; extra == 'dev'
80
+ Requires-Dist: yamllint==1.37.0; extra == 'dev'
84
81
  Provides-Extra: docs
85
82
  Requires-Dist: mdx-include==1.4.2; extra == 'docs'
86
83
  Requires-Dist: mdx-truly-sane-lists==1.3; extra == 'docs'
87
84
  Requires-Dist: mkdocs-jupyter==0.25.1; extra == 'docs'
88
85
  Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == 'docs'
89
- Requires-Dist: mkdocs-material==9.6.4; extra == 'docs'
90
- Requires-Dist: mkdocs-minify-html-plugin==0.2.4; extra == 'docs'
86
+ Requires-Dist: mkdocs-material==9.6.9; extra == 'docs'
87
+ Requires-Dist: mkdocs-minify-html-plugin==0.3.1; extra == 'docs'
91
88
  Requires-Dist: mkdocs==1.6.1; extra == 'docs'
92
- Requires-Dist: mkdocstrings-python==1.15.0; extra == 'docs'
93
- Requires-Dist: mkdocstrings[crystal,python]==0.28.0; extra == 'docs'
89
+ Requires-Dist: mkdocstrings-python==1.16.8; extra == 'docs'
90
+ Requires-Dist: mkdocstrings[crystal,python]==0.29.0; extra == 'docs'
94
91
  Provides-Extra: jupyter
95
92
  Requires-Dist: jupyterlab>=4.3.0; extra == 'jupyter'
96
- Requires-Dist: waldiez-jupyter==0.4.0; extra == 'jupyter'
93
+ Requires-Dist: waldiez-jupyter==0.4.2; extra == 'jupyter'
97
94
  Provides-Extra: studio
98
- Requires-Dist: waldiez-studio==0.4.0; extra == 'studio'
95
+ Requires-Dist: waldiez-studio==0.4.2; extra == 'studio'
99
96
  Provides-Extra: test
100
- Requires-Dist: pytest-asyncio==0.25.3; extra == 'test'
97
+ Requires-Dist: pytest-asyncio==0.26.0; extra == 'test'
101
98
  Requires-Dist: pytest-cov==6.0.0; extra == 'test'
102
99
  Requires-Dist: pytest-html==4.1.1; extra == 'test'
103
100
  Requires-Dist: pytest-sugar==1.0.0; extra == 'test'
104
101
  Requires-Dist: pytest-timeout==2.3.1; extra == 'test'
105
102
  Requires-Dist: pytest-xdist==3.6.1; extra == 'test'
106
- Requires-Dist: pytest==8.3.4; extra == 'test'
103
+ Requires-Dist: pytest==8.3.5; extra == 'test'
107
104
  Description-Content-Type: text/markdown
108
105
 
109
106
  # Waldiez
@@ -7,7 +7,7 @@ authors = [
7
7
  { name = 'Stella Ioannidou', email = 'stella@humancentered.gr'}
8
8
  ]
9
9
  readme = "README.md"
10
- requires-python = '>=3.10,<3.13'
10
+ requires-python = '>=3.10,<3.14'
11
11
  dynamic = ["version"]
12
12
  classifiers = [
13
13
  "Development Status :: 3 - Alpha",
@@ -17,6 +17,7 @@ classifiers = [
17
17
  "Programming Language :: Python :: 3.10",
18
18
  "Programming Language :: Python :: 3.11",
19
19
  "Programming Language :: Python :: 3.12",
20
+ "Programming Language :: Python :: 3.13",
20
21
  "Operating System :: OS Independent",
21
22
  "Intended Audience :: Science/Research",
22
23
  "Intended Audience :: Developers",
@@ -29,10 +30,10 @@ dependencies =[
29
30
  "numpy<2.2.0",
30
31
  "graphviz==0.20.3",
31
32
  "pandas>=2",
32
- "pyautogen==0.7.4",
33
+ "pyautogen[openai]==0.8.4",
33
34
  "jupytext",
34
35
  "parso==0.8.4",
35
- "pydantic>=2.6.1,<3",
36
+ "pydantic>=2.10.2,<3",
36
37
  "typer>=0.9,<0.16",
37
38
  "httpx<1",
38
39
  ]
@@ -41,6 +42,7 @@ dependencies =[
41
42
  homepage = 'https://waldiez.github.io/waldiez/python'
42
43
  repository = 'https://github.com/waldiez/python.git'
43
44
 
45
+
44
46
  [tool.hatch.build.targets.sdist]
45
47
  packages = ["waldiez", "waldiez.*"]
46
48
  exclude = [ "**/example.py", ".gitignore" ]
@@ -51,49 +53,49 @@ exclude = [ "**/example.py" ]
51
53
 
52
54
  [project.optional-dependencies]
53
55
  studio = [
54
- "waldiez_studio==0.4.0",
56
+ 'waldiez_studio==0.4.2',
55
57
  ]
56
58
  jupyter = [
57
- "waldiez_jupyter==0.4.0",
58
- "jupyterlab>=4.3.0",
59
+ 'waldiez_jupyter==0.4.2',
60
+ 'jupyterlab>=4.3.0',
59
61
  ]
60
62
  dev = [
61
63
  'autoflake==2.3.1',
62
- 'bandit==1.8.2',
64
+ 'bandit==1.8.3',
63
65
  'black[jupyter]==25.1.0',
64
- 'flake8==7.1.1',
65
- 'isort==6.0.0',
66
+ 'flake8==7.2.0',
67
+ 'isort==6.0.1',
66
68
  'mypy==1.15.0',
67
- "pandas-stubs",
68
- 'pre-commit==4.1.0',
69
+ 'pandas-stubs',
70
+ 'pre-commit==4.2.0',
69
71
  'pydocstyle==6.3.0',
70
- 'pylint==3.3.4',
71
- 'python-dotenv==1.0.1',
72
- 'ruff==0.9.6',
73
- 'types-PyYAML==6.0.12.20241230',
74
- 'yamllint==1.35.1',
72
+ 'pylint==3.3.6',
73
+ 'python-dotenv==1.1.0',
74
+ 'ruff==0.11.2',
75
+ 'types-pyyaml==6.0.12.20250326',
76
+ 'yamllint==1.37.0',
75
77
  'toml; python_version <= "3.10"',
76
- 'types-toml== 0.10.8.20240310',
78
+ 'types-toml==0.10.8.20240310',
77
79
  ]
78
80
  ag2_extras =[
79
81
  # models
80
- 'pyautogen[anthropic]==0.7.4',
81
- 'pyautogen[bedrock]==0.7.4',
82
- 'pyautogen[cohere]==0.7.4',
83
- 'pyautogen[gemini]==0.7.4',
84
- 'pyautogen[groq]==0.7.4',
85
- 'pyautogen[lmm]==0.7.4',
86
- 'pyautogen[mistral]==0.7.4',
87
- 'pyautogen[ollama]==0.7.4',
88
- 'pyautogen[together]==0.7.4',
82
+ 'pyautogen[anthropic]==0.8.4',
83
+ 'pyautogen[bedrock]==0.8.4',
84
+ 'pyautogen[cohere]==0.8.4',
85
+ 'pyautogen[gemini]==0.8.4',
86
+ 'pyautogen[groq]==0.8.4',
87
+ 'pyautogen[lmm]==0.8.4',
88
+ 'pyautogen[mistral]==0.8.4',
89
+ 'pyautogen[ollama]==0.8.4',
90
+ 'pyautogen[together]==0.8.4',
89
91
  # utils
90
- 'pyautogen[interop-crewai]==0.7.4',
91
- 'pyautogen[interop-langchain]==0.7.4',
92
- 'pyautogen[neo4j]==0.7.4',
93
- 'pyautogen[websurfer]==0.7.4',
94
- 'chromadb>=0.5.23',
95
- 'pgvector>=0.3.6',
96
- 'psycopg[binary]>=3.2.3',
92
+ 'pyautogen[interop-crewai]==0.8.4',
93
+ 'pyautogen[interop-langchain]==0.8.4',
94
+ 'pyautogen[neo4j]==0.8.4',
95
+ 'pyautogen[websurfer]==0.8.4',
96
+ 'chromadb>=0.5.10',
97
+ 'pgvector>=0.4.0',
98
+ 'psycopg[binary]>=3.2.6',
97
99
  'protobuf>=4.25.3',
98
100
  'pypdf',
99
101
  'ipython',
@@ -102,19 +104,16 @@ ag2_extras =[
102
104
  'sentence-transformers',
103
105
  'huggingface-hub',
104
106
  'qdrant-client[fastembed]',
105
- 'pgvector>=0.3.6',
106
- 'psycopg[binary]>=3.2.4',
107
- 'crewai-tools==0.33.0',
108
- 'embedchain==0.1.126',
109
- 'crewai>0.98.0',
110
- 'weaviate-client>=4.10.2',
107
+ 'pgvector>=0.4.0',
108
+ 'psycopg[binary]>=3.2.6',
109
+ 'embedchain',
111
110
  'langchain-community>=0.3.12,<1',
112
111
  'pydantic-ai>=0.0.21',
113
112
  'pymongo>=4.11',
114
113
  ]
115
114
  test = [
116
- 'pytest==8.3.4',
117
- 'pytest-asyncio==0.25.3',
115
+ 'pytest==8.3.5',
116
+ 'pytest-asyncio==0.26.0',
118
117
  'pytest-cov==6.0.0',
119
118
  'pytest-html==4.1.1',
120
119
  'pytest-sugar==1.0.0',
@@ -127,10 +126,10 @@ docs = [
127
126
  'mkdocs==1.6.1',
128
127
  'mkdocs-jupyter==0.25.1',
129
128
  'mkdocs-macros-plugin==1.3.7',
130
- 'mkdocs-material==9.6.4',
131
- 'mkdocs-minify-html-plugin==0.2.4',
132
- 'mkdocstrings[crystal,python]==0.28.0',
133
- 'mkdocstrings-python==1.15.0'
129
+ 'mkdocs-material==9.6.9',
130
+ 'mkdocs-minify-html-plugin==0.3.1',
131
+ 'mkdocstrings[crystal,python]==0.29.0',
132
+ 'mkdocstrings-python==1.16.8'
134
133
  ]
135
134
 
136
135
  [project.scripts]
@@ -194,6 +193,12 @@ exclude = [
194
193
  'waldiez_out',
195
194
  ]
196
195
 
196
+ [[tool.mypy.overrides]]
197
+ module = "tests.*"
198
+ # with python < 3.13 we get seem to get 'call-arg' errors :(
199
+ # and with python>=3.13 'unused-ignore' : (
200
+ disable_error_code = ["call-arg"]
201
+
197
202
  [tool.pydantic-mypy]
198
203
  init_forbid_extra = true
199
204
  init_typed = true
@@ -2,4 +2,4 @@
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
3
  """Version information for Waldiez."""
4
4
 
5
- __version__ = "0.4.0"
5
+ __version__ = "0.4.2"
@@ -142,10 +142,11 @@ def get_llm_config(
142
142
  max_tokens: Optional[int] = 2048
143
143
  if agent.data.model_ids:
144
144
  waldiez_model = get_waldiez_model(agent.data.model_ids[0], all_models)
145
- model_name = waldiez_model.name
146
- temperature = waldiez_model.data.temperature
147
- top_p = waldiez_model.data.top_p
148
- max_tokens = waldiez_model.data.max_tokens
145
+ llm_config = waldiez_model.get_llm_config(skip_price=True)
146
+ for key in ["temperature", "top_p", "max_tokens"]:
147
+ if key not in llm_config:
148
+ llm_config[key] = None
149
+ return llm_config
149
150
  config_dict = {
150
151
  "model": model_name,
151
152
  "temperature": temperature,
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  # pylint: disable=line-too-long
5
5
  """Vector DB exporting utils for RAG user agents."""
6
6
 
@@ -10,7 +10,7 @@ from .export_position import ExportPosition
10
10
  from .import_position import ImportPosition
11
11
 
12
12
 
13
- # flake8: noqa E501
13
+ # flake8: noqa: E501
14
14
  # pylint: disable=line-too-long
15
15
  class ExporterReturnType(TypedDict):
16
16
  """Exporter Return Type.
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  # pylint: disable=line-too-long
5
5
  """Chats exporter."""
6
6
 
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  # pylint: disable=line-too-long
5
5
  """Utilities for exporting a single chat in a flow."""
6
6
 
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  """Swarm chat exporting functions."""
5
5
 
6
6
  from typing import Callable, Dict, List, Optional, Tuple
@@ -19,7 +19,7 @@
19
19
  - If the flow is async, the `run` function is async.
20
20
  """
21
21
 
22
- # flake8: noqa E501
22
+ # flake8: noqa: E501
23
23
  # pylint: disable=line-too-long
24
24
 
25
25
  from functools import partial
@@ -213,7 +213,7 @@ class FlowExporter(BaseExporter, ExporterMixin):
213
213
  content += imports[0] + "\n"
214
214
  content += get_np_no_nep50_handle() + "\n"
215
215
  content += self.get_comment("logging", self.for_notebook) + "\n"
216
- content += get_start_logging(tabs=0) + "\n"
216
+ content += get_start_logging(is_async=is_async, tabs=0) + "\n"
217
217
  content += "start_logging()\n\n"
218
218
  if models_output:
219
219
  content += self.get_comment("models", self.for_notebook) + "\n"
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  # pylint: disable=line-too-long
5
5
  """Utils to generate the content of a flow."""
6
6
 
@@ -22,7 +22,7 @@ def get_py_content_start(waldiez: Waldiez) -> str:
22
22
  The first part of the python script.
23
23
  """
24
24
  content = "#!/usr/bin/env python\n"
25
- content += "# flake8: noqa E501\n"
25
+ content += "# flake8: noqa: E501\n"
26
26
  content += get_pylint_ignore_comment(False)
27
27
  content += "# cspell: disable\n"
28
28
  content += f'"""{waldiez.name}.' + "\n\n"
@@ -60,7 +60,7 @@ def get_ipynb_content_start(
60
60
  # fmt: off
61
61
  content += "# " + f"!{{sys.executable}} -m pip install -q {requirements}" + "\n"
62
62
  # fmt: on
63
- content += "# flake8: noqa E501"
63
+ content += "# flake8: noqa: E501"
64
64
  content += get_pylint_ignore_comment(True)
65
65
  content += "# cspell: disable\n"
66
66
  return content
@@ -135,8 +135,8 @@ def get_after_run_content(
135
135
  str
136
136
  The content to add after the flow is run.
137
137
  """
138
- # if th eflow has reasoning agents, we add
139
- # visualize_tree(agent._root) for each agent
138
+ # if the flow has a reasoning agents, we add
139
+ # agent.visualize_tree() for each agent
140
140
  content = ""
141
141
  tab = " "
142
142
  space = tab * tabs
@@ -146,7 +146,7 @@ def get_after_run_content(
146
146
  content += f"""
147
147
  {space}# pylint: disable=broad-except,too-many-try-statements
148
148
  {space}try:
149
- {space}{tab}visualize_tree({agent_name}._root) # pylint: disable=protected-access
149
+ {space}{tab}{agent_name}.visualize_tree()
150
150
  {space}{tab}if os.path.exists("tree_of_thoughts.png"):
151
151
  {space}{tab}{tab}new_name = "{agent_name}_tree_of_thoughts.png"
152
152
  {space}{tab}{tab}os.rename("tree_of_thoughts.png", new_name)
@@ -127,7 +127,6 @@ def get_the_imports_string(
127
127
  "\nimport anyio"
128
128
  "\nimport nest_asyncio"
129
129
  "\nfrom aiocsv import AsyncDictWriter"
130
- "\nfrom asyncer import asyncify"
131
130
  )
132
131
  if got_import_autogen:
133
132
  final_string += "\nimport autogen # type: ignore\n"
@@ -16,11 +16,13 @@ get_sqlite_to_csv_call_string
16
16
  """
17
17
 
18
18
 
19
- def get_start_logging(tabs: int = 0) -> str:
19
+ def get_start_logging(is_async: bool, tabs: int = 0) -> str:
20
20
  """Get the logging start call string.
21
21
 
22
22
  Parameters
23
23
  ----------
24
+ is_async : bool
25
+ Whether to use async mode.
24
26
  tabs : int, optional
25
27
  The number of tabs to use for indentation, by default 0
26
28
 
@@ -41,7 +43,8 @@ def get_start_logging(tabs: int = 0) -> str:
41
43
  )
42
44
  """
43
45
  tab = " " * tabs
44
- content = f'''
46
+ if is_async is False:
47
+ return f'''
45
48
  {tab}def start_logging() -> None:
46
49
  {tab} """Start logging."""
47
50
  {tab} runtime_logging.start(
@@ -49,7 +52,20 @@ def get_start_logging(tabs: int = 0) -> str:
49
52
  {tab} config={{"dbname": "flow.db"}},
50
53
  {tab} )
51
54
  '''
52
- return content
55
+ return f'''
56
+ {tab}def start_logging() -> None:
57
+ {tab} """Start logging."""
58
+ {tab} # pylint: disable=import-outside-toplevel
59
+ {tab} from anyio.from_thread import start_blocking_portal
60
+
61
+ {tab} with start_blocking_portal(backend="asyncio") as portal:
62
+ {tab} portal.call(
63
+ {tab} runtime_logging.start,
64
+ {tab} None,
65
+ {tab} "sqlite",
66
+ {tab} {{"dbname": "flow.db"}},
67
+ {tab} )
68
+ '''
53
69
 
54
70
 
55
71
  # pylint: disable=differing-param-doc,differing-type-doc
@@ -336,6 +352,11 @@ def get_stop_logging(tabs: int, is_async: bool) -> str:
336
352
  content += "async "
337
353
  content += "def stop_logging() -> None:\n"
338
354
  content += ' """Stop logging."""\n'
339
- content += f"{tab} runtime_logging.stop()\n"
355
+ if is_async:
356
+ content += f"{tab} # pylint: disable=import-outside-toplevel\n"
357
+ content += f"{tab} from asyncer import asyncify\n\n"
358
+ content += f"{tab} await asyncify(runtime_logging.stop)()\n"
359
+ else:
360
+ content += f"{tab} runtime_logging.stop()\n"
340
361
  content += get_sqlite_out_call(tabs + 1, is_async)
341
362
  return content
@@ -263,8 +263,8 @@ def get_skill_secrets_import(flow_name: str, skill: WaldiezSkill) -> str:
263
263
  return ""
264
264
  # fmt: on
265
265
  module_name = f"{flow_name}_{skill.name}"
266
- ignore_noqa = " # type: ignore # noqa"
267
- return f"import {module_name}_secrets{ignore_noqa}" + "\n"
266
+ type_ignore_noqa = " # type: ignore # noqa"
267
+ return f"import {module_name}_secrets{type_ignore_noqa}" + "\n"
268
268
 
269
269
 
270
270
  def get_agent_skill_registrations(
@@ -177,8 +177,7 @@ class WaldiezAgent(WaldiezBase):
177
177
  )
178
178
  elif agent_class == "ReasoningAgent":
179
179
  imports.add(
180
- "from autogen.agentchat.contrib.reasoning_agent "
181
- "import ReasoningAgent, visualize_tree"
180
+ "from autogen.agents.experimental import ReasoningAgent"
182
181
  )
183
182
  elif agent_class == "CaptainAgent":
184
183
  imports.add(
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
 
5
5
  """The vector db config for the RAG user agent."""
6
6
 
@@ -3,12 +3,13 @@
3
3
  """Waldiez model."""
4
4
 
5
5
  from .extra_requirements import get_models_extra_requirements
6
- from .model import DEFAULT_BASE_URLS, WaldiezModel
6
+ from .model import DEFAULT_BASE_URLS, MODEL_NEEDS_BASE_URL, WaldiezModel
7
7
  from .model_data import WaldiezModelAPIType, WaldiezModelData, WaldiezModelPrice
8
8
 
9
9
  __all__ = [
10
10
  "get_models_extra_requirements",
11
11
  "DEFAULT_BASE_URLS",
12
+ "MODEL_NEEDS_BASE_URL",
12
13
  "WaldiezModel",
13
14
  "WaldiezModelData",
14
15
  "WaldiezModelPrice",
@@ -23,6 +23,22 @@ DEFAULT_BASE_URLS: Dict[WaldiezModelAPIType, str] = {
23
23
  }
24
24
 
25
25
 
26
+ # we can omit the base_url for these models
27
+ MODEL_NEEDS_BASE_URL: Dict[WaldiezModelAPIType, bool] = {
28
+ "openai": False,
29
+ "azure": False,
30
+ "google": False,
31
+ "anthropic": False,
32
+ "cohere": False,
33
+ "other": False, # falls back to openai
34
+ "deepseek": True,
35
+ "mistral": True,
36
+ "groq": True,
37
+ "together": True,
38
+ "nim": True,
39
+ }
40
+
41
+
26
42
  class WaldiezModel(WaldiezBase):
27
43
  """Waldiez Model class.
28
44
 
@@ -225,10 +241,13 @@ def set_default_base_url(
225
241
  Dict[str, Any]
226
242
  The llm config dictionary with the default base url set.
227
243
  """
228
- if api_type in ("openai", "other", "azure", "cohere"):
229
- return llm_config
244
+ dict_copy = llm_config.copy()
230
245
  if "base_url" not in llm_config or not llm_config["base_url"]:
231
- dict_copy = llm_config.copy()
232
- dict_copy["base_url"] = DEFAULT_BASE_URLS.get(api_type, "")
233
- return dict_copy
234
- return llm_config
246
+ if MODEL_NEEDS_BASE_URL.get(api_type, True):
247
+ dict_copy["base_url"] = DEFAULT_BASE_URLS.get(api_type, "")
248
+ if (
249
+ not llm_config.get("base_url", "")
250
+ and MODEL_NEEDS_BASE_URL.get(api_type, True) is False
251
+ ):
252
+ dict_copy.pop("base_url", None)
253
+ return dict_copy
@@ -1,6 +1,6 @@
1
1
  # SPDX-License-Identifier: Apache-2.0.
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
- # flake8: noqa E501
3
+ # flake8: noqa: E501
4
4
  """Waldiez Model Data."""
5
5
 
6
6
  from typing import Dict, Optional
@@ -239,7 +239,7 @@ class Waldiez:
239
239
  self.flow.requirements,
240
240
  )
241
241
  requirements = set(requirements_list)
242
- requirements.add(f"pyautogen=={autogen_version}")
242
+ requirements.add(f"pyautogen[openai]=={autogen_version}")
243
243
  if self.has_rag_agents:
244
244
  rag_extras = get_retrievechat_extra_requirements(self.agents)
245
245
  requirements.update(rag_extras)
@@ -217,6 +217,7 @@ class WaldiezRunner:
217
217
  spec.loader.exec_module(module)
218
218
  printer("<Waldiez> - Starting workflow...")
219
219
  results = module.main()
220
+ printer("<Waldiez> - Workflow finished")
220
221
  sys.path.pop(0)
221
222
  reset_env_vars(old_vars)
222
223
  after_run(
@@ -2,6 +2,7 @@
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
3
  # pylint: skip-file
4
4
  # isort: skip_file
5
+ # flake8: noqa: E501,E402
5
6
  """Waldiez-studio extra typer commands for CLI."""
6
7
 
7
8
  from typing import Any, Callable
@@ -13,7 +14,7 @@ HAVE_STUDIO = False
13
14
  studio_app: Callable[..., Any] | None = None
14
15
 
15
16
  try:
16
- from waldiez_studio.cli import run # type: ignore[unused-ignore, import-not-found, import-untyped] # noqa # flake8: noqa
17
+ from waldiez_studio.cli import run # type: ignore[unused-ignore, import-not-found, import-untyped]
17
18
 
18
19
  studio_app = run
19
20
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes