waldiez 0.4.3__py3-none-any.whl → 0.4.5__py3-none-any.whl
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.
- waldiez/__init__.py +21 -2
- waldiez/_version.py +5 -2
- waldiez/cli.py +19 -4
- waldiez/exporter.py +8 -4
- waldiez/exporting/agent/utils/captain_agent.py +4 -1
- waldiez/exporting/agent/utils/group_manager.py +0 -1
- waldiez/exporting/agent/utils/rag_user/rag_user.py +1 -0
- waldiez/exporting/agent/utils/swarm_agent.py +1 -0
- waldiez/exporting/base/base_exporter.py +2 -2
- waldiez/exporting/base/mixin.py +3 -0
- waldiez/exporting/base/utils/comments.py +2 -0
- waldiez/exporting/chats/utils/sequential.py +1 -1
- waldiez/exporting/chats/utils/single_chat.py +3 -0
- waldiez/exporting/chats/utils/swarm.py +3 -0
- waldiez/exporting/flow/flow_exporter.py +2 -0
- waldiez/exporting/flow/utils/def_main.py +1 -0
- waldiez/exporting/flow/utils/flow_content.py +3 -0
- waldiez/exporting/flow/utils/flow_names.py +1 -0
- waldiez/exporting/flow/utils/importing_utils.py +1 -0
- waldiez/exporting/flow/utils/logging_utils.py +8 -8
- waldiez/exporting/skills/skills_exporter.py +1 -1
- waldiez/exporting/skills/utils.py +5 -3
- waldiez/models/__init__.py +1 -0
- waldiez/models/agents/agent/agent.py +1 -1
- waldiez/models/agents/agent/termination_message.py +1 -0
- waldiez/models/agents/group_manager/speakers.py +1 -1
- waldiez/models/agents/rag_user/retrieve_config.py +1 -0
- waldiez/models/agents/swarm_agent/after_work.py +0 -1
- waldiez/models/agents/swarm_agent/on_condition.py +1 -0
- waldiez/models/agents/swarm_agent/on_condition_available.py +1 -0
- waldiez/models/chat/chat.py +2 -0
- waldiez/models/chat/chat_message.py +1 -0
- waldiez/models/common/method_utils.py +11 -2
- waldiez/models/flow/flow.py +1 -0
- waldiez/models/skill/extra_requirements.py +1 -0
- waldiez/models/waldiez.py +5 -5
- waldiez/runner.py +4 -2
- waldiez/running/environment.py +4 -3
- waldiez/running/gen_seq_diagram.py +3 -2
- waldiez/running/running.py +48 -24
- waldiez/utils/check_rdps.py +18 -0
- waldiez/utils/cli_extras/__init__.py +2 -0
- waldiez/utils/cli_extras/runner.py +37 -0
- {waldiez-0.4.3.dist-info → waldiez-0.4.5.dist-info}/METADATA +119 -38
- {waldiez-0.4.3.dist-info → waldiez-0.4.5.dist-info}/RECORD +49 -47
- {waldiez-0.4.3.dist-info → waldiez-0.4.5.dist-info}/licenses/LICENSE +2 -2
- waldiez-0.4.5.dist-info/licenses/NOTICE.md +14 -0
- waldiez-0.4.3.dist-info/licenses/NOTICE.md +0 -5
- {waldiez-0.4.3.dist-info → waldiez-0.4.5.dist-info}/WHEEL +0 -0
- {waldiez-0.4.3.dist-info → waldiez-0.4.5.dist-info}/entry_points.txt +0 -0
waldiez/models/waldiez.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SPDX-License-Identifier: Apache-2.0.
|
|
2
2
|
# Copyright (c) 2024 - 2025 Waldiez and contributors.
|
|
3
|
-
"""Waldiez
|
|
3
|
+
"""Waldiez data class.
|
|
4
4
|
|
|
5
5
|
A Waldiez class contains all the information that is needed to generate
|
|
6
6
|
and run an autogen workflow. It has the model/LLM configurations, the agent
|
|
@@ -167,7 +167,7 @@ class Waldiez:
|
|
|
167
167
|
"""Get the agents.
|
|
168
168
|
|
|
169
169
|
Yields
|
|
170
|
-
|
|
170
|
+
------
|
|
171
171
|
WaldiezAgent
|
|
172
172
|
The flow agents.
|
|
173
173
|
"""
|
|
@@ -178,7 +178,7 @@ class Waldiez:
|
|
|
178
178
|
"""Get the flow skills.
|
|
179
179
|
|
|
180
180
|
Yields
|
|
181
|
-
|
|
181
|
+
------
|
|
182
182
|
WaldiezSkill
|
|
183
183
|
The skills.
|
|
184
184
|
"""
|
|
@@ -189,7 +189,7 @@ class Waldiez:
|
|
|
189
189
|
"""Get the models.
|
|
190
190
|
|
|
191
191
|
Yields
|
|
192
|
-
|
|
192
|
+
------
|
|
193
193
|
WaldiezModel
|
|
194
194
|
The flow models.
|
|
195
195
|
"""
|
|
@@ -276,7 +276,7 @@ class Waldiez:
|
|
|
276
276
|
autogen_version=autogen_version,
|
|
277
277
|
)
|
|
278
278
|
)
|
|
279
|
-
return sorted(
|
|
279
|
+
return sorted(requirements)
|
|
280
280
|
|
|
281
281
|
def get_flow_env_vars(self) -> List[Tuple[str, str]]:
|
|
282
282
|
"""Get the flow environment variables.
|
waldiez/runner.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# SPDX-License-Identifier: Apache-2.0.
|
|
2
2
|
# Copyright (c) 2024 - 2025 Waldiez and contributors.
|
|
3
3
|
"""Run a waldiez flow.
|
|
4
|
+
|
|
4
5
|
The flow is first converted to an autogen flow with agents, chats and skills.
|
|
5
6
|
We then chown to temporary directory, call the flow's `main()` and
|
|
6
7
|
return the results. Before running the flow, any additional environment
|
|
@@ -144,9 +145,9 @@ class WaldiezRunner:
|
|
|
144
145
|
Set[str]
|
|
145
146
|
The extra requirements.
|
|
146
147
|
"""
|
|
147
|
-
extra_requirements =
|
|
148
|
+
extra_requirements = {
|
|
148
149
|
req for req in self.waldiez.requirements if req not in sys.modules
|
|
149
|
-
|
|
150
|
+
}
|
|
150
151
|
if self.waldiez.has_captain_agents:
|
|
151
152
|
check_pysqlite3()
|
|
152
153
|
return extra_requirements
|
|
@@ -185,6 +186,7 @@ class WaldiezRunner:
|
|
|
185
186
|
The runtime uploads root.
|
|
186
187
|
skip_mmd : bool
|
|
187
188
|
Whether to skip the Mermaid diagram generation.
|
|
189
|
+
|
|
188
190
|
Returns
|
|
189
191
|
-------
|
|
190
192
|
Union[ChatResult, List[ChatResult]]
|
waldiez/running/environment.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# pylint: disable=import-outside-toplevel,reimported
|
|
4
4
|
"""Environment related utilities."""
|
|
5
5
|
|
|
6
|
-
import importlib
|
|
6
|
+
import importlib
|
|
7
7
|
import os
|
|
8
8
|
import site
|
|
9
9
|
import sys
|
|
@@ -20,7 +20,8 @@ def in_virtualenv() -> bool:
|
|
|
20
20
|
True if inside a virtualenv, False otherwise.
|
|
21
21
|
"""
|
|
22
22
|
return hasattr(sys, "real_prefix") or (
|
|
23
|
-
hasattr(sys, "base_prefix")
|
|
23
|
+
hasattr(sys, "base_prefix")
|
|
24
|
+
and os.path.realpath(sys.base_prefix) != os.path.realpath(sys.prefix)
|
|
24
25
|
)
|
|
25
26
|
|
|
26
27
|
|
|
@@ -69,7 +70,7 @@ def refresh_environment() -> None:
|
|
|
69
70
|
|
|
70
71
|
@contextlib.contextmanager
|
|
71
72
|
def _np_no_nep50_warning() -> Generator[None, None, None]:
|
|
72
|
-
"""
|
|
73
|
+
"""Avoid no_nep50 warning.
|
|
73
74
|
|
|
74
75
|
Yields
|
|
75
76
|
------
|
|
@@ -69,12 +69,12 @@ def process_events(df_events: pd.DataFrame) -> str:
|
|
|
69
69
|
----------
|
|
70
70
|
df_events : pd.DataFrame
|
|
71
71
|
The DataFrame containing the events data.
|
|
72
|
+
|
|
72
73
|
Returns
|
|
73
74
|
-------
|
|
74
75
|
str
|
|
75
76
|
The Mermaid sequence diagram text.
|
|
76
77
|
"""
|
|
77
|
-
|
|
78
78
|
# Set to store participants (senders and recipients)
|
|
79
79
|
participants: Set[str] = set()
|
|
80
80
|
recipient: str
|
|
@@ -150,7 +150,7 @@ def save_diagram(mermaid_text: str, output_path: Union[str, Path]) -> None:
|
|
|
150
150
|
def generate_sequence_diagram(
|
|
151
151
|
file_path: Union[str, Path], output_path: Union[str, Path]
|
|
152
152
|
) -> None:
|
|
153
|
-
"""
|
|
153
|
+
"""Generate the Mermaid diagram.
|
|
154
154
|
|
|
155
155
|
Parameters
|
|
156
156
|
----------
|
|
@@ -163,6 +163,7 @@ def generate_sequence_diagram(
|
|
|
163
163
|
------
|
|
164
164
|
FileNotFoundError
|
|
165
165
|
If the input file is not found.
|
|
166
|
+
|
|
166
167
|
ValueError
|
|
167
168
|
If the input file is not a JSON or CSV file.
|
|
168
169
|
"""
|
waldiez/running/running.py
CHANGED
|
@@ -120,20 +120,34 @@ def install_requirements(
|
|
|
120
120
|
requirements_string = ", ".join(extra_requirements)
|
|
121
121
|
printer(f"Installing requirements: {requirements_string}")
|
|
122
122
|
pip_install = [sys.executable, "-m", "pip", "install"]
|
|
123
|
-
if not in_virtualenv():
|
|
123
|
+
if not in_virtualenv(): # it should
|
|
124
|
+
# if not, let's try to install as user
|
|
125
|
+
# not sure if --break-system-packages is safe
|
|
126
|
+
# but it might fail if we don't
|
|
127
|
+
break_system_packages = os.environ.get("PIP_BREAK_SYSTEM_PACKAGES", "")
|
|
128
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = "1"
|
|
124
129
|
pip_install.append("--user")
|
|
125
130
|
pip_install.extend(extra_requirements)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
# pylint: disable=too-many-try-statements
|
|
132
|
+
try:
|
|
133
|
+
with subprocess.Popen(
|
|
134
|
+
pip_install,
|
|
135
|
+
stdout=subprocess.PIPE,
|
|
136
|
+
stderr=subprocess.PIPE,
|
|
137
|
+
) as proc:
|
|
138
|
+
if proc.stdout:
|
|
139
|
+
for line in io.TextIOWrapper(proc.stdout, encoding="utf-8"):
|
|
140
|
+
printer(line.strip())
|
|
141
|
+
if proc.stderr:
|
|
142
|
+
for line in io.TextIOWrapper(proc.stderr, encoding="utf-8"):
|
|
143
|
+
printer(line.strip())
|
|
144
|
+
finally:
|
|
145
|
+
if not in_virtualenv():
|
|
146
|
+
# restore the old env var
|
|
147
|
+
if break_system_packages:
|
|
148
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = break_system_packages
|
|
149
|
+
else:
|
|
150
|
+
del os.environ["PIP_BREAK_SYSTEM_PACKAGES"]
|
|
137
151
|
|
|
138
152
|
|
|
139
153
|
async def a_install_requirements(
|
|
@@ -152,19 +166,29 @@ async def a_install_requirements(
|
|
|
152
166
|
printer(f"Installing requirements: {requirements_string}")
|
|
153
167
|
pip_install = [sys.executable, "-m", "pip", "install"]
|
|
154
168
|
if not in_virtualenv():
|
|
155
|
-
|
|
169
|
+
break_system_packages = os.environ.get("PIP_BREAK_SYSTEM_PACKAGES", "")
|
|
170
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = "1"
|
|
171
|
+
pip_install.extend(["--user"])
|
|
156
172
|
pip_install.extend(extra_requirements)
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
173
|
+
# pylint: disable=too-many-try-statements
|
|
174
|
+
try:
|
|
175
|
+
proc = await asyncio.create_subprocess_exec(
|
|
176
|
+
*pip_install,
|
|
177
|
+
stdout=asyncio.subprocess.PIPE,
|
|
178
|
+
stderr=asyncio.subprocess.PIPE,
|
|
179
|
+
)
|
|
180
|
+
if proc.stdout:
|
|
181
|
+
async for line in proc.stdout:
|
|
182
|
+
printer(line.decode().strip())
|
|
183
|
+
if proc.stderr:
|
|
184
|
+
async for line in proc.stderr:
|
|
185
|
+
printer(line.decode().strip())
|
|
186
|
+
finally:
|
|
187
|
+
if not in_virtualenv():
|
|
188
|
+
if break_system_packages:
|
|
189
|
+
os.environ["PIP_BREAK_SYSTEM_PACKAGES"] = break_system_packages
|
|
190
|
+
else:
|
|
191
|
+
del os.environ["PIP_BREAK_SYSTEM_PACKAGES"]
|
|
168
192
|
|
|
169
193
|
|
|
170
194
|
def after_run(
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0.
|
|
2
|
+
# Copyright (c) 2024 - 2025 Waldiez and contributors.
|
|
3
|
+
"""
|
|
4
|
+
Check for rpds-py on Windows ARM64.
|
|
5
|
+
|
|
6
|
+
Since we cannot use direct git dependency on `rpds-py` in `pyproject.toml`,
|
|
7
|
+
let's check it here.
|
|
8
|
+
|
|
9
|
+
NOTE: We should regularly check if this is still needed.
|
|
10
|
+
"""
|
|
11
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;
|
|
12
|
+
# sys_platform == "win32" and platform_machine == "arm64"",
|
|
13
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;
|
|
14
|
+
# sys_platform == "win32" and platform_machine == "ARM64"",
|
|
15
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;
|
|
16
|
+
# sys_platform == "win32" and platform_machine == "aarch64"",
|
|
17
|
+
# "rpds-py @ git+https://github.com/crate-py/rpds.git@v0.24.0 ;
|
|
18
|
+
# sys_platform == "win32" and platform_machine == "AARCH64"",
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import typer
|
|
8
8
|
|
|
9
9
|
from .jupyter import add_jupyter_cli
|
|
10
|
+
from .runner import add_runner_cli
|
|
10
11
|
from .studio import add_studio_cli
|
|
11
12
|
|
|
12
13
|
|
|
@@ -24,6 +25,7 @@ def add_cli_extras(app: typer.Typer) -> None:
|
|
|
24
25
|
The app with the extra commands added
|
|
25
26
|
"""
|
|
26
27
|
add_jupyter_cli(app)
|
|
28
|
+
add_runner_cli(app)
|
|
27
29
|
add_studio_cli(app)
|
|
28
30
|
|
|
29
31
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0.
|
|
2
|
+
# Copyright (c) 2024 - 2025 Waldiez and contributors.
|
|
3
|
+
# pylint: skip-file
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# flake8: noqa: E501,E402
|
|
6
|
+
"""Waldiez-runner extra typer commands for CLI."""
|
|
7
|
+
|
|
8
|
+
from typing import Any, Callable
|
|
9
|
+
|
|
10
|
+
import typer
|
|
11
|
+
from typer.models import CommandInfo
|
|
12
|
+
|
|
13
|
+
HAVE_RUNNER = False
|
|
14
|
+
runner_app: Callable[..., Any] | None = None
|
|
15
|
+
|
|
16
|
+
try:
|
|
17
|
+
from waldiez_runner.cli import run # type: ignore[unused-ignore, import-not-found, import-untyped]
|
|
18
|
+
|
|
19
|
+
runner_app = run
|
|
20
|
+
|
|
21
|
+
HAVE_RUNNER = True
|
|
22
|
+
except BaseException:
|
|
23
|
+
pass
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def add_runner_cli(app: typer.Typer) -> None:
|
|
27
|
+
"""Add runner command to the app if available.
|
|
28
|
+
|
|
29
|
+
Parameters
|
|
30
|
+
----------
|
|
31
|
+
app : typer.Typer
|
|
32
|
+
The Typer app to add the runner command to.
|
|
33
|
+
"""
|
|
34
|
+
if HAVE_RUNNER:
|
|
35
|
+
app.registered_commands.append(
|
|
36
|
+
CommandInfo(name="serve", callback=runner_app)
|
|
37
|
+
)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: waldiez
|
|
3
|
-
Version: 0.4.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Project-URL:
|
|
7
|
-
Project-URL:
|
|
8
|
-
Project-URL:
|
|
9
|
-
Author-email: Panagiotis Kasnesis <pkasnesis@waldiez.io>, Lazaros Toumanidis <laztoum@waldiez.io>, Stella Ioannidou <stella@
|
|
3
|
+
Version: 0.4.5
|
|
4
|
+
Dynamic: Keywords
|
|
5
|
+
Summary: Make AI Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez.
|
|
6
|
+
Project-URL: Homepage, https://waldiez.io
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/waldiez/waldiez/issues
|
|
8
|
+
Project-URL: Repository, https://github.com/waldiez/waldiez.git
|
|
9
|
+
Author-email: Panagiotis Kasnesis <pkasnesis@waldiez.io>, Lazaros Toumanidis <laztoum@waldiez.io>, Stella Ioannidou <stella@waldiez.io>
|
|
10
10
|
License-File: LICENSE
|
|
11
11
|
License-File: NOTICE.md
|
|
12
12
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -28,20 +28,27 @@ Requires-Dist: asyncer==0.0.8
|
|
|
28
28
|
Requires-Dist: graphviz==0.20.3
|
|
29
29
|
Requires-Dist: httpx<1
|
|
30
30
|
Requires-Dist: jupytext
|
|
31
|
-
Requires-Dist:
|
|
31
|
+
Requires-Dist: nest-asyncio==1.6.0
|
|
32
|
+
Requires-Dist: numpy<=2.2.5
|
|
32
33
|
Requires-Dist: pandas>=2
|
|
33
34
|
Requires-Dist: parso==0.8.4
|
|
34
|
-
Requires-Dist: pyautogen[openai]==0.8.
|
|
35
|
+
Requires-Dist: pyautogen[openai]==0.8.7
|
|
35
36
|
Requires-Dist: pydantic<3,>=2.10.2
|
|
36
37
|
Requires-Dist: typer<0.16,>=0.9
|
|
37
38
|
Provides-Extra: ag2-extras
|
|
38
39
|
Requires-Dist: beautifulsoup4; extra == 'ag2-extras'
|
|
39
|
-
Requires-Dist: chromadb>=0.5.10; extra == 'ag2-extras'
|
|
40
|
-
Requires-Dist:
|
|
40
|
+
Requires-Dist: chromadb>=0.5.10; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
41
|
+
Requires-Dist: chromadb>=0.5.10; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
42
|
+
Requires-Dist: embedchain; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
43
|
+
Requires-Dist: embedchain; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
44
|
+
Requires-Dist: google-api-python-client<3.0,>=2.163.0; extra == 'ag2-extras'
|
|
45
|
+
Requires-Dist: google-auth-httplib2<0.3,>=0.2.0; extra == 'ag2-extras'
|
|
46
|
+
Requires-Dist: google-auth-oauthlib<2.0,>=1.2.1; extra == 'ag2-extras'
|
|
41
47
|
Requires-Dist: huggingface-hub; extra == 'ag2-extras'
|
|
42
48
|
Requires-Dist: ipython; extra == 'ag2-extras'
|
|
43
49
|
Requires-Dist: langchain-community<1,>=0.3.12; extra == 'ag2-extras'
|
|
44
50
|
Requires-Dist: markdownify; extra == 'ag2-extras'
|
|
51
|
+
Requires-Dist: mcp<1.6,>=1.4.0; extra == 'ag2-extras'
|
|
45
52
|
Requires-Dist: pgvector>=0.4.0; extra == 'ag2-extras'
|
|
46
53
|
Requires-Dist: protobuf>=4.25.3; extra == 'ag2-extras'
|
|
47
54
|
Requires-Dist: psycopg==3.2.6; (sys_platform == 'linux') and extra == 'ag2-extras'
|
|
@@ -49,59 +56,73 @@ Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine ==
|
|
|
49
56
|
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'ARM64') and extra == 'ag2-extras'
|
|
50
57
|
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'aarch64') and extra == 'ag2-extras'
|
|
51
58
|
Requires-Dist: psycopg==3.2.6; (sys_platform == 'win32' and platform_machine == 'arm64') and extra == 'ag2-extras'
|
|
59
|
+
Requires-Dist: psycopg>=3.2.6; (sys_platform == 'win32') and extra == 'ag2-extras'
|
|
52
60
|
Requires-Dist: psycopg[binary]==3.2.6; (sys_platform != 'linux' and platform_machine != 'arm64' and platform_machine != 'ARM64' and platform_machine != 'aarch64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
53
|
-
Requires-Dist: psycopg[binary]>=3.2.6; extra == 'ag2-extras'
|
|
54
|
-
Requires-Dist: pyautogen[anthropic]==0.8.
|
|
55
|
-
Requires-Dist: pyautogen[bedrock]==0.8.
|
|
56
|
-
Requires-Dist: pyautogen[cohere]==0.8.
|
|
57
|
-
Requires-Dist: pyautogen[gemini]==0.8.
|
|
58
|
-
Requires-Dist: pyautogen[
|
|
59
|
-
Requires-Dist: pyautogen[
|
|
60
|
-
Requires-Dist: pyautogen[interop-
|
|
61
|
-
Requires-Dist: pyautogen[
|
|
62
|
-
Requires-Dist: pyautogen[
|
|
63
|
-
Requires-Dist: pyautogen[
|
|
64
|
-
Requires-Dist: pyautogen[
|
|
65
|
-
Requires-Dist: pyautogen[
|
|
66
|
-
Requires-Dist: pyautogen[
|
|
61
|
+
Requires-Dist: psycopg[binary]>=3.2.6; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
62
|
+
Requires-Dist: pyautogen[anthropic]==0.8.7; extra == 'ag2-extras'
|
|
63
|
+
Requires-Dist: pyautogen[bedrock]==0.8.7; extra == 'ag2-extras'
|
|
64
|
+
Requires-Dist: pyautogen[cohere]==0.8.7; extra == 'ag2-extras'
|
|
65
|
+
Requires-Dist: pyautogen[gemini]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
66
|
+
Requires-Dist: pyautogen[gemini]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
67
|
+
Requires-Dist: pyautogen[groq]==0.8.7; extra == 'ag2-extras'
|
|
68
|
+
Requires-Dist: pyautogen[interop-crewai]==0.8.7; extra == 'ag2-extras'
|
|
69
|
+
Requires-Dist: pyautogen[interop-langchain]==0.8.7; extra == 'ag2-extras'
|
|
70
|
+
Requires-Dist: pyautogen[lmm]==0.8.7; extra == 'ag2-extras'
|
|
71
|
+
Requires-Dist: pyautogen[mistral]==0.8.7; extra == 'ag2-extras'
|
|
72
|
+
Requires-Dist: pyautogen[neo4j]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
73
|
+
Requires-Dist: pyautogen[neo4j]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
74
|
+
Requires-Dist: pyautogen[ollama]==0.8.7; extra == 'ag2-extras'
|
|
75
|
+
Requires-Dist: pyautogen[together]==0.8.7; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
76
|
+
Requires-Dist: pyautogen[together]==0.8.7; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
77
|
+
Requires-Dist: pyautogen[websurfer]==0.8.7; extra == 'ag2-extras'
|
|
67
78
|
Requires-Dist: pydantic-ai>=0.0.21; extra == 'ag2-extras'
|
|
68
79
|
Requires-Dist: pymongo>=4.11; extra == 'ag2-extras'
|
|
69
80
|
Requires-Dist: pypdf; extra == 'ag2-extras'
|
|
70
81
|
Requires-Dist: pysqlite3-binary==0.5.4; (sys_platform == 'linux' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
71
|
-
Requires-Dist: qdrant-client[fastembed]; extra == 'ag2-extras'
|
|
72
|
-
Requires-Dist:
|
|
82
|
+
Requires-Dist: qdrant-client[fastembed]; (sys_platform != 'win32') and extra == 'ag2-extras'
|
|
83
|
+
Requires-Dist: qdrant-client[fastembed]; (sys_platform == 'win32' and platform_machine != 'arm64' and platform_machine != 'aarch64' and platform_machine != 'ARM64' and platform_machine != 'AARCH64') and extra == 'ag2-extras'
|
|
84
|
+
Requires-Dist: sentence-transformers; (sys_platform == 'linux') and extra == 'ag2-extras'
|
|
85
|
+
Requires-Dist: wikipedia-api<1.0,>=0.8.1; extra == 'ag2-extras'
|
|
73
86
|
Provides-Extra: dev
|
|
74
87
|
Requires-Dist: autoflake==2.3.1; extra == 'dev'
|
|
75
88
|
Requires-Dist: bandit==1.8.3; extra == 'dev'
|
|
76
89
|
Requires-Dist: black[jupyter]==25.1.0; extra == 'dev'
|
|
77
90
|
Requires-Dist: flake8==7.2.0; extra == 'dev'
|
|
78
|
-
Requires-Dist:
|
|
91
|
+
Requires-Dist: hatchling==1.27.0; extra == 'dev'
|
|
92
|
+
Requires-Dist: jupyter-server==2.15.0; extra == 'dev'
|
|
93
|
+
Requires-Dist: jupyterlab>=4.3.0; extra == 'dev'
|
|
79
94
|
Requires-Dist: mypy==1.15.0; extra == 'dev'
|
|
80
95
|
Requires-Dist: pandas-stubs==2.2.3.250308; extra == 'dev'
|
|
81
96
|
Requires-Dist: pre-commit==4.2.0; extra == 'dev'
|
|
82
97
|
Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
|
|
83
98
|
Requires-Dist: pylint==3.3.6; extra == 'dev'
|
|
84
99
|
Requires-Dist: python-dotenv==1.1.0; extra == 'dev'
|
|
85
|
-
Requires-Dist: ruff==0.11.
|
|
100
|
+
Requires-Dist: ruff==0.11.7; extra == 'dev'
|
|
86
101
|
Requires-Dist: toml==0.10.2; (python_version <= '3.10') and extra == 'dev'
|
|
87
102
|
Requires-Dist: types-pyyaml==6.0.12.20250402; extra == 'dev'
|
|
103
|
+
Requires-Dist: types-requests==2.32.0.20250328; extra == 'dev'
|
|
88
104
|
Requires-Dist: types-toml==0.10.8.20240310; extra == 'dev'
|
|
89
105
|
Requires-Dist: yamllint==1.37.0; extra == 'dev'
|
|
90
106
|
Provides-Extra: docs
|
|
91
107
|
Requires-Dist: mdx-include==1.4.2; extra == 'docs'
|
|
92
108
|
Requires-Dist: mdx-truly-sane-lists==1.3; extra == 'docs'
|
|
109
|
+
Requires-Dist: mkdocs-awesome-nav; extra == 'docs'
|
|
93
110
|
Requires-Dist: mkdocs-jupyter==0.25.1; extra == 'docs'
|
|
94
111
|
Requires-Dist: mkdocs-macros-plugin==1.3.7; extra == 'docs'
|
|
95
|
-
Requires-Dist: mkdocs-material==9.6.
|
|
112
|
+
Requires-Dist: mkdocs-material==9.6.12; extra == 'docs'
|
|
96
113
|
Requires-Dist: mkdocs-minify-html-plugin==0.3.1; extra == 'docs'
|
|
114
|
+
Requires-Dist: mkdocs-open-in-new-tab==1.0.8; extra == 'docs'
|
|
97
115
|
Requires-Dist: mkdocs==1.6.1; extra == 'docs'
|
|
98
116
|
Requires-Dist: mkdocstrings-python==1.16.10; extra == 'docs'
|
|
99
117
|
Requires-Dist: mkdocstrings[crystal,python]==0.29.1; extra == 'docs'
|
|
100
118
|
Provides-Extra: jupyter
|
|
119
|
+
Requires-Dist: jupyter-server==2.15.0; extra == 'jupyter'
|
|
101
120
|
Requires-Dist: jupyterlab>=4.3.0; extra == 'jupyter'
|
|
102
|
-
Requires-Dist: waldiez-jupyter==0.4.
|
|
121
|
+
Requires-Dist: waldiez-jupyter==0.4.5; extra == 'jupyter'
|
|
122
|
+
Provides-Extra: runner
|
|
123
|
+
Requires-Dist: waldiez-runner==0.4.5; (python_version >= '3.11') and extra == 'runner'
|
|
103
124
|
Provides-Extra: studio
|
|
104
|
-
Requires-Dist: waldiez-studio==0.4.
|
|
125
|
+
Requires-Dist: waldiez-studio==0.4.5; extra == 'studio'
|
|
105
126
|
Provides-Extra: test
|
|
106
127
|
Requires-Dist: pytest-asyncio==0.26.0; extra == 'test'
|
|
107
128
|
Requires-Dist: pytest-cov==6.1.1; extra == 'test'
|
|
@@ -114,7 +135,7 @@ Description-Content-Type: text/markdown
|
|
|
114
135
|
|
|
115
136
|
# Waldiez
|
|
116
137
|
|
|
117
|
-
 [](https://coveralls.io/github/waldiez/python) [](https://badge.fury.io/py/waldiez)
|
|
138
|
+
 [](https://coveralls.io/github/waldiez/python) [](https://badge.fury.io/py/waldiez) [](https://badge.fury.io/js/@waldiez%2Freact)
|
|
118
139
|
|
|
119
140
|
Translate a Waldiez flow:
|
|
120
141
|
|
|
@@ -130,16 +151,36 @@ To a python script or a jupyter notebook with the corresponding [ag2](https://gi
|
|
|
130
151
|
|
|
131
152
|
## Installation
|
|
132
153
|
|
|
154
|
+
### Python
|
|
155
|
+
|
|
133
156
|
On PyPI:
|
|
134
157
|
|
|
135
|
-
```
|
|
158
|
+
```shell
|
|
136
159
|
python -m pip install waldiez
|
|
137
160
|
```
|
|
138
161
|
|
|
139
162
|
From the repository:
|
|
140
163
|
|
|
141
|
-
```
|
|
142
|
-
python -m pip install git+https://github.com/waldiez/
|
|
164
|
+
```shell
|
|
165
|
+
python -m pip install git+https://github.com/waldiez/waldiez.git
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### React Component
|
|
169
|
+
|
|
170
|
+
If you’re looking for the React component, please refer to [README.npm](https://github.com/waldiez/waldiez/blob/main/README.npm.md).
|
|
171
|
+
|
|
172
|
+
> Note: The React component is only for creating and editing flows — it is not needed to convert or run flows (that functionality is handled by the Python package).
|
|
173
|
+
|
|
174
|
+
Quick install:
|
|
175
|
+
|
|
176
|
+
```shell
|
|
177
|
+
npm install @waldiez/react
|
|
178
|
+
# or
|
|
179
|
+
yarn add @waldiez/react
|
|
180
|
+
# or
|
|
181
|
+
pnpm add @waldiez/react
|
|
182
|
+
# or
|
|
183
|
+
bun add @waldiez/react
|
|
143
184
|
```
|
|
144
185
|
|
|
145
186
|
## Usage
|
|
@@ -147,7 +188,6 @@ python -m pip install git+https://github.com/waldiez/python.git
|
|
|
147
188
|
### UI Options
|
|
148
189
|
|
|
149
190
|
- For creating-only (no exporting or running) waldiez flows, you can use the playground at <https://waldiez.github.io>.
|
|
150
|
-
The repo for the js library is [here](https://github.com/waldiez/react).
|
|
151
191
|
- There is also a jupyterlab extension [here](https://github.com/waldiez/jupyter)
|
|
152
192
|
- You also can use the vscode extension:
|
|
153
193
|
- [repo](https://github.com/waldiez/vscode)
|
|
@@ -250,6 +290,47 @@ runner.run(output_path=output_path)
|
|
|
250
290
|
pip install --force --no-cache waldiez pyautogen
|
|
251
291
|
```
|
|
252
292
|
|
|
293
|
+
## See also
|
|
294
|
+
|
|
295
|
+
- [Waldiez Playground](https://waldiez.github.io)
|
|
296
|
+
- [React Component](https://github.com/waldiez/waldiez/blob/main/README.npm.md)
|
|
297
|
+
- [Waldiez Studio](https://github.com/waldiez/studio)
|
|
298
|
+
- [Waldiez JupyterLab Extension](htttps://github.com/waldiez/jupyter)
|
|
299
|
+
- [Waldiez VSCode Extension](https://github.com/waldiez/vscode)
|
|
300
|
+
|
|
301
|
+
## Contributors ✨
|
|
302
|
+
|
|
303
|
+
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
|
304
|
+
|
|
305
|
+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
306
|
+
<!-- prettier-ignore-start -->
|
|
307
|
+
<!-- markdownlint-disable -->
|
|
308
|
+
<table>
|
|
309
|
+
<tbody>
|
|
310
|
+
<tr>
|
|
311
|
+
<td align="center" valign="top" width="14.28%"><a href="https://scholar.google.com/citations?user=JmW9DwkAAAAJ"><img src="https://avatars.githubusercontent.com/u/29335277?v=4?s=100" width="100px;" alt="Panagiotis Kasnesis"/><br /><sub><b>Panagiotis Kasnesis</b></sub></a><br /><a href="#projectManagement-ounospanas" title="Project Management">📆</a> <a href="#research-ounospanas" title="Research">🔬</a></td>
|
|
312
|
+
<td align="center" valign="top" width="14.28%"><a href="https://humancentered.gr/"><img src="https://avatars.githubusercontent.com/u/3456066?v=4?s=100" width="100px;" alt="Stella Ioannidou"/><br /><sub><b>Stella Ioannidou</b></sub></a><br /><a href="#promotion-siioannidou" title="Promotion">📣</a> <a href="#design-siioannidou" title="Design">🎨</a></td>
|
|
313
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lazToum"><img src="https://avatars.githubusercontent.com/u/4764837?v=4?s=100" width="100px;" alt="Lazaros Toumanidis"/><br /><sub><b>Lazaros Toumanidis</b></sub></a><br /><a href="https://github.com/waldiez/react/commits?author=lazToum" title="Code">💻</a></td>
|
|
314
|
+
</tr>
|
|
315
|
+
</tbody>
|
|
316
|
+
<tfoot>
|
|
317
|
+
<tr>
|
|
318
|
+
<td align="center" size="13px" colspan="7">
|
|
319
|
+
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
|
|
320
|
+
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
|
|
321
|
+
</img>
|
|
322
|
+
</td>
|
|
323
|
+
</tr>
|
|
324
|
+
</tfoot>
|
|
325
|
+
</table>
|
|
326
|
+
|
|
327
|
+
<!-- markdownlint-restore -->
|
|
328
|
+
<!-- prettier-ignore-end -->
|
|
329
|
+
|
|
330
|
+
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
331
|
+
|
|
332
|
+
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
|
333
|
+
|
|
253
334
|
## License
|
|
254
335
|
|
|
255
|
-
This project is licensed under the [Apache License, Version 2.0 (Apache-2.0)](https://github.com/waldiez/
|
|
336
|
+
This project is licensed under the [Apache License, Version 2.0 (Apache-2.0)](https://github.com/waldiez/waldiez/blob/main/LICENSE).
|