mirascope 1.16.9__py3-none-any.whl → 1.17.0__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.
Files changed (29) hide show
  1. mirascope/__init__.py +20 -1
  2. mirascope/core/anthropic/_utils/_convert_message_params.py +13 -0
  3. mirascope/core/azure/_utils/_convert_message_params.py +10 -0
  4. mirascope/core/azure/_utils/_message_param_converter.py +46 -12
  5. mirascope/core/base/__init__.py +4 -0
  6. mirascope/core/base/_utils/_convert_messages_to_message_params.py +36 -3
  7. mirascope/core/base/_utils/_parse_content_template.py +35 -9
  8. mirascope/core/base/message_param.py +30 -2
  9. mirascope/core/base/messages.py +10 -0
  10. mirascope/core/bedrock/_utils/_convert_message_params.py +18 -1
  11. mirascope/core/gemini/_utils/_convert_message_params.py +48 -5
  12. mirascope/core/gemini/_utils/_message_param_converter.py +51 -5
  13. mirascope/core/gemini/_utils/_setup_call.py +12 -2
  14. mirascope/core/groq/_utils/_convert_message_params.py +9 -0
  15. mirascope/core/groq/_utils/_message_param_converter.py +9 -2
  16. mirascope/core/mistral/_utils/_convert_message_params.py +7 -0
  17. mirascope/core/mistral/_utils/_message_param_converter.py +41 -35
  18. mirascope/core/openai/_utils/_convert_message_params.py +38 -1
  19. mirascope/core/openai/_utils/_message_param_converter.py +28 -4
  20. mirascope/core/vertex/_utils/_convert_message_params.py +56 -6
  21. mirascope/core/vertex/_utils/_message_param_converter.py +13 -5
  22. mirascope/core/vertex/_utils/_setup_call.py +10 -1
  23. mirascope/llm/call_response.py +5 -1
  24. mirascope/retries/__init__.py +5 -0
  25. mirascope/retries/fallback.py +128 -0
  26. {mirascope-1.16.9.dist-info → mirascope-1.17.0.dist-info}/METADATA +1 -1
  27. {mirascope-1.16.9.dist-info → mirascope-1.17.0.dist-info}/RECORD +29 -28
  28. {mirascope-1.16.9.dist-info → mirascope-1.17.0.dist-info}/WHEEL +0 -0
  29. {mirascope-1.16.9.dist-info → mirascope-1.17.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,128 @@
1
+ """The `fallback` module provides a fallback retry strategy."""
2
+
3
+ import inspect
4
+ from collections.abc import Callable, Coroutine
5
+ from typing import Any, ParamSpec, Protocol, TypeVar, overload
6
+
7
+ from typing_extensions import NotRequired, Required, TypedDict
8
+
9
+ from .. import llm
10
+ from ..core.base import CommonCallParams
11
+ from ..llm._protocols import Provider
12
+
13
+ _P = ParamSpec("_P")
14
+ _R = TypeVar("_R")
15
+
16
+
17
+ class FallbackDecorator(Protocol):
18
+ @overload
19
+ def __call__(
20
+ self, fn: Callable[_P, Coroutine[_R, Any, Any]]
21
+ ) -> Callable[_P, Coroutine[_R, Any, Any]]: ...
22
+
23
+ @overload
24
+ def __call__(self, fn: Callable[_P, _R]) -> Callable[_P, _R]: ...
25
+
26
+ def __call__(
27
+ self,
28
+ fn: Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]],
29
+ ) -> Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]]: ...
30
+
31
+
32
+ class Fallback(TypedDict):
33
+ """The override arguments to use for this fallback attempt."""
34
+
35
+ catch: Required[type[Exception] | tuple[type[Exception]]]
36
+ provider: Required[Provider]
37
+ model: Required[str]
38
+ call_params: NotRequired[CommonCallParams]
39
+ client: NotRequired[Any]
40
+
41
+
42
+ class FallbackError(Exception):
43
+ """An error raised when all fallbacks fail."""
44
+
45
+
46
+ def fallback(
47
+ catch: type[Exception] | tuple[type[Exception]],
48
+ fallbacks: list[Fallback],
49
+ ) -> FallbackDecorator:
50
+ """A decorator that retries the function call with a fallback strategy.
51
+
52
+ This must use the provider-agnostic `llm.call` decorator.
53
+
54
+ Args:
55
+ catch: The exception(s) to catch for the original call.
56
+ backups: The list of backup providers to try in order. Each backup provider
57
+ is a tuple of the provider name, the model name, and the call params.
58
+ The call params may be `None` if no change is wanted.
59
+
60
+ Returns:
61
+ The decorated function.
62
+
63
+ Raises:
64
+ FallbackError: If all fallbacks fail.
65
+ """
66
+
67
+ @overload
68
+ def decorator(
69
+ fn: Callable[_P, Coroutine[_R, Any, Any]],
70
+ ) -> Callable[_P, Coroutine[_R, Any, Any]]: ...
71
+
72
+ @overload
73
+ def decorator(fn: Callable[_P, _R]) -> Callable[_P, _R]: ...
74
+
75
+ def decorator(
76
+ fn: Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]],
77
+ ) -> Callable[_P, _R] | Callable[_P, Coroutine[_R, Any, Any]]:
78
+ # TODO: figure out why llm call fn is not considered as coroutine at runtime
79
+ if inspect.iscoroutinefunction(fn._original_fn): # pyright: ignore [reportFunctionMemberAccess]
80
+
81
+ async def inner_async(*args: _P.args, **kwargs: _P.kwargs) -> _R:
82
+ caught: list[Exception] = []
83
+ try:
84
+ return await fn(*args, **kwargs) # pyright: ignore [reportReturnType,reportGeneralTypeIssues]
85
+ except catch as e:
86
+ caught.append(e)
87
+ for backup in fallbacks:
88
+ try:
89
+ response = await llm.override(
90
+ fn,
91
+ provider=backup["provider"],
92
+ model=backup["model"],
93
+ call_params=backup.get("call_params", None),
94
+ client=backup.get("client", None),
95
+ )(*args, **kwargs) # pyright: ignore [reportGeneralTypeIssues]
96
+ response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
97
+ return response # pyright: ignore [reportReturnType]
98
+ except backup["catch"] as be:
99
+ caught.append(be)
100
+ raise FallbackError(f"All fallbacks failed:\n{caught}")
101
+
102
+ return inner_async
103
+ else:
104
+
105
+ def inner(*args: _P.args, **kwargs: _P.kwargs) -> _R:
106
+ caught: list[Exception] = []
107
+ try:
108
+ return fn(*args, **kwargs) # pyright: ignore [reportReturnType]
109
+ except catch as e:
110
+ caught.append(e)
111
+ for backup in fallbacks:
112
+ try:
113
+ response = llm.override(
114
+ fn,
115
+ provider=backup["provider"],
116
+ model=backup["model"],
117
+ call_params=backup.get("call_params", None),
118
+ client=backup.get("client", None),
119
+ )(*args, **kwargs)
120
+ response._caught = caught # pyright: ignore [reportAttributeAccessIssue]
121
+ return response # pyright: ignore [reportReturnType]
122
+ except backup["catch"] as be:
123
+ caught.append(be)
124
+ raise FallbackError(f"All fallbacks failed:\n{caught}")
125
+
126
+ return inner
127
+
128
+ return decorator
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mirascope
3
- Version: 1.16.9
3
+ Version: 1.17.0
4
4
  Summary: LLM abstractions that aren't obstructions
