waldiez 0.3.8__py3-none-any.whl → 0.3.10__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/_version.py CHANGED
@@ -2,4 +2,4 @@
2
2
  # Copyright (c) 2024 - 2025 Waldiez and contributors.
3
3
  """Version information for Waldiez."""
4
4
 
5
- __version__ = "0.3.8"
5
+ __version__ = "0.3.10"
@@ -15,11 +15,13 @@ get_escaped_string
15
15
  import re
16
16
  from typing import Dict, Tuple
17
17
 
18
+ MAX_VARIABLE_LENGTH = 46
19
+
18
20
 
19
21
  def get_valid_python_variable_name(
20
22
  possible: str,
21
23
  prefix: str = "w",
22
- max_length: int = 64,
24
+ max_length: int = MAX_VARIABLE_LENGTH,
23
25
  ) -> str:
24
26
  """Get a valid Python variable name from a possible name.
25
27
 
@@ -78,7 +80,7 @@ def get_valid_instance_name(
78
80
  instance: Tuple[str, str],
79
81
  current_names: Dict[str, str],
80
82
  prefix: str = "w",
81
- max_length: int = 64,
83
+ max_length: int = MAX_VARIABLE_LENGTH,
82
84
  ) -> Dict[str, str]:
83
85
  """Get a valid instance name.
84
86
 
