waldiez 0.1.19__py3-none-any.whl → 0.1.20__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 CHANGED
@@ -1,6 +1,7 @@
1
1
  """Waldiez package."""
2
2
 
3
3
  import logging
4
+ import warnings
4
5
 
5
6
  from ._version import __version__
6
7
  from .conflict_checker import check_conflicts
@@ -8,6 +9,8 @@ from .exporter import WaldiezExporter
8
9
  from .models import Waldiez
9
10
  from .runner import WaldiezRunner
10
11
 
12
+ warnings.filterwarnings("ignore", "flaml.automl is not available")
13
+
11
14
 
12
15
  # pylint: disable=too-few-public-methods
13
16
  class FlamlFilter(logging.Filter):
waldiez/_version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """Version information for Waldiez."""
2
2
 
3
- __version__ = "0.1.19"
3
+ __version__ = "0.1.20"
@@ -1,9 +1,10 @@
1
1
  """Waldiez model."""
2
2
 
3
- from .model import WaldiezModel
3
+ from .model import DEFAULT_BASE_URLS, WaldiezModel
4
4
  from .model_data import WaldiezModelAPIType, WaldiezModelData, WaldiezModelPrice
5
5
 
6
6
  __all__ = [
7
+ "DEFAULT_BASE_URLS",
7
8
  "WaldiezModel",
8
9
  "WaldiezModelData",
9
10
  "WaldiezModelPrice",
@@ -7,7 +7,16 @@ from pydantic import Field
7
7
  from typing_extensions import Annotated, Literal
8
8
 
9
9
  from ..common import WaldiezBase, now
10
- from .model_data import WaldiezModelData
10
+ from .model_data import WaldiezModelAPIType, WaldiezModelData
11
+
12
+ DEFAULT_BASE_URLS: Dict[WaldiezModelAPIType, str] = {
13
+ "google": "https://generativelanguage.googleapis.com/v1beta",
14
+ "anthropic": "https://api.anthropic.com/v1",
15
+ "mistral": "https://api.mistral.ai/v1",
16
+ "groq": "https://api.groq.com/openai/v1",
17
+ "together": "https://api.together.xyz/v1",
18
+ "nim": "https://integrate.api.nvidia.com/v1",
19
+ }
11
20
 
12
21
 
13
22
  class WaldiezModel(WaldiezBase):
@@ -166,4 +175,30 @@ class WaldiezModel(WaldiezBase):
166
175
  value = getattr(self, attr)
167
176
  if value:
168
177
  _llm_config[attr] = value
169
- return _llm_config
178
+ return set_default_base_url(_llm_config, self.data.api_type)
179
+
180
+
181
+ def set_default_base_url(
182
+ llm_config: Dict[str, Any], api_type: WaldiezModelAPIType
183
+ ) -> Dict[str, Any]:
184
+ """Set the default base url if not provided.
185
+
186
+ Parameters
187
+ ----------
188
+ llm_config : Dict[str, Any]
189
+ The llm config dictionary.
190
+ api_type : str
191
+ The api type.
192
+
193
+ Returns
194
+ -------
195
+ Dict[str, Any]
196
+ The llm config dictionary with the default base url set.
197
+ """
198
+ if api_type in ("openai", "other", "azure"):
199
+ return llm_config
200
+ if "base_url" not in llm_config or not llm_config["base_url"]:
201
+ dict_copy = llm_config.copy()
202
+ dict_copy["base_url"] = DEFAULT_BASE_URLS.get(api_type, "")
203
+ return dict_copy
204
+ return llm_config
waldiez/runner.py CHANGED
@@ -18,6 +18,7 @@ import site
18
18
  import subprocess # nosemgrep # nosec
19
19
  import sys
20
20
  import tempfile
21
+ import warnings
21
22
  from contextlib import contextmanager
22
23
  from pathlib import Path
23
24
  from types import TracebackType
@@ -28,6 +29,7 @@ from typing import (
28
29
  Iterator,
29
30
  List,
30
31
  Optional,
32
+ Tuple,
31
33
  Type,
32
34
  Union,
33
35
  )
@@ -349,6 +351,7 @@ def refresh_environment() -> None:
349
351
  importlib.reload(autogen)
350
352
  # restore the default IOStream
351
353
  IOStream.set_global_default(default_io_stream)
354
+ warnings.filterwarnings("ignore", "flaml.automl is not available")
352
355
 
353
356
 
354
357
  def get_printer() -> Callable[..., None]:
@@ -361,4 +364,57 @@ def get_printer() -> Callable[..., None]:
361
364
  """
362
365
  from autogen.io import IOStream
363
366
 
364
- return IOStream.get_default().print
367
+ printer = IOStream.get_default().print
368
+
369
+ def safe_printer(*args: object, **kwargs: object) -> None:
370
+ try:
371
+ printer(*args, **kwargs)
372
+ except UnicodeEncodeError:
373
+ # pylint: disable=too-many-try-statements
374
+ try:
375
+ msg, flush = get_what_to_print(*args, **kwargs)
376
+ printer(msg, end="", flush=flush)
377
+ except UnicodeEncodeError:
378
+ sys.stdout = io.TextIOWrapper(
379
+ sys.stdout.buffer, encoding="utf-8"
380
+ )
381
+ sys.stderr = io.TextIOWrapper(
382
+ sys.stderr.buffer, encoding="utf-8"
383
+ )
384
+ try:
385
+ printer(*args, **kwargs)
386
+ except UnicodeEncodeError:
387
+ sys.stderr.write(
388
+ "Could not print the message due to encoding issues.\n"
389
+ )
390
+
391
+ return safe_printer
392
+
393
+
394
+ def get_what_to_print(*args: object, **kwargs: object) -> Tuple[str, bool]:
395
+ """Get what to print.
396
+
397
+ Parameters
398
+ ----------
399
+ args : object
400
+ The arguments.
401
+ kwargs : object
402
+ The keyword arguments.
403
+
404
+ Returns
405
+ -------
406
+ Tuple[str, bool]
407
+ The message and whether to flush.
408
+ """
409
+ sep = kwargs.get("sep", " ")
410
+ if not isinstance(sep, str):
411
+ sep = " "
412
+ end = kwargs.get("end", "\n")
413
+ if not isinstance(end, str):
414
+ end = "\n"
415
+ flush = kwargs.get("flush", False)
416
+ if not isinstance(flush, bool):
417
+ flush = False
418
+ msg = sep.join(str(arg) for arg in args) + end
419
+ utf8_msg = msg.encode("utf-8", errors="replace").decode("utf-8")
420
+ return utf8_msg, flush
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: waldiez
3
- Version: 0.1.19
3
+ Version: 0.1.20
4
4
  Summary: waldiez
5
5
  Project-URL: homepage, https://waldiez.github.io/waldiez/
6
6
  Project-URL: repository, https://github.com/waldiez/waldiez.git
@@ -1,11 +1,11 @@
1
- waldiez/__init__.py,sha256=9BLMLUURndkGEwnSNF1RXg1XKm4WTYM3cUeuYo-M0qY,1936
1
+ waldiez/__init__.py,sha256=EhgIJb-VHvb74qIwO2BDME3CSvi4VEsn8LHeCa1SmEU,2020
2
2
  waldiez/__main__.py,sha256=mUQWu4CF03Jbbscvcfb_9EFTnIMliJJJmAuWf0sRRZU,110
3
- waldiez/_version.py,sha256=EX_WkICFRi_lmrwAjPX_8gLn_pS_uIsuK3aso-wK5Hk,63
3
+ waldiez/_version.py,sha256=O-rY-SU1lOwACK5jnGmgJiS5lr3jJ-QamFbqNmBmLzM,63
4
4
  waldiez/cli.py,sha256=19LFqep8urzcLm6TzVSyJEOKI2Q8XXZbuuFsgV0k9LQ,6334
5
5
  waldiez/conflict_checker.py,sha256=E-w0TfTivDAVpNvjd_NSBeaaFsWtWAyxKoSz0-g6x2U,880
6
6
  waldiez/exporter.py,sha256=iKe-l_Me8NRWsXHIdBcrOrnLT9XIyp4iYi4HLuuj2jA,9342
7
7
  waldiez/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- waldiez/runner.py,sha256=10GoT27cxEJdrapmQ4ny9aN7ZcnmsNHApzwIft5ZxP0,11220
8
+ waldiez/runner.py,sha256=rkRRFMLI2bM0LcZGG78qxGS2p67V2AvN0CsLMVA0Igo,12947
9
9
  waldiez/exporting/__init__.py,sha256=GMY7qTRpNmc7tpaCFNGLT5wX9eu26NvoNPuYX8MzP50,344
10
10
  waldiez/exporting/agents/__init__.py,sha256=v5KA112W_EFYwXE2TSBKYyO8rRKUOUAOpFS5CMSnfRs,110
11
11
  waldiez/exporting/agents/agent.py,sha256=d2ut2B90-aG4uBRhPWS7B4MKIvSJqQva6DjlXiqleVQ,7513
@@ -78,14 +78,14 @@ waldiez/models/common/method_utils.py,sha256=K7dNyvqHwvwuULLgn1_uK72Bfnm9d0CYHP3
78
78
  waldiez/models/flow/__init__.py,sha256=oy_G58xDkZk_LZEvqmr-0MJrpYy1JRf-U-F5-bI1944,162
79
79
  waldiez/models/flow/flow.py,sha256=1r0g_vBMd2PKcRC8P1ylWOUW3zwb529oOglf91SkILI,9663
80
80
  waldiez/models/flow/flow_data.py,sha256=m-RYaqlWjVpjyUzX9iAtXn1GOH0pFGKd2QD3e_e7yrk,2694
81
- waldiez/models/model/__init__.py,sha256=32Xox2Qw1jsf7ZCcoi0vMgZ5yxulLmtBrRRxq3FBAks,246
82
- waldiez/models/model/model.py,sha256=aG-9YAyLDYPqF-GWRTfuI7hP1Z7tfWWfj7Dhy1Y2GSc,4997
81
+ waldiez/models/model/__init__.py,sha256=nT9jdKqeV4LPkqWi84Z7hCYZ1257Tj8YhUWbxhFlQl0,290
82
+ waldiez/models/model/model.py,sha256=9A-pIufm9Sn4X9syphxtCOFfZ3BNo8ft07uxNXSRRiI,6130
83
83
  waldiez/models/model/model_data.py,sha256=VLPb60rJeZEgVZCjjkQGiwTrKz7OddVLrXCrEuteMcc,3679
84
84
  waldiez/models/skill/__init__.py,sha256=rU88bajKOGMYoHFcE8MP0jW9H0MswbQmvz5wxS35BYE,169
85
85
  waldiez/models/skill/skill.py,sha256=fhsAI413an2_d4DBIkf7dzEuWk6rGs2t4sl97a4dj20,3473
86
86
  waldiez/models/skill/skill_data.py,sha256=RTWn8Od6w7g-nRIpsS29sqZ8sPm5dCPiK7-qXmU-KD4,815
87
- waldiez-0.1.19.dist-info/METADATA,sha256=w6B5mTtRqZ80Y42gnIU1MbjKtCOWK94WdXKTbhgKpw0,8161
88
- waldiez-0.1.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
89
- waldiez-0.1.19.dist-info/entry_points.txt,sha256=9MQ8Y1rD19CU7UwjNPwoyTRpQsPs2QimjrtwTD0bD6k,44
90
- waldiez-0.1.19.dist-info/licenses/LICENSE,sha256=VQEHM6WMQLRu1qaGl3GWsoOknDwro-69eGo4NLIJPIM,1064
91
- waldiez-0.1.19.dist-info/RECORD,,
87
+ waldiez-0.1.20.dist-info/METADATA,sha256=xTKC0uq5CGHR5EtIAx7vkKitjdeHmaVP6TxgrsUClCA,8161
88
+ waldiez-0.1.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
89
+ waldiez-0.1.20.dist-info/entry_points.txt,sha256=9MQ8Y1rD19CU7UwjNPwoyTRpQsPs2QimjrtwTD0bD6k,44
90
+ waldiez-0.1.20.dist-info/licenses/LICENSE,sha256=VQEHM6WMQLRu1qaGl3GWsoOknDwro-69eGo4NLIJPIM,1064
91
+ waldiez-0.1.20.dist-info/RECORD,,