5
5
  Project-URL: Homepage, https://mirascope.com
6
6
  Project-URL: Documentation, https://mirascope.com/WELCOME
@@ -1,4 +1,4 @@
1
- mirascope/__init__.py,sha256=mWqDRiE9CFgK-GtVtSQn5wpV34iAVPLIJtQs5B8vJeE,403
1
+ mirascope/__init__.py,sha256=GmXpgePwtuO1kM9PY_c-08HMqiZSiM4gym8-yltey5o,663
2
2
  mirascope/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  mirascope/beta/__init__.py,sha256=YsIIE5w3nKj0Ywcs_Y5tSE6WlHKR-nQwwbhNF1R8UW8,43
4
4
  mirascope/beta/openai/__init__.py,sha256=_Ls_eRVz3gJ0Ufycr5rLur4r9h_m5pLH5D0-OWLLJ_0,257
@@ -57,7 +57,7 @@ mirascope/core/anthropic/_utils/__init__.py,sha256=xHjaWpLBcUOW_tuBrOBQ2MewFr5Kg
57
57
  mirascope/core/anthropic/_utils/_calculate_cost.py,sha256=dHM8t__tMmDdkzaR5PVUInoXh4r2HqDoM0q8wUEmd3U,3762
58
58
  mirascope/core/anthropic/_utils/_convert_common_call_params.py,sha256=ILd7AH_atmPUPj7I74EsmxG3rmWC7b5tgjnlR24jKUs,765
59
59
  mirascope/core/anthropic/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=UqqiDEaw20_nDbQUvRJC-ZneCd35f_2GEUpiUNMibr0,704
60
- mirascope/core/anthropic/_utils/_convert_message_params.py,sha256=G2VZ_xZEs4HE3KFMgTeEpd2BOK8CNz8ac_KofifN8ws,3843
60
+ mirascope/core/anthropic/_utils/_convert_message_params.py,sha256=UVsrvgpZIRnzZzEE-HW3gfZBR7Y4Gvq1RDAWusc8wuM,4466
61
61
  mirascope/core/anthropic/_utils/_get_json_output.py,sha256=vkHvhc96RLrGREYVCKr14Umq80EUa7pCtlcImjXB5gA,1157