@@ -109,7 +111,9 @@ def get_valid_instance_name(
109
111
  # already in the current names (it's id)
110
112
  return current_names
111
113
  new_names = current_names.copy()
112
- name = get_valid_python_variable_name(possible_name, prefix=prefix)
114
+ name = get_valid_python_variable_name(
115
+ possible_name, prefix=prefix, max_length=max_length
116
+ )
113
117
  if name in current_names.values():
114
118
  name = f"{prefix}_{name}"
115
119
  if name in current_names.values():
@@ -31,7 +31,7 @@ class ResultType(TypedDict):
31
31
  def ensure_unique_names(
32
32
  waldiez: Waldiez,
33
33
  get_valid_instance_name: Callable[..., Dict[str, str]],
34
- max_length: int = 64,
34
+ max_length: int = 46,
35
35
  flow_name_max_length: int = 20,
36
36
  ) -> ResultType:
37
37
  """Ensure unique names for agents, models, skills, and chats and flow.
@@ -128,6 +128,7 @@ def get_the_imports_string(
128
128
  "\nimport aiofiles"
129
129
  "\nimport aiosqlite"
130
130
  "\nimport anyio"
131
+ "\nimport nest_asyncio"
131
132
  "\nfrom aiocsv import AsyncDictWriter"
132
133
  "\nfrom asyncer import asyncify"
133
134
  )
@@ -143,6 +144,8 @@ def get_the_imports_string(
143
144
  final_string += "\n".join(local_imports) + "\n"
144
145
  while not final_string.endswith("\n\n"):
145
146
  final_string += "\n"
147
+ if is_async:
148
+ final_string += "\nnest_asyncio.apply()\n"
146
149
  return final_string.replace("\n\n\n", "\n\n") # avoid too many newlines
147
150
 
148
151
 
@@ -9,6 +9,8 @@ import parso
9
9
  import parso.python
10
10
  import parso.tree
11
11
 
12
+ MAX_VAR_NAME_LENGTH = 64
13
+
12
14
 
13
15
  def parse_code_string(
14
16
  code_string: str,
@@ -220,6 +222,8 @@ def generate_function(
220
222
  str
221
223
  The generated function.
222
224
  """
225
+ if len(function_name) > MAX_VAR_NAME_LENGTH:
226
+ function_name = function_name[:MAX_VAR_NAME_LENGTH]
223
227
  function_string = f"def {function_name}("
224
228
  if not function_args:
225
229
  function_string += ")"
@@ -146,7 +146,9 @@ class WaldiezFlowData(WaldiezBase):
146
146
  for index, chat in enumerate(self.chats):
147
147
  id_to_chat_id[chat.id] = index
148
148
  chat.set_chat_id(index)
149
- # also update the chat prerequisites
149
+ if not self.is_async:
150
+ return self
151
+ # also update the chat prerequisites (if async)
150
152
  # we have ids(str), not chat_ids(int)
151
153
  for chat in self.chats:
152
154
  chat_prerequisites = []
waldiez/runner.py CHANGED
@@ -16,8 +16,6 @@ from pathlib import Path
16
16
  from types import TracebackType
17
17
  from typing import TYPE_CHECKING, Dict, List, Optional, Type, Union
18
18
 
19
- from asyncer import syncify
20
-
21
19
  from .exporter import WaldiezExporter
22
20
  from .models.waldiez import Waldiez
23
21
  from .running import (
@@ -291,9 +289,16 @@ class WaldiezRunner:
291
289
  If the workflow is already running.
292
290
  """
293
291
  if self.waldiez.is_async:
294
- return syncify(self.a_run, raise_sync_error=False)(
295
- output_path, uploads_root
296
- )
292
+ # pylint: disable=import-outside-toplevel
293
+ from anyio.from_thread import start_blocking_portal
294
+
295
+ with start_blocking_portal(backend="asyncio") as portal:
296
+ return portal.call(
297
+ self._a_run,
298
+ output_path,
299
+ uploads_root,
300
+ skip_mmd,
301
+ )
297
302
  if self._running is True:
298
303
  raise RuntimeError("Workflow already running")
299
304
  self._running = True
@@ -56,7 +56,6 @@ def get_jupyter_app() -> Callable[..., None]:
56
56
  )
57
57
 
58
58
  @jupyter_app.callback(
59
- name="start",
60
59
  help="Start JupyterLab.",
61
60
  context_settings={
62
61
  "help_option_names": ["-h", "--help"],
@@ -13,7 +13,7 @@ HAVE_STUDIO = False
13
13
  studio_app: Callable[..., Any] | None = None
14
14
 
15
15
  try:
16
- from waldiez_studio.cli import run # type: ignore[import-untyped, unused-ignore, import-not-found] # noqa
16
+ from waldiez_studio.cli import run # type: ignore[unused-ignore, import-not-found, import-untyped] # noqa # flake8: noqa
17
17
 
18
18
  studio_app = run
19
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waldiez
3
- Version: 0.3.8
3
+ Version: 0.3.10
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
@@ -23,13 +23,13 @@ Requires-Dist: aiofiles==24.1.0
23
23
  Requires-Dist: aiosqlite==0.20.0
24
24
  Requires-Dist: asyncer==0.0.8
25
25
  Requires-Dist: graphviz==0.20.3
26
- Requires-Dist: httpx<0.28.0,>=0.27.0
26
+ Requires-Dist: httpx<1
27
27
  Requires-Dist: jupytext
28
28
  Requires-Dist: pandas>=2
29
29
  Requires-Dist: parso==0.8.4
30
30
  Requires-Dist: pyautogen==0.7.2
31
31
  Requires-Dist: pydantic<3,>=2.6.1
32
- Requires-Dist: typer<0.13,>=0.9
32
+ Requires-Dist: typer<0.16,>=0.9
33
33
  Provides-Extra: ag2-extras
34
34
  Requires-Dist: autogen[captainagent]==0.7.2; (platform_system == 'Linux') and extra == 'ag2-extras'
35
35
  Requires-Dist: chromadb; (platform_system != 'Linux') and extra == 'ag2-extras'
@@ -49,20 +49,20 @@ Requires-Dist: pyautogen[retrievechat-qdrant]==0.7.2; (python_version < '3.13')
49
49
  Requires-Dist: pyautogen[retrievechat]==0.7.2; extra == 'ag2-extras'
50
50
  Requires-Dist: pyautogen[together]==0.7.2; extra == 'ag2-extras'
51
51
  Requires-Dist: pyautogen[websurfer]==0.7.2; extra == 'ag2-extras'
52
- Requires-Dist: pymongo==4.10.1; extra == 'ag2-extras'
52
+ Requires-Dist: pymongo>=4.10.1; extra == 'ag2-extras'
53
53
  Requires-Dist: qdrant-client[fastembed]; (python_version >= '3.13') and extra == 'ag2-extras'
54
54
  Requires-Dist: sentence-transformers>=2.0.0; (platform_system != 'Linux') and extra == 'ag2-extras'
55
55
  Provides-Extra: dev
56
56
  Requires-Dist: autoflake==2.3.1; extra == 'dev'
57
57
  Requires-Dist: bandit==1.8.2; extra == 'dev'
58
- Requires-Dist: black[jupyter]==24.10.0; extra == 'dev'
58
+ Requires-Dist: black[jupyter]==25.1.0; extra == 'dev'
59
59
  Requires-Dist: flake8==7.1.1; extra == 'dev'
60
- Requires-Dist: isort==5.13.2; extra == 'dev'
60
+ Requires-Dist: isort==6.0.0; extra == 'dev'
61
61
  Requires-Dist: mypy==1.14.1; extra == 'dev'
62
62
  Requires-Dist: pandas-stubs; extra == 'dev'
63
63
  Requires-Dist: pre-commit==4.1.0; extra == 'dev'
64
64
  Requires-Dist: pydocstyle==6.3.0; extra == 'dev'
65
- Requires-Dist: pylint==3.3.3; extra == 'dev'
65
+ Requires-Dist: pylint==3.3.4; extra == 'dev'
66
66
  Requires-Dist: python-dotenv==1.0.1; extra == 'dev'
67
67
  Requires-Dist: ruff==0.9.3; extra == 'dev'
68
68
  Requires-Dist: toml; (python_version <= '3.10') and extra == 'dev'
@@ -81,11 +81,11 @@ Requires-Dist: mkdocstrings-python==1.13.0; extra == 'docs'
81
81
  Requires-Dist: mkdocstrings[crystal,python]==0.27.0; extra == 'docs'
82
82
  Provides-Extra: jupyter
83
83
  Requires-Dist: jupyterlab>=4.3.0; extra == 'jupyter'
84
- Requires-Dist: waldiez-jupyter==0.3.7; extra == 'jupyter'
84
+ Requires-Dist: waldiez-jupyter==0.3.10; extra == 'jupyter'
85
85
  Provides-Extra: studio
86
- Requires-Dist: waldiez-studio==0.3.7; extra == 'studio'
86
+ Requires-Dist: waldiez-studio==0.3.10; extra == 'studio'
87
87
  Provides-Extra: test
88
- Requires-Dist: pytest-asyncio==0.25.2; extra == 'test'
88
+ Requires-Dist: pytest-asyncio==0.25.3; extra == 'test'
89
89
  Requires-Dist: pytest-cov==6.0.0; extra == 'test'
90
90
  Requires-Dist: pytest-html==4.1.1; extra == 'test'
91
91
  Requires-Dist: pytest-sugar==1.0.0; extra == 'test'
@@ -1,10 +1,10 @@
1
1
  waldiez/__init__.py,sha256=cXWdy5P9i_x6fHwlL5DRaIhmpfnhabo5GjASStlcLWw,819
2
2
  waldiez/__main__.py,sha256=0dYzNrQbovRwQQvmZC6_1FDR1m71SUIOkTleO5tBnBw,203
3
- waldiez/_version.py,sha256=CwLxaktPhhwVwzs6ELdOGGd87-vhAwS5xnXty8qZ36E,155
3
+ waldiez/_version.py,sha256=Dlx5WyLmhau88DdjdwOZD6NwqTOnOOMu9xNL-3soMP8,156
4
4
  waldiez/cli.py,sha256=ZhcXOH5WtGVncQpoOix9yHXctQKBwckgiIdYLaRj40c,7108
5
5
  waldiez/exporter.py,sha256=8EqLya3UqCA_F2TwtfdeRCt7ILnWxBcQvkMyX8no0BU,6501
6
6
  waldiez/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- waldiez/runner.py,sha256=WhiVQbtw1ktitxi10Y5Ez67DU1aVk8n6SgebgqAefGU,11094
7
+ waldiez/runner.py,sha256=rFuCPFSmdOxujEWdEtCrGv8FpZ0cZhPagIslPs-2DZU,11317
8
8
  waldiez/exporting/__init__.py,sha256=nlMWBnn_MViGBJmDhrTCYpPv19fEP_WixvmmY9jt5c8,399
9
9
  waldiez/exporting/agent/__init__.py,sha256=GOgri16QNICpx3YNZPzVn_KYVxuQACYKQyazhJNtYK0,188
10
10
  waldiez/exporting/agent/agent_exporter.py,sha256=ZvEcBG1kNlaAitTZbqIfxF7wqnxUtobDvAC1gPcLME8,10060
@@ -32,7 +32,7 @@ waldiez/exporting/base/import_position.py,sha256=EzgHF8GZZ8UsyFdNo_da9hTrQEmbVtM
32
32
  waldiez/exporting/base/mixin.py,sha256=_QkBitZ3T6jdDx9yZTDFKToa0f9WsLKCW4FpZGjCztc,3376
33
33
  waldiez/exporting/base/utils/__init__.py,sha256=2dp5wO0TYWywgXXptU9VLDjNQYCf8x7g4e4vPlLKW98,508
34
34
  waldiez/exporting/base/utils/comments.py,sha256=M1W0lWMTyOjRZv5f58rktIPeYA9XF95lZlfcvB05tYU,2257
35
- waldiez/exporting/base/utils/naming.py,sha256=Bi2Z2gcix0otOhXcgTUgP7kqCgGXIq_QyAcDJSH-g4A,3573
35
+ waldiez/exporting/base/utils/naming.py,sha256=G4e9MPnbg9W8QLVblQj31sV46GKmAOqEA8iChu6mo58,3670
36
36
  waldiez/exporting/base/utils/path_check.py,sha256=5XGKmHA3oi9kf2gI4ZHB3K9gnjDP0NEfpn0tP8cme-8,1425
37
37
  waldiez/exporting/base/utils/to_string.py,sha256=fo8i6QaLZJsym3biN2IhVooTWlXiXVCzuU8FNFJVXME,2183
38
38
  waldiez/exporting/chats/__init__.py,sha256=BS8F-hgrzsKPtWEyEMPE-e0JL6q5478i76vR1bKjXXY,195
@@ -50,8 +50,8 @@ waldiez/exporting/flow/utils/agent_utils.py,sha256=QL1nzlgYeh6Y-l9R3hmCsrxSzluvB
50
50
  waldiez/exporting/flow/utils/chat_utils.py,sha256=q6HS4JTNQJe15eh78H1BlN-wId9XzvVQziGhxsUIEFs,1882
51
51
  waldiez/exporting/flow/utils/def_main.py,sha256=7yrxYizssTBYvcsXj3p-LIP-29-KpCRAV7I3_bhWbXE,2440
52
52
  waldiez/exporting/flow/utils/flow_content.py,sha256=kAEXS5rWGw0Lvc4R5fosRZZ89SOlFbLsp7qk10pirPU,4515
53
- waldiez/exporting/flow/utils/flow_names.py,sha256=5i1qjSrkbIFtnE13sv_GjOTyRnmTzPMys1Ecd5au7mg,3463
54
- waldiez/exporting/flow/utils/importing_utils.py,sha256=5jeuo36cHSCyXRsi9OchEastP4O92lMStCqlQ2WlaI0,5415
53
+ waldiez/exporting/flow/utils/flow_names.py,sha256=GtfVRF8WYUP8Xx47AiyZ5FuuCUb22jhJn3diblbbBfM,3463
54
+ waldiez/exporting/flow/utils/importing_utils.py,sha256=j0E6gyDl0-l1oQUoSd8tRb64TfAet9HEtnQrnGLIDmE,5519
55
55
  waldiez/exporting/flow/utils/logging_utils.py,sha256=m3Ja00Qb_07rLVgwSOFSBaJk48SfCNsyPuQbRy5VMNU,10963
56
56
  waldiez/exporting/models/__init__.py,sha256=QbyYuS-Px-M9vMrdL-UKqnDzhYWRkNmRGBbc1IBuwpM,212
57
57
  waldiez/exporting/models/models_exporter.py,sha256=W4EDMY79RNSqZKBd2wYGFRQnt-OvbixXMXiAeTjNdU0,5994
@@ -108,10 +108,10 @@ waldiez/models/common/__init__.py,sha256=I_j63y68FCpSVDz9YXW7aKQsA-X3MOWDvNokyrV
108
108
  waldiez/models/common/base.py,sha256=SwnnuFTJ0C3PfBoRilqE0uZv3j5aelw7-s-79KcxJNA,1840
109
109
  waldiez/models/common/date_utils.py,sha256=hdnxYU8GKQTnucOnAfs1DAqER0oe59A5G3UVDktl-ro,344
110
110
  waldiez/models/common/dict_utils.py,sha256=ydUP9Am9QxQveqnDB3Rdt62FvTHeFfD4kTmCLXyutGY,1050
111
- waldiez/models/common/method_utils.py,sha256=gjuY4jk4rb2oQuCQGG-43oZRVivlNUeOE6EctUou9ng,6875
111
+ waldiez/models/common/method_utils.py,sha256=CyTwRppegHviN-J_oj5XsPvX0edMSmEbLVeTkrG2HVo,7010
112
112
  waldiez/models/flow/__init__.py,sha256=3UdwoUZdkLr6G78tNTyaijoiwvmHZ-N0tY3G7S_xbRs,255
113
113
  waldiez/models/flow/flow.py,sha256=kM8K7dl8wZIP0GEryELC2yZ0t0blEFFkNOvx7VEMW4o,14700
114
- waldiez/models/flow/flow_data.py,sha256=9oF2_bd-p2gmnv-rNDKeP_xh8zLiOY095dS0rig5JD4,4969
114
+ waldiez/models/flow/flow_data.py,sha256=Mqa7NLZMfdiPknj-RhyDPgMZjkDTmcDFUpPKkXuYpTk,5034
115
115
  waldiez/models/flow/utils.py,sha256=Bd8dWYlCenuU4VeusAL_qxkXzYSuxl9e3a7FhHs6UCY,5435
116
116
  waldiez/models/model/__init__.py,sha256=1cOyDThhZV8o7pZN1DaIhh12jWty_YMegoQ4Jg7uKyI,383
117
117
  waldiez/models/model/model.py,sha256=0EqHSMIBun_Owy-v0cbv39sRP8if1LlLKeMOD_XA3Ow,6984
@@ -128,11 +128,11 @@ waldiez/utils/conflict_checker.py,sha256=v7BNDenJSHfPBfqb4PnxaVZwjPqzWlh5w31WC9u
128
128
  waldiez/utils/flaml_warnings.py,sha256=jgdS8zwzuWPodTgm9nnx3wO5MrOUbR7P7IRj9-aq2qk,601
129
129
  waldiez/utils/pysqlite3_checker.py,sha256=LypcHlCMbzdC0QUfrr68gzmrEbwzvKLUn-riYiCKu70,7636
130
130
  waldiez/utils/cli_extras/__init__.py,sha256=FQ6biuz6Ig-U3xkmgac3WMUynH_7XWjeGI-DqWFTC8c,625
131
- waldiez/utils/cli_extras/jupyter.py,sha256=9WlDxhn4LkoSa72PKyPAWsBUGwUez3YAk6IvJnMD7nc,2993
132
- waldiez/utils/cli_extras/studio.py,sha256=oF1O2pmAUZudNou7jzx57uQoKsH-0uib71ZtyT149zM,871
133
- waldiez-0.3.8.dist-info/METADATA,sha256=-nRKw3_8-4krLFQbak1-Ta_nbQQJtxEr9M5JFFuGtRs,9451
134
- waldiez-0.3.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
135
- waldiez-0.3.8.dist-info/entry_points.txt,sha256=9MQ8Y1rD19CU7UwjNPwoyTRpQsPs2QimjrtwTD0bD6k,44
136
- waldiez-0.3.8.dist-info/licenses/LICENSE,sha256=bWinEG_ynCS8eSj1vhAmYDWwYODhBOF0AUEjOgZ3kmU,11355
137
- waldiez-0.3.8.dist-info/licenses/NOTICE.md,sha256=lrKsUNrpE18LPSLPJY_kt2ZJFZJEwH55wPv5Axcheyc,133
138
- waldiez-0.3.8.dist-info/RECORD,,
131
+ waldiez/utils/cli_extras/jupyter.py,sha256=C4fOiS_PbU15X-6HUZBPHvfgEjOrY39e07mClKvswPI,2971
132
+ waldiez/utils/cli_extras/studio.py,sha256=te6VmwYDeEEK6Jps-Ou84QPZmCYMsF-oE1hNu6ewFHg,887
133
+ waldiez-0.3.10.dist-info/METADATA,sha256=oupQyYHDh2lDqTki8KTa5seNXAjOLCItAVc64lOB32Y,9438
134
+ waldiez-0.3.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
135
+ waldiez-0.3.10.dist-info/entry_points.txt,sha256=9MQ8Y1rD19CU7UwjNPwoyTRpQsPs2QimjrtwTD0bD6k,44
136
+ waldiez-0.3.10.dist-info/licenses/LICENSE,sha256=bWinEG_ynCS8eSj1vhAmYDWwYODhBOF0AUEjOgZ3kmU,11355
137
+ waldiez-0.3.10.dist-info/licenses/NOTICE.md,sha256=lrKsUNrpE18LPSLPJY_kt2ZJFZJEwH55wPv5Axcheyc,133
138
+ waldiez-0.3.10.dist-info/RECORD,,