62
62
  mirascope/core/anthropic/_utils/_handle_stream.py,sha256=6Ll2FQt1KWrz5jqgeP1NikHEjlrSbfPUQCH4eoX4eVA,4010
63
63
  mirascope/core/anthropic/_utils/_message_param_converter.py,sha256=CIeOA0SXtuDnhpqBlt5_nkg14ASzBRk1-1JpHY4QDq0,6546
@@ -76,13 +76,13 @@ mirascope/core/azure/_utils/__init__.py,sha256=WrcNkwnIi8sioHEn5fzQ5UTN4thg21VPL
76
76
  mirascope/core/azure/_utils/_calculate_cost.py,sha256=ga1h8wZcr4JJuwWnvJNarpmwvITZjbq9YQv3_ecvnrw,269
77
77
  mirascope/core/azure/_utils/_convert_common_call_params.py,sha256=mDmrDIEOn2nm4mTFQvv8ErM0xDvjtupvIL9beycPx4I,790
78
78
  mirascope/core/azure/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=Tn9tf--eJ1__iapf-D67UYwHFOBoEgTIJSVn8nqos3Q,823
79
- mirascope/core/azure/_utils/_convert_message_params.py,sha256=EmzO8BYyU41V3CJy5qmaja6f40PkEGBD3HrHrVN8Chk,4664
79
+ mirascope/core/azure/_utils/_convert_message_params.py,sha256=qUs88dNeUw57XpHW7ihk3HZ96phfPssPS-A_49eypw0,5085
80
80
  mirascope/core/azure/_utils/_get_credential.py,sha256=hEWoKtB27PLZtC35qvPx36CPvQ9eHzr4tDFcq-13rqI,970
81
81
  mirascope/core/azure/_utils/_get_json_output.py,sha256=Qec7WJY5is1Q63Vp9uUNNfkRwgxhdoLMCI7AF_e2t90,1017
82
82
  mirascope/core/azure/_utils/_handle_stream.py,sha256=M_BGnjBGWTPefNyIMuJSHiDxIvqmENmqfVlDx_qzL1c,4638
83
- mirascope/core/azure/_utils/_message_param_converter.py,sha256=iERtNnOpCPA9pkLY9upyoD0QaG7Oz_4U-AI_jg3-ntM,3419
83
+ mirascope/core/azure/_utils/_message_param_converter.py,sha256=JAUeHObtd_V225YyZqEruuih3HRozq43pqjYJCbJj8A,4443
84
84
  mirascope/core/azure/_utils/_setup_call.py,sha256=07fVPaM56CC-nNgf9hjIAxiNTGC9XD3bvADEEOCKJ9E,5936
85
- mirascope/core/base/__init__.py,sha256=LgtzMll6DhuIbzeJ1JpH8LPYCgGOwiHm-3lfkYacu74,1828
85
+ mirascope/core/base/__init__.py,sha256=iq8HMwrTt7MK-zgHg2JgBP4F7ruBTbDituFR2P4Jg2k,1904
86
86
  mirascope/core/base/_call_factory.py,sha256=YdFHAa9WtGfYeqVcM2xaDNh5gMg584rOe26_E51-1to,9663
87
87
  mirascope/core/base/_create.py,sha256=1UNRA6pwMguaiLyLiQkPzTk12ASaXT_hh7jlNw4UFX4,10016
88
88
  mirascope/core/base/_extract.py,sha256=QTqkArgmgR17OB5jTP86Wo-TW-BcouOcK9gdMy-EcNw,6799
@@ -95,8 +95,8 @@ mirascope/core/base/call_response_chunk.py,sha256=pvy6K2bM_wDiurfZ7M98SxEY--X6Yr
95
95
  mirascope/core/base/dynamic_config.py,sha256=V5IG2X5gPFpfQ47uO8JU1zoC2eNdRftsRZEmwhRPaYI,2859
96
96
  mirascope/core/base/from_call_args.py,sha256=8ijMX7PN6a4o6uLdmXJlSRnE-rEVJU5NLxUmNrS8dvU,909
97
97
  mirascope/core/base/merge_decorators.py,sha256=9pQYXuTxLh4mGKVIsnR5pYBkYCaQjg85TTelC6XDldE,1988
98
- mirascope/core/base/message_param.py,sha256=OPMctz-uWya5AdzKZT-TbEpggY7Tuw5dxxeFz38-8hE,2882
99
- mirascope/core/base/messages.py,sha256=C9iROJVivxmfDhmPWaWd4_drpFQV8YWsxiDtXekA5f8,2278
98
+ mirascope/core/base/message_param.py,sha256=DjyZTFbWpuBsrSJO2G2joT3klBLN6hoJNd5nA3GWjmU,3562
99
+ mirascope/core/base/messages.py,sha256=jD8SGjP3VQJsRfDo71ifHfwTMH4bHtYyjXQKyWRy_OY,2530
100
100
  mirascope/core/base/metadata.py,sha256=V9hgMkj6m3QGsu4H5LhCxBZBYQLoygJv0CeLIf1DF0M,382
101
101
  mirascope/core/base/prompt.py,sha256=M5PK9JoEsWTQ-kzNCpZKdDGzWAkb8MS267xEFCPfpAU,15414
102
102
  mirascope/core/base/response_model_config_dict.py,sha256=OUdx_YkV2vBzUSSB2OYLAAHf22T7jvF5tRuc6c-vhNQ,254
@@ -112,7 +112,7 @@ mirascope/core/base/_utils/_base_type.py,sha256=x8ZabSxZZNAy6ER-VQEkB6mNyjWcGSCB
112
112
  mirascope/core/base/_utils/_convert_base_model_to_base_tool.py,sha256=JoHf1CbRwK91dABm5xLhdIPmeMSFS_nj-qW9OQu_YJ0,1750
113
113
  mirascope/core/base/_utils/_convert_base_type_to_base_tool.py,sha256=fAOfqqoT0_vk1i-h-lCdWQYYeTjZ3fTiCgwGmgtHk9o,734
114
114
  mirascope/core/base/_utils/_convert_function_to_base_tool.py,sha256=squjro0oxwXOiavcf4bSHjHS94uSeCBGpykacoFpKx8,5729
115
- mirascope/core/base/_utils/_convert_messages_to_message_params.py,sha256=Fony5qJRaLUJ3FAqI-8YRTz9vRzELKV6uEaSue8c-gg,3950
115
+ mirascope/core/base/_utils/_convert_messages_to_message_params.py,sha256=symOUsXkecoBKV8kB6bkubFW6pi34grUlTkJfnfpaYo,4360
116
116
  mirascope/core/base/_utils/_convert_provider_finish_reason_to_finish_reason.py,sha256=Mki5mYbYX8vUW-oosC4PaRNUHW_T5xAQWti3_1ndtTk,611
117
117
  mirascope/core/base/_utils/_default_tool_docstring.py,sha256=JLyryjGDaHMU-P7gUpnjkPyELCQsQgi8AP4Dp_yXPOM,277
118
118
  mirascope/core/base/_utils/_extract_tool_return.py,sha256=ZDBZJ4cacFd8nijSWZEhib7B58ZnSFD_rK1FiGNTYU0,1553
@@ -135,7 +135,7 @@ mirascope/core/base/_utils/_get_unsupported_tool_config_keys.py,sha256=fG34xCSnQ
135
135
  mirascope/core/base/_utils/_is_prompt_template.py,sha256=WfUYtvmlw-Yx5eYuechyQKo4DGVWRXNePoN3Bw70xvo,621
136
136
  mirascope/core/base/_utils/_json_mode_content.py,sha256=EMWnlmyEQV2VgX7D5lbovw1i3JKQKtpXt3TI6wP_vI4,675
137
137
  mirascope/core/base/_utils/_messages_decorator.py,sha256=dnvbhmwvzGcew8LU0Q_HlDrsIXai-4LuMeZ3Z2-z6wA,3873
138
- mirascope/core/base/_utils/_parse_content_template.py,sha256=uEI3c_UUQRCGsq5c_djBitmS-DNxiDKHmDLih2WwObs,9991
138
+ mirascope/core/base/_utils/_parse_content_template.py,sha256=U8VGe7RsOWfqB3P7aI1Dmm3KwiSon0wtnxlSmvcvCEA,10652
139
139
  mirascope/core/base/_utils/_parse_prompt_messages.py,sha256=lGDYxvwea--gnE3LChNF9b1uxKrAKlYkVb9Ep7fM_zo,2523
140
140
  mirascope/core/base/_utils/_pil_image_to_bytes.py,sha256=qN8nYwRU1hgX1TjEpLKk5i-GBtxBQjTIp2KlMIdbBe8,387
141
141
  mirascope/core/base/_utils/_protocols.py,sha256=GiONFDxXeko0TST012OvTY3hFjpxV9QoAhkJ3hg38Mo,28082
@@ -156,7 +156,7 @@ mirascope/core/bedrock/_utils/__init__.py,sha256=E3aGPg8HteKUPfTmkZhoukrnZUs2WA9
156
156
  mirascope/core/bedrock/_utils/_calculate_cost.py,sha256=Mcfh1ktMapQWb6dg5VJrO8Lfp3M-S3SllvaKj6IqnDg,558
157
157
  mirascope/core/bedrock/_utils/_convert_common_call_params.py,sha256=i17yrW-_7qdIsf-zS3OD5HIO0uykCdfanPsjV3WxTEY,1091
158
158
  mirascope/core/bedrock/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=A67-Q3zgpXh9q0iub5IfJw9VRgHvK-pczt1Btot_jks,792
159
- mirascope/core/bedrock/_utils/_convert_message_params.py,sha256=B_oysurPBiIU43zbVZgbTbmFwSajfBW11lbmx68nm14,3976
159
+ mirascope/core/bedrock/_utils/_convert_message_params.py,sha256=ZPFj34ed0-4bmMldj4tR6EGb9RsuHkXzSwjmwEeN-KU,4680
160
160
  mirascope/core/bedrock/_utils/_get_json_output.py,sha256=hW-IBBQ5YW85VljjFJHDDtu66zsaF2ydTbFxgCX_j6A,1159
161
161
  mirascope/core/bedrock/_utils/_handle_stream.py,sha256=s8KNMNDKzvSIkFROtaZgbEJry78X_qCzTvGmHcL7UW0,3776
162
162
  mirascope/core/bedrock/_utils/_message_param_converter.py,sha256=T45kksn78idbqD9NZ3Omx1nS_IoYmTfA5y-bAHlX2fM,6846
@@ -194,11 +194,11 @@ mirascope/core/gemini/_utils/__init__.py,sha256=rRJHluu810Jel3Bu3ok_8uyfPWnXYC0r
194
194
  mirascope/core/gemini/_utils/_calculate_cost.py,sha256=vF1XWvNnp2cTv-JnM3x_htIJ4WMUthTqpH0Sb2lGmso,2254
195
195
  mirascope/core/gemini/_utils/_convert_common_call_params.py,sha256=1ZTpwqain90Va70xC9r9-_1YEIyvyZdjMiejN7E6yY4,1072
196
196
  mirascope/core/gemini/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=jkZM8hpkZjR1izwSyKTVwkkN_nfLROwx0V_yQsVDiB8,761
197
- mirascope/core/gemini/_utils/_convert_message_params.py,sha256=a5WaerYG2INBtxGg3qkLsAwVtJVAvK79O_83zJmHH3A,4621
197
+ mirascope/core/gemini/_utils/_convert_message_params.py,sha256=ddB5PW0ri9mRBOSsP5XgOpkozlsD1zEpKOK0JkgXyoQ,6853
198
198
  mirascope/core/gemini/_utils/_get_json_output.py,sha256=C2aeeEmcC-mBnbRL8aq3yohdCZJWMJc78E2GYqefK9k,1240
199
199
  mirascope/core/gemini/_utils/_handle_stream.py,sha256=1JoRIjwuVehVIjkvT_U2r9TMvMZB96ldp1n1AGon-tw,1153
200
- mirascope/core/gemini/_utils/_message_param_converter.py,sha256=LgI4NJxoa_f2_eCjbe5OegkB43ififDO61jBE2l4T78,6862
201
- mirascope/core/gemini/_utils/_setup_call.py,sha256=jGem6lhpdEU6tLfqYDAs9z1-Uc9_2lxDj4hieZC-CS0,4546
200
+ mirascope/core/gemini/_utils/_message_param_converter.py,sha256=4r_H1xtJErtLsrui8sG8YTIEjOiqQq_QA6fsMStwG8I,8359
201
+ mirascope/core/gemini/_utils/_setup_call.py,sha256=QaboJO2k1D2ingfHuPSpb-YjMGRIcTIFN5Qe54eMCXM,4992
202
202
  mirascope/core/groq/__init__.py,sha256=wo-_txqiLC3iswnXmPX4C6IgsU-_wv1DbBlNDY4rEvo,798
203
203
  mirascope/core/groq/_call.py,sha256=gR8VN5IaYWIFXc0csn995q59FM0nBs-xVFjkVycPjMM,2223
204
204
  mirascope/core/groq/_call_kwargs.py,sha256=trT8AdQ-jdQPYKlGngIMRwwQuvKuvAbvI1yyozftOuI,425
@@ -212,10 +212,10 @@ mirascope/core/groq/tool.py,sha256=mCUkDHqcZX3Kb44p6gDF9psswWjEBjegCHHbIgoziVc,2
212
212
  mirascope/core/groq/_utils/__init__.py,sha256=SNhwvsAOc-vVHQrbZFmf1dGlGBFl42hqJrTW7Gjlrzw,452
213
213
  mirascope/core/groq/_utils/_calculate_cost.py,sha256=430-reYd55_3clLawLr_M3cCAQIsD9PxbKnsuy4WeIQ,2383
214
214
  mirascope/core/groq/_utils/_convert_common_call_params.py,sha256=vRvabHCsB5h-Bv-dpMpNAHrQ6rrbAyc52V09x-zXTx0,725
215
- mirascope/core/groq/_utils/_convert_message_params.py,sha256=K5c1V_kVV3aXo6yln_8CXhv5mcw2zGxgn6OEOh_VDCo,4337
215
+ mirascope/core/groq/_utils/_convert_message_params.py,sha256=23fMq7-hnDrYyNQ8AJowwygPxvX7cf4efsXAFMBttwg,4676
216
216
  mirascope/core/groq/_utils/_get_json_output.py,sha256=vMbXmHC6OIwkg0TjyCTTUtIww3lfbApNy6yWgoAijGA,1012
217
217
  mirascope/core/groq/_utils/_handle_stream.py,sha256=CsjFZYip-Xxo-ZP6dSdNrIW9xSl-feTnYiYv-r39U0s,4605
218
- mirascope/core/groq/_utils/_message_param_converter.py,sha256=wcUzgrtOOG8DAPpsbYh7eg_wvJ8wmBAFnvyi6rm4q1w,3265
218
+ mirascope/core/groq/_utils/_message_param_converter.py,sha256=znFVMmYHAMceHZ6ya9QEIZKVjDtYTj5ZU-TP29x0Uho,3587
219
219
  mirascope/core/groq/_utils/_setup_call.py,sha256=fsXbP1NpzpJ3rq3oMvNEvgN4TJzudYb2zrW7JwKhbBM,4424
220
220
  mirascope/core/litellm/__init__.py,sha256=eBLmGsbY2SNEf3DPLYS-WgpskwaWbBeonpcBc3Zxh94,779
221
221
  mirascope/core/litellm/_call.py,sha256=mSCU9nT0ZQTru6BppGJgtudAWqWFs0a6m5q-VYbM-ow,2391
@@ -242,10 +242,10 @@ mirascope/core/mistral/_utils/__init__.py,sha256=_3PFMvGOXngCCxBce_8ob0IkuMrHW9c
242
242
  mirascope/core/mistral/_utils/_calculate_cost.py,sha256=pnr0fAIBVmq7Y-EswrlaqFu63rcBB21M5OW6cmjrsao,1998
243
243
  mirascope/core/mistral/_utils/_convert_common_call_params.py,sha256=7nDwJ3vtzErHQHKmuNUpiq0yLkBS6mO_6X0JJpHzQbY,663
244
244
  mirascope/core/mistral/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=ZxS1jyEweJYbjOdb543sPKSI17oUhATbs1JsIYVzKkA,720
245
- mirascope/core/mistral/_utils/_convert_message_params.py,sha256=0blDkCNqsWDDEphiipgklxESkYKuCJG0UFtn8RmXI3M,4470
245
+ mirascope/core/mistral/_utils/_convert_message_params.py,sha256=nW18Bh4wQ-Nc00hu86d6hE9nC5wk_76dV7CXahfyQHo,4737
246
246
  mirascope/core/mistral/_utils/_get_json_output.py,sha256=WxZqpaVec8J5hRYemEHjCK-VhQeAyZ2c-ipWMArXM4o,1243
247
247
  mirascope/core/mistral/_utils/_handle_stream.py,sha256=9HowP742tvtXDuq8jO3KGPEnOL92xSP3fMP4SqkjC9E,5083
248
- mirascope/core/mistral/_utils/_message_param_converter.py,sha256=dsy6mEooEp56oABlv2U6IWqJHV8jzhuPLTTrTrsU_nI,6986
248
+ mirascope/core/mistral/_utils/_message_param_converter.py,sha256=CCkL4iTei5Ce5ke0h_QnFOdjxulx4Vmyw3a0wDK_T0E,6889
249
249
  mirascope/core/mistral/_utils/_setup_call.py,sha256=bGXRJK1TqKRsCkzEi2vYwOLR02IIjNUPQGrr2JzIv-U,4801
250
250
  mirascope/core/openai/__init__.py,sha256=1-iKWt3nEk2GjB9UuH2WcAiPajsp9B3J6G-v5Ly7YQ0,882
251
251
  mirascope/core/openai/_call.py,sha256=ExXdY3rjBbil0ija2HlGMRvcOE2zOOj13rgliw8nmFc,2260
@@ -260,10 +260,10 @@ mirascope/core/openai/tool.py,sha256=iJWJQrY3-1Rq5OywzKFO9JUAcglneGD0UtkS3pcA0pg
260
260
  mirascope/core/openai/_utils/__init__.py,sha256=J4ZMAuU4X0PN-nbYj2ikX2EgYRq-T00GbontdmkTcH0,454
261
261
  mirascope/core/openai/_utils/_calculate_cost.py,sha256=jm7TlGdnDlcWIHPlPo1TzJW70WIFo8PjuHurnroUsB4,7587
262
262
  mirascope/core/openai/_utils/_convert_common_call_params.py,sha256=gvxsRdULxiC2137M9l53hUmF0ZkBxFQFurhWBcl_5Cg,739
263
- mirascope/core/openai/_utils/_convert_message_params.py,sha256=MmEqOPncCGSGpqcmkTB2LFNXJ-2GQnq_em3puis1Enc,4632
263
+ mirascope/core/openai/_utils/_convert_message_params.py,sha256=KHn6GWovhHLshwLa3szxc2OB3ymRpebGrjazSqRSrE8,6257
264
264
  mirascope/core/openai/_utils/_get_json_output.py,sha256=Q_5R6NFFDvmLoz9BQiymC5AEyYvxKPH2_XnOQZ8hIkU,1215
265
265
  mirascope/core/openai/_utils/_handle_stream.py,sha256=adsHAcTtGyMMFU9xnUsE4Yd2wrhSNSjcVddkS74mli0,5226
266
- mirascope/core/openai/_utils/_message_param_converter.py,sha256=2CBbNTe-QzJFS5Z1j1391_M1XCGXQaE87WSyvSCu6CU,3224
266
+ mirascope/core/openai/_utils/_message_param_converter.py,sha256=r6zJ54xHMxxJ-2daY8l5FyDIa0HsdXeP0cN1wHNt6-E,4101
267
267
  mirascope/core/openai/_utils/_setup_call.py,sha256=8zxNZrWcZgBxi4kwzeXHsxFoJW0n0MZYSmSAYj3ossk,5500
268
268
  mirascope/core/vertex/__init__.py,sha256=rhvMVCoN29wuryxGSD9JUKKSlLsWeOnw6Dkk2CqYDwk,839
269
269
  mirascope/core/vertex/_call.py,sha256=ebQmWoQLnxScyxhnGKU3MmHkXXzzs_Sw2Yf-d3nZFwU,2323
@@ -278,11 +278,11 @@ mirascope/core/vertex/_utils/__init__.py,sha256=LeQDo5oQqnblIh9AXJzFeMYnEkJkJAcg
278
278
  mirascope/core/vertex/_utils/_calculate_cost.py,sha256=lzRYW47fOkMY7iExe_CfmREnfBEd8HpmoABn6oDK620,2296
279
279
  mirascope/core/vertex/_utils/_convert_common_call_params.py,sha256=v-kKo6vQdlQiQQnA3hRaS7NWCdzheVE0OGbLV4-8XLE,1056
280
280
  mirascope/core/vertex/_utils/_convert_finish_reason_to_common_finish_reasons.py,sha256=jkZM8hpkZjR1izwSyKTVwkkN_nfLROwx0V_yQsVDiB8,761
281
- mirascope/core/vertex/_utils/_convert_message_params.py,sha256=R7FNeRUgFRPnEK6W_RkgEpp97zv3x0jUYawMrhbYd-o,5267
281
+ mirascope/core/vertex/_utils/_convert_message_params.py,sha256=Z67m_xm8ByyDyuRwZ3aBwjADoUfDDEUqIxYWHgRYbuY,7465
282
282
  mirascope/core/vertex/_utils/_get_json_output.py,sha256=NxbdPPde9lyWSaWQYNPFgmFfOLwNBuyLKwXcS6q6GHw,1298
283
283
  mirascope/core/vertex/_utils/_handle_stream.py,sha256=zUhwnkGUdQvfU8AJ3u975HoNR1BfaWH7_VBcmBaNmuU,1139
284
- mirascope/core/vertex/_utils/_message_param_converter.py,sha256=8lPfripx-qgN7-NCD5ps_furZJ2sfxdeTl7O7UT4Zko,5151
285
- mirascope/core/vertex/_utils/_setup_call.py,sha256=Xt2b0Rff2-B8jiIWK_rRVl57Wff_Kbom2ItQJ6fH0gI,4751
284
+ mirascope/core/vertex/_utils/_message_param_converter.py,sha256=wtysOaa9JsodMrAy1xUBWbIIjt9bIMTjBBfb3LpKFOc,5460
285
+ mirascope/core/vertex/_utils/_setup_call.py,sha256=9LXR-8sFumEJvUYm58VQTBMkZMOR45K86-sTkA7xuFY,5110
286
286
  mirascope/integrations/__init__.py,sha256=ieLWknpbkO_gABIVl9790YTTCCRO9ISQ35-1SeOSU0Q,392
287
287
  mirascope/integrations/_middleware_factory.py,sha256=MUd06zhJxwMnoyrPncrMQXL-qwhQsPqt27rf4NOCDnE,17309
288
288
  mirascope/integrations/tenacity.py,sha256=jk64MBncCMbgoQMaXQgjxg9Y9UstRqTt2RCeA86pdCU,326
@@ -299,7 +299,7 @@ mirascope/integrations/otel/_with_otel.py,sha256=tbjd6BEbcSfnsm5CWHBoHwbRNrHt6-t
299
299
  mirascope/llm/__init__.py,sha256=6JWQFeluDzPC4naQY2WneSwsS-LOTeP0NpmoJ2g8zps,94
300
300
  mirascope/llm/_protocols.py,sha256=adcuSqKmi7M-N8Yy6GWFBlE9wIgtdLbnTq8S6IdAt7g,16380
301
301
  mirascope/llm/_response_metaclass.py,sha256=6DLQb5IrqMldyEXHT_pAsr2DlUVc9CmZuZiBXG37WK8,851
302
- mirascope/llm/call_response.py,sha256=_FNqaNPp3HVSUI6oNhJVs8b5ZTNXXyNAL14Ke1ld-M8,4620
302
+ mirascope/llm/call_response.py,sha256=EVndIqQyQeWFZ_XyObUhAKOmcR_jWjL44T5M677cqL0,4715
303
303
  mirascope/llm/call_response_chunk.py,sha256=9Vyi5_hpgill5CB8BwfSj33VR8sirY2ceTRbru0G3Sw,1820
304
304
  mirascope/llm/llm_call.py,sha256=6ErSt8mtT0GQUF92snNewy8TAYgo-gVu7Dd1KC-ob5o,8398
305
305
  mirascope/llm/llm_override.py,sha256=7L222CGbJjQPB-lCoGB29XYHyzCvqEyDtcPV-L4Ao7I,6163
@@ -309,7 +309,8 @@ mirascope/mcp/__init__.py,sha256=mGboroTrBbzuZ_8uBssOhkqiJOJ4mNCvaJvS7mhumhg,155
309
309
  mirascope/mcp/client.py,sha256=ZsjaT6E5i4Cdm3iVp2-JTuDniUlzynWeeJvnBAtuffQ,11123
310
310
  mirascope/mcp/server.py,sha256=7BjZO3DkaiokEOgJOY9fbEX3M6YwAExN6Kw9s-Dp7Sc,11737
311
311
  mirascope/mcp/tools.py,sha256=IKQZCiQHh_YxJM-V90U9Z6xPQTYIfWFDBj8khhHDiw4,2254
312
- mirascope/retries/__init__.py,sha256=mzJoS35zLmaeeGrpDuzrtO6r73WuNivAyoqyYP5TUmc,148
312
+ mirascope/retries/__init__.py,sha256=FN6IGLfWwzBnSyR5Lh-bAbLTFRdFJBs6behI7ZSlPII,249
313
+ mirascope/retries/fallback.py,sha256=xnN7CgQ2SaYMUNeeRoHAeFeola5DhgRd6O-0FRB95yE,4875
313
314
  mirascope/retries/tenacity.py,sha256=stBJPjEpUzP53IBVBFtqY2fUSgmOV1-sIIXZZJ9pvLY,1387
314
315
  mirascope/tools/__init__.py,sha256=yq6wpqwSuELVZ_IqkU7rzqOYm5vpG7Oxwbt3zPFLI0g,959
315
316
  mirascope/tools/base.py,sha256=Bdnf9Te2tnPnvBS-dEeXVPv_jn5-z9FY_MQmBwP1ijU,3429
@@ -331,7 +332,7 @@ mirascope/v0/base/ops_utils.py,sha256=1Qq-VIwgHBaYutiZsS2MUQ4OgPC3APyywI5bTiTAmA
331
332
  mirascope/v0/base/prompts.py,sha256=FM2Yz98cSnDceYogiwPrp4BALf3_F3d4fIOCGAkd-SE,1298
332
333
  mirascope/v0/base/types.py,sha256=ZfatJoX0Yl0e3jhv0D_MhiSVHLYUeJsdN3um3iE10zY,352
333
334
  mirascope/v0/base/utils.py,sha256=XREPENRQTu8gpMhHU8RC8qH_am3FfGUvY-dJ6x8i-mw,681
334
- mirascope-1.16.9.dist-info/METADATA,sha256=9jFiebPALIpG-G6PEXMz60nopXRdMoeZLmXhFpIgO1g,8545
335
- mirascope-1.16.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
336
- mirascope-1.16.9.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
337
- mirascope-1.16.9.dist-info/RECORD,,
335
+ mirascope-1.17.0.dist-info/METADATA,sha256=hJoJbf9qLybEi-zy2fDyPsCHY5jU2bTuDUnszW5DKO4,8545
336
+ mirascope-1.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
337
+ mirascope-1.17.0.dist-info/licenses/LICENSE,sha256=LAs5Q8mdawTsVdONpDGukwsoc4KEUBmmonDEL39b23Y,1072
338
+ mirascope-1.17.0.dist-info/RECORD,,