pydantic-ai-slim 1.0.17__py3-none-any.whl → 1.1.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.
Potentially problematic release.
This version of pydantic-ai-slim might be problematic. Click here for more details.
- pydantic_ai/_parts_manager.py +3 -0
- pydantic_ai/agent/__init__.py +43 -12
- pydantic_ai/durable_exec/prefect/__init__.py +15 -0
- pydantic_ai/durable_exec/prefect/_agent.py +833 -0
- pydantic_ai/durable_exec/prefect/_cache_policies.py +102 -0
- pydantic_ai/durable_exec/prefect/_function_toolset.py +58 -0
- pydantic_ai/durable_exec/prefect/_mcp_server.py +60 -0
- pydantic_ai/durable_exec/prefect/_model.py +152 -0
- pydantic_ai/durable_exec/prefect/_toolset.py +67 -0
- pydantic_ai/durable_exec/prefect/_types.py +44 -0
- pydantic_ai/durable_exec/temporal/__init__.py +2 -0
- pydantic_ai/messages.py +7 -0
- pydantic_ai/models/__init__.py +2 -0
- pydantic_ai/models/google.py +6 -0
- pydantic_ai/models/openai.py +17 -10
- pydantic_ai/providers/__init__.py +4 -0
- pydantic_ai/providers/gateway.py +16 -7
- pydantic_ai/providers/nebius.py +102 -0
- pydantic_ai/toolsets/function.py +19 -12
- {pydantic_ai_slim-1.0.17.dist-info → pydantic_ai_slim-1.1.0.dist-info}/METADATA +5 -3
- {pydantic_ai_slim-1.0.17.dist-info → pydantic_ai_slim-1.1.0.dist-info}/RECORD +24 -15
- {pydantic_ai_slim-1.0.17.dist-info → pydantic_ai_slim-1.1.0.dist-info}/WHEEL +0 -0
- {pydantic_ai_slim-1.0.17.dist-info → pydantic_ai_slim-1.1.0.dist-info}/entry_points.txt +0 -0
- {pydantic_ai_slim-1.0.17.dist-info → pydantic_ai_slim-1.1.0.dist-info}/licenses/LICENSE +0 -0
pydantic_ai/providers/gateway.py
CHANGED
|
@@ -4,7 +4,6 @@ from __future__ import annotations as _annotations
|
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
6
|
from typing import TYPE_CHECKING, Any, Literal, overload
|
|
7
|
-
from urllib.parse import urljoin
|
|
8
7
|
|
|
9
8
|
import httpx
|
|
10
9
|
|
|
@@ -84,22 +83,22 @@ def gateway_provider(
|
|
|
84
83
|
' to use the Pydantic AI Gateway provider.'
|
|
85
84
|
)
|
|
86
85
|
|
|
87
|
-
base_url = base_url or os.getenv('PYDANTIC_AI_GATEWAY_BASE_URL', 'http://localhost:8787')
|
|
86
|
+
base_url = base_url or os.getenv('PYDANTIC_AI_GATEWAY_BASE_URL', 'http://localhost:8787/proxy')
|
|
88
87
|
http_client = http_client or cached_async_http_client(provider=f'gateway-{upstream_provider}')
|
|
89
88
|
http_client.event_hooks = {'request': [_request_hook]}
|
|
90
89
|
|
|
91
90
|
if upstream_provider in ('openai', 'openai-chat'):
|
|
92
91
|
from .openai import OpenAIProvider
|
|
93
92
|
|
|
94
|
-
return OpenAIProvider(api_key=api_key, base_url=
|
|
93
|
+
return OpenAIProvider(api_key=api_key, base_url=_merge_url_path(base_url, 'openai'), http_client=http_client)
|
|
95
94
|
elif upstream_provider == 'openai-responses':
|
|
96
95
|
from .openai import OpenAIProvider
|
|
97
96
|
|
|
98
|
-
return OpenAIProvider(api_key=api_key, base_url=
|
|
97
|
+
return OpenAIProvider(api_key=api_key, base_url=_merge_url_path(base_url, 'openai'), http_client=http_client)
|
|
99
98
|
elif upstream_provider == 'groq':
|
|
100
99
|
from .groq import GroqProvider
|
|
101
100
|
|
|
102
|
-
return GroqProvider(api_key=api_key, base_url=
|
|
101
|
+
return GroqProvider(api_key=api_key, base_url=_merge_url_path(base_url, 'groq'), http_client=http_client)
|
|
103
102
|
elif upstream_provider == 'anthropic':
|
|
104
103
|
from anthropic import AsyncAnthropic
|
|
105
104
|
|
|
@@ -108,7 +107,7 @@ def gateway_provider(
|
|
|
108
107
|
return AnthropicProvider(
|
|
109
108
|
anthropic_client=AsyncAnthropic(
|
|
110
109
|
auth_token=api_key,
|
|
111
|
-
base_url=
|
|
110
|
+
base_url=_merge_url_path(base_url, 'anthropic'),
|
|
112
111
|
http_client=http_client,
|
|
113
112
|
)
|
|
114
113
|
)
|
|
@@ -122,7 +121,7 @@ def gateway_provider(
|
|
|
122
121
|
vertexai=True,
|
|
123
122
|
api_key='unset',
|
|
124
123
|
http_options={
|
|
125
|
-
'base_url':
|
|
124
|
+
'base_url': _merge_url_path(base_url, 'google-vertex'),
|
|
126
125
|
'headers': {'User-Agent': get_user_agent(), 'Authorization': api_key},
|
|
127
126
|
# TODO(Marcelo): Until https://github.com/googleapis/python-genai/issues/1357 is solved.
|
|
128
127
|
'async_client_args': {
|
|
@@ -185,3 +184,13 @@ async def _request_hook(request: httpx.Request) -> httpx.Request:
|
|
|
185
184
|
request.headers.update(headers)
|
|
186
185
|
|
|
187
186
|
return request
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def _merge_url_path(base_url: str, path: str) -> str:
|
|
190
|
+
"""Merge a base URL and a path.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
base_url: The base URL to merge.
|
|
194
|
+
path: The path to merge.
|
|
195
|
+
"""
|
|
196
|
+
return base_url.rstrip('/') + '/' + path.lstrip('/')
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from __future__ import annotations as _annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from typing import overload
|
|
5
|
+
|
|
6
|
+
import httpx
|
|
7
|
+
|
|
8
|
+
from pydantic_ai import ModelProfile
|
|
9
|
+
from pydantic_ai.exceptions import UserError
|
|
10
|
+
from pydantic_ai.models import cached_async_http_client
|
|
11
|
+
from pydantic_ai.profiles.deepseek import deepseek_model_profile
|
|
12
|
+
from pydantic_ai.profiles.google import google_model_profile
|
|
13
|
+
from pydantic_ai.profiles.harmony import harmony_model_profile
|
|
14
|
+
from pydantic_ai.profiles.meta import meta_model_profile
|
|
15
|
+
from pydantic_ai.profiles.mistral import mistral_model_profile
|
|
16
|
+
from pydantic_ai.profiles.moonshotai import moonshotai_model_profile
|
|
17
|
+
from pydantic_ai.profiles.openai import OpenAIJsonSchemaTransformer, OpenAIModelProfile
|
|
18
|
+
from pydantic_ai.profiles.qwen import qwen_model_profile
|
|
19
|
+
from pydantic_ai.providers import Provider
|
|
20
|
+
|
|
21
|
+
try:
|
|
22
|
+
from openai import AsyncOpenAI
|
|
23
|
+
except ImportError as _import_error: # pragma: no cover
|
|
24
|
+
raise ImportError(
|
|
25
|
+
'Please install the `openai` package to use the Nebius provider, '
|
|
26
|
+
'you can use the `openai` optional group — `pip install "pydantic-ai-slim[openai]"`'
|
|
27
|
+
) from _import_error
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class NebiusProvider(Provider[AsyncOpenAI]):
|
|
31
|
+
"""Provider for Nebius AI Studio API."""
|
|
32
|
+
|
|
33
|
+
@property
|
|
34
|
+
def name(self) -> str:
|
|
35
|
+
return 'nebius'
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def base_url(self) -> str:
|
|
39
|
+
return 'https://api.studio.nebius.com/v1'
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def client(self) -> AsyncOpenAI:
|
|
43
|
+
return self._client
|
|
44
|
+
|
|
45
|
+
def model_profile(self, model_name: str) -> ModelProfile | None:
|
|
46
|
+
provider_to_profile = {
|
|
47
|
+
'meta-llama': meta_model_profile,
|
|
48
|
+
'deepseek-ai': deepseek_model_profile,
|
|
49
|
+
'qwen': qwen_model_profile,
|
|
50
|
+
'google': google_model_profile,
|
|
51
|
+
'openai': harmony_model_profile, # used for gpt-oss models on Nebius
|
|
52
|
+
'mistralai': mistral_model_profile,
|
|
53
|
+
'moonshotai': moonshotai_model_profile,
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
profile = None
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
model_name = model_name.lower()
|
|
60
|
+
provider, model_name = model_name.split('/', 1)
|
|
61
|
+
except ValueError:
|
|
62
|
+
raise UserError(f"Model name must be in 'provider/model' format, got: {model_name!r}")
|
|
63
|
+
if provider in provider_to_profile:
|
|
64
|
+
profile = provider_to_profile[provider](model_name)
|
|
65
|
+
|
|
66
|
+
# As NebiusProvider is always used with OpenAIChatModel, which used to unconditionally use OpenAIJsonSchemaTransformer,
|
|
67
|
+
# we need to maintain that behavior unless json_schema_transformer is set explicitly
|
|
68
|
+
return OpenAIModelProfile(json_schema_transformer=OpenAIJsonSchemaTransformer).update(profile)
|
|
69
|
+
|
|
70
|
+
@overload
|
|
71
|
+
def __init__(self) -> None: ...
|
|
72
|
+
|
|
73
|
+
@overload
|
|
74
|
+
def __init__(self, *, api_key: str) -> None: ...
|
|
75
|
+
|
|
76
|
+
@overload
|
|
77
|
+
def __init__(self, *, api_key: str, http_client: httpx.AsyncClient) -> None: ...
|
|
78
|
+
|
|
79
|
+
@overload
|
|
80
|
+
def __init__(self, *, openai_client: AsyncOpenAI | None = None) -> None: ...
|
|
81
|
+
|
|
82
|
+
def __init__(
|
|
83
|
+
self,
|
|
84
|
+
*,
|
|
85
|
+
api_key: str | None = None,
|
|
86
|
+
openai_client: AsyncOpenAI | None = None,
|
|
87
|
+
http_client: httpx.AsyncClient | None = None,
|
|
88
|
+
) -> None:
|
|
89
|
+
api_key = api_key or os.getenv('NEBIUS_API_KEY')
|
|
90
|
+
if not api_key and openai_client is None:
|
|
91
|
+
raise UserError(
|
|
92
|
+
'Set the `NEBIUS_API_KEY` environment variable or pass it via '
|
|
93
|
+
'`NebiusProvider(api_key=...)` to use the Nebius AI Studio provider.'
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
if openai_client is not None:
|
|
97
|
+
self._client = openai_client
|
|
98
|
+
elif http_client is not None:
|
|
99
|
+
self._client = AsyncOpenAI(base_url=self.base_url, api_key=api_key, http_client=http_client)
|
|
100
|
+
else:
|
|
101
|
+
http_client = cached_async_http_client(provider='nebius')
|
|
102
|
+
self._client = AsyncOpenAI(base_url=self.base_url, api_key=api_key, http_client=http_client)
|
pydantic_ai/toolsets/function.py
CHANGED
|
@@ -109,6 +109,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
109
109
|
/,
|
|
110
110
|
*,
|
|
111
111
|
name: str | None = None,
|
|
112
|
+
description: str | None = None,
|
|
112
113
|
retries: int | None = None,
|
|
113
114
|
prepare: ToolPrepareFunc[AgentDepsT] | None = None,
|
|
114
115
|
docstring_format: DocstringFormat | None = None,
|
|
@@ -126,6 +127,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
126
127
|
/,
|
|
127
128
|
*,
|
|
128
129
|
name: str | None = None,
|
|
130
|
+
description: str | None = None,
|
|
129
131
|
retries: int | None = None,
|
|
130
132
|
prepare: ToolPrepareFunc[AgentDepsT] | None = None,
|
|
131
133
|
docstring_format: DocstringFormat | None = None,
|
|
@@ -169,6 +171,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
169
171
|
Args:
|
|
170
172
|
func: The tool function to register.
|
|
171
173
|
name: The name of the tool, defaults to the function name.
|
|
174
|
+
description: The description of the tool,defaults to the function docstring.
|
|
172
175
|
retries: The number of retries to allow for this tool, defaults to the agent's default retries,
|
|
173
176
|
which defaults to 1.
|
|
174
177
|
prepare: custom method to prepare the tool definition for each step, return `None` to omit this
|
|
@@ -197,18 +200,19 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
197
200
|
) -> ToolFuncEither[AgentDepsT, ToolParams]:
|
|
198
201
|
# noinspection PyTypeChecker
|
|
199
202
|
self.add_function(
|
|
200
|
-
func_,
|
|
201
|
-
None,
|
|
202
|
-
name,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
203
|
+
func=func_,
|
|
204
|
+
takes_ctx=None,
|
|
205
|
+
name=name,
|
|
206
|
+
description=description,
|
|
207
|
+
retries=retries,
|
|
208
|
+
prepare=prepare,
|
|
209
|
+
docstring_format=docstring_format,
|
|
210
|
+
require_parameter_descriptions=require_parameter_descriptions,
|
|
211
|
+
schema_generator=schema_generator,
|
|
212
|
+
strict=strict,
|
|
213
|
+
sequential=sequential,
|
|
214
|
+
requires_approval=requires_approval,
|
|
215
|
+
metadata=metadata,
|
|
212
216
|
)
|
|
213
217
|
return func_
|
|
214
218
|
|
|
@@ -219,6 +223,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
219
223
|
func: ToolFuncEither[AgentDepsT, ToolParams],
|
|
220
224
|
takes_ctx: bool | None = None,
|
|
221
225
|
name: str | None = None,
|
|
226
|
+
description: str | None = None,
|
|
222
227
|
retries: int | None = None,
|
|
223
228
|
prepare: ToolPrepareFunc[AgentDepsT] | None = None,
|
|
224
229
|
docstring_format: DocstringFormat | None = None,
|
|
@@ -240,6 +245,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
240
245
|
func: The tool function to register.
|
|
241
246
|
takes_ctx: Whether the function takes a [`RunContext`][pydantic_ai.tools.RunContext] as its first argument. If `None`, this is inferred from the function signature.
|
|
242
247
|
name: The name of the tool, defaults to the function name.
|
|
248
|
+
description: The description of the tool, defaults to the function docstring.
|
|
243
249
|
retries: The number of retries to allow for this tool, defaults to the agent's default retries,
|
|
244
250
|
which defaults to 1.
|
|
245
251
|
prepare: custom method to prepare the tool definition for each step, return `None` to omit this
|
|
@@ -279,6 +285,7 @@ class FunctionToolset(AbstractToolset[AgentDepsT]):
|
|
|
279
285
|
func,
|
|
280
286
|
takes_ctx=takes_ctx,
|
|
281
287
|
name=name,
|
|
288
|
+
description=description,
|
|
282
289
|
max_retries=retries,
|
|
283
290
|
prepare=prepare,
|
|
284
291
|
docstring_format=docstring_format,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai-slim
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs, slim package
|
|
5
5
|
Project-URL: Homepage, https://github.com/pydantic/pydantic-ai/tree/main/pydantic_ai_slim
|
|
6
6
|
Project-URL: Source, https://github.com/pydantic/pydantic-ai/tree/main/pydantic_ai_slim
|
|
@@ -33,7 +33,7 @@ Requires-Dist: genai-prices>=0.0.30
|
|
|
33
33
|
Requires-Dist: griffe>=1.3.2
|
|
34
34
|
Requires-Dist: httpx>=0.27
|
|
35
35
|
Requires-Dist: opentelemetry-api>=1.28.0
|
|
36
|
-
Requires-Dist: pydantic-graph==1.0
|
|
36
|
+
Requires-Dist: pydantic-graph==1.1.0
|
|
37
37
|
Requires-Dist: pydantic>=2.10
|
|
38
38
|
Requires-Dist: typing-inspection>=0.4.0
|
|
39
39
|
Provides-Extra: a2a
|
|
@@ -57,7 +57,7 @@ Requires-Dist: dbos>=1.14.0; extra == 'dbos'
|
|
|
57
57
|
Provides-Extra: duckduckgo
|
|
58
58
|
Requires-Dist: ddgs>=9.0.0; extra == 'duckduckgo'
|
|
59
59
|
Provides-Extra: evals
|
|
60
|
-
Requires-Dist: pydantic-evals==1.0
|
|
60
|
+
Requires-Dist: pydantic-evals==1.1.0; extra == 'evals'
|
|
61
61
|
Provides-Extra: google
|
|
62
62
|
Requires-Dist: google-genai>=1.31.0; extra == 'google'
|
|
63
63
|
Provides-Extra: groq
|
|
@@ -72,6 +72,8 @@ Provides-Extra: mistral
|
|
|
72
72
|
Requires-Dist: mistralai>=1.9.10; extra == 'mistral'
|
|
73
73
|
Provides-Extra: openai
|
|
74
74
|
Requires-Dist: openai>=1.107.2; extra == 'openai'
|
|
75
|
+
Provides-Extra: prefect
|
|
76
|
+
Requires-Dist: prefect>=3.4.21; extra == 'prefect'
|
|
75
77
|
Provides-Extra: retries
|
|
76
78
|
Requires-Dist: tenacity>=8.2.3; extra == 'retries'
|
|
77
79
|
Provides-Extra: tavily
|
|
@@ -10,7 +10,7 @@ pydantic_ai/_json_schema.py,sha256=Br48srbwCTVIie98a9UEMGcCcTIa3E4zVvCbkxqQRso,7
|
|
|
10
10
|
pydantic_ai/_mcp.py,sha256=PuvwnlLjv7YYOa9AZJCrklevBug99zGMhwJCBGG7BHQ,5626
|
|
11
11
|
pydantic_ai/_otel_messages.py,sha256=SsMpbyI1fIISOck_wQcZJPIOei8lOmvwARkdPSCx8y8,1650
|
|
12
12
|
pydantic_ai/_output.py,sha256=gHS1qwM701cH5FGGRUrMxgWlJhY1vNgdM6ylnHRa-Ew,40784
|
|
13
|
-
pydantic_ai/_parts_manager.py,sha256=
|
|
13
|
+
pydantic_ai/_parts_manager.py,sha256=05m8q2JZQk9Z8vNKOocxGDJQwYgbUGABGBRnXYJcsg8,19914
|
|
14
14
|
pydantic_ai/_run_context.py,sha256=-ah9Ipf3mLTbvuYqmJSqBmBexaCcED7HGA1Llzs0dKU,2324
|
|
15
15
|
pydantic_ai/_system_prompt.py,sha256=WdDW_DTGHujcFFaK-J7J6mA4ZDJZ0IOKpyizJA-1Y5Q,1142
|
|
16
16
|
pydantic_ai/_thinking_part.py,sha256=_0DajGyWPa50WUTPWN1UPfZw0xD8_hHcuSt0T3fgRr0,1295
|
|
@@ -22,7 +22,7 @@ pydantic_ai/direct.py,sha256=i5yZ9Tx8IiwXg6Nz9CW4-fyXzxnjP59fsklExCh5sjA,15111
|
|
|
22
22
|
pydantic_ai/exceptions.py,sha256=zsXZMKf2BJuVsfuHl1fWTkogLU37bd4yq7D6BKHAzVs,4968
|
|
23
23
|
pydantic_ai/format_prompt.py,sha256=cLyWO8g77Y4JzqVSikqodXaAfTn6i-k206rNhYTiIsE,9710
|
|
24
24
|
pydantic_ai/mcp.py,sha256=7Ouwepk-p2rOq_Rkv-MSZYyEGJ6FfrJvR7ySghuSLwc,36693
|
|
25
|
-
pydantic_ai/messages.py,sha256=
|
|
25
|
+
pydantic_ai/messages.py,sha256=GBuRGeq3ZpEuSNdq96Mb7l-UVEl7cNuNUN1LpwaAaxQ,64848
|
|
26
26
|
pydantic_ai/output.py,sha256=q91oqvJ-FqV9GbUUil7WVWbii66SVsVZ54AEm_NWSEo,13002
|
|
27
27
|
pydantic_ai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
pydantic_ai/result.py,sha256=sVabgrAJXmj96I7NM-w0RBz1rH5x_zZql1V6epei4JU,26700
|
|
@@ -31,7 +31,7 @@ pydantic_ai/run.py,sha256=dV3zIztC-lfOCKecXg_Mcx2CyOfUbxQC0JbZuPvQhTI,16227
|
|
|
31
31
|
pydantic_ai/settings.py,sha256=0mr6KudxKKjTG8e3nsv_8vDLxNhu_1-WvefCOzCGSYM,3565
|
|
32
32
|
pydantic_ai/tools.py,sha256=dCecmJtRkF1ioqFYbfT00XGGqzGB4PPO9n6IrHCQtnc,20343
|
|
33
33
|
pydantic_ai/usage.py,sha256=_xXoPIfpENghWcjBvMj0URXQV6YwHWxxZYma4WZ4vUg,15710
|
|
34
|
-
pydantic_ai/agent/__init__.py,sha256=
|
|
34
|
+
pydantic_ai/agent/__init__.py,sha256=VigDqMYLKQHsNYWYy6qPkqN0yfdffqxBYEA5YyxkIBM,67111
|
|
35
35
|
pydantic_ai/agent/abstract.py,sha256=69kTaR-ZMEmLJ4tD3oGQS5VuomXtNL8t5mxmPz8Ao50,54587
|
|
36
36
|
pydantic_ai/agent/wrapper.py,sha256=ygwfMq24mGe3pGIK-TtPAy3cV7M8VZJW3ulEHvwNTck,10293
|
|
37
37
|
pydantic_ai/common_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -43,7 +43,15 @@ pydantic_ai/durable_exec/dbos/_agent.py,sha256=5yKDlsMVNKzX3Tth-HC-TAwtEhCUbhL4T
|
|
|
43
43
|
pydantic_ai/durable_exec/dbos/_mcp_server.py,sha256=cLMCKmXQHqhqnn_E3Nf4IsNFIbqk-V7gnIvpmYeDCSA,2989
|
|
44
44
|
pydantic_ai/durable_exec/dbos/_model.py,sha256=_Cxh0zYFF3cungXiSXpGHmjyBQF7KnksfurV7hMKp-E,5106
|
|
45
45
|
pydantic_ai/durable_exec/dbos/_utils.py,sha256=_aNceFvTcNeqb78sTDYM2TdYph85tbdeLueyXY1lbTA,242
|
|
46
|
-
pydantic_ai/durable_exec/
|
|
46
|
+
pydantic_ai/durable_exec/prefect/__init__.py,sha256=Ear0mrffOkmSG8itNo7U-LnLoU5-eyWK_9AcfPwJjZ0,422
|
|
47
|
+
pydantic_ai/durable_exec/prefect/_agent.py,sha256=tJZj21nV_IEXMnOR2Mx7p4nnjlY0r_rPvuHAczc8wlQ,39606
|
|
48
|
+
pydantic_ai/durable_exec/prefect/_cache_policies.py,sha256=Sc6_xeDQ3NzuksoSa7KLXa64LhnLErt1UnPOXWFQArU,3399
|
|
49
|
+
pydantic_ai/durable_exec/prefect/_function_toolset.py,sha256=TEytP8WAVIgz897mWy_dKmFOOXq3gHq6CIDWOUYjKL0,2052
|
|
50
|
+
pydantic_ai/durable_exec/prefect/_mcp_server.py,sha256=5uHe2BNJyZUVeNPNo2HI0jtQkSyxAdOJGBTAwP1St04,1861
|
|
51
|
+
pydantic_ai/durable_exec/prefect/_model.py,sha256=-lJeI1LLc_v2R6yWpxmRuT_wjS-dgU_4HKtiXoRJPxI,5794
|
|
52
|
+
pydantic_ai/durable_exec/prefect/_toolset.py,sha256=dBgIMsQikjJgGr7_QAs3UG7nycBBH61eioMwN8mPqoA,2050
|
|
53
|
+
pydantic_ai/durable_exec/prefect/_types.py,sha256=cTtXnKokPSCDMBQJrLlEho0mJLvDIGNCZF-q6infkkU,1270
|
|
54
|
+
pydantic_ai/durable_exec/temporal/__init__.py,sha256=H8y0jMv5Q2aFvHZ4rm48cYn07nc1nWEQbYpcO9P6zpA,5624
|
|
47
55
|
pydantic_ai/durable_exec/temporal/_agent.py,sha256=BKbKKo6FM2zx-5ohc9voDyMYONH_8sZwUNypjonWDlA,44458
|
|
48
56
|
pydantic_ai/durable_exec/temporal/_function_toolset.py,sha256=3n_A5uHzygsT88LM105kKuYqwxC1sjI4bOzETeUbT4E,5553
|
|
49
57
|
pydantic_ai/durable_exec/temporal/_logfire.py,sha256=ASd7vb0cd61yESI0mgU2w9SCGxsOegz95HtQjKdlQkE,2472
|
|
@@ -54,20 +62,20 @@ pydantic_ai/durable_exec/temporal/_toolset.py,sha256=IlPQrumm2MpZrb518ru15s0jIl8
|
|
|
54
62
|
pydantic_ai/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
63
|
pydantic_ai/ext/aci.py,sha256=YWYLXzTQJ6hS7qfgNycA8cRl69gogGgThqEU6II7eMA,2527
|
|
56
64
|
pydantic_ai/ext/langchain.py,sha256=kmbbV3Cx2BiNYEJCZMHVYQquUQD-zG2L_bwDangy0Ww,2317
|
|
57
|
-
pydantic_ai/models/__init__.py,sha256=
|
|
65
|
+
pydantic_ai/models/__init__.py,sha256=D-lOP764gxfjdaNjUujpHlvpJQuIjGfYO8ljcohQ_rE,35736
|
|
58
66
|
pydantic_ai/models/anthropic.py,sha256=-vW7aoPrELKnJzbooCEhMu8__jY6iqvWdFJbIKeQPa8,38087
|
|
59
67
|
pydantic_ai/models/bedrock.py,sha256=fha8zVZgDFYgDqO5nvBkZ2CEv4GV92yq_YnK4qmD73E,33639
|
|
60
68
|
pydantic_ai/models/cohere.py,sha256=_ccK7XBts1OwD-RP8puU3z425SZ4PeJGts1WFhPjikg,14051
|
|
61
69
|
pydantic_ai/models/fallback.py,sha256=fjQz7qRuxEwC6aFYkglBv-2Z39-6kZ931vs6o7PIti8,5016
|
|
62
70
|
pydantic_ai/models/function.py,sha256=7-ej1m4f7c1TbvgB8sF02qlFD7Kf-EX-k_xN4RkbIEw,15880
|
|
63
71
|
pydantic_ai/models/gemini.py,sha256=Ik7e1SnDCvFyjmYHcM-6vilXyl6pHY_GKaM3pHJGNG4,40016
|
|
64
|
-
pydantic_ai/models/google.py,sha256=
|
|
72
|
+
pydantic_ai/models/google.py,sha256=0NsCdFIxcgEkG9xItqxxgAfxt8FwJ2zws3L0wv-PyMQ,41739
|
|
65
73
|
pydantic_ai/models/groq.py,sha256=pVLl-4Z5CtiYU7bLgRlFTQhfh4LkMi6-aSkvgDuddrk,29633
|
|
66
74
|
pydantic_ai/models/huggingface.py,sha256=711C0ysjLYKriGfSxPiaF6lqjGcNmIaJaCvAXoucTes,21488
|
|
67
75
|
pydantic_ai/models/instrumented.py,sha256=J8eVTutr3UP1r_wd5sM5c0BIdzkRqT-EGgd2NiF0ssQ,22319
|
|
68
76
|
pydantic_ai/models/mcp_sampling.py,sha256=qY4y4nXbRpNp2QbkfjzWLvF_8KLZGXypz4cc0lYRHXU,3553
|
|
69
77
|
pydantic_ai/models/mistral.py,sha256=fi57hADjYxZw8wEpAcNI6mqY32VG9hHK9GGRQ-9vlZg,33905
|
|
70
|
-
pydantic_ai/models/openai.py,sha256=
|
|
78
|
+
pydantic_ai/models/openai.py,sha256=nCqFy2sRihygbBbTYSbMy_W9LiXwNoRzIUNHSJk5ctc,99861
|
|
71
79
|
pydantic_ai/models/test.py,sha256=5ER66nwZG7Iwm-KkzPo4vwNd3rulzgkpgysu4YcT1W4,20568
|
|
72
80
|
pydantic_ai/models/wrapper.py,sha256=nwh8Gea59blbr1JDKlUnkYICuI9TUubC4qP7iZRRW28,2440
|
|
73
81
|
pydantic_ai/profiles/__init__.py,sha256=UHknN-CYsQexUaxfsgz_J_uSZ9QwistLSuAErQkvbcM,3385
|
|
@@ -84,7 +92,7 @@ pydantic_ai/profiles/mistral.py,sha256=ll01PmcK3szwlTfbaJLQmfd0TADN8lqjov9HpPJzC
|
|
|
84
92
|
pydantic_ai/profiles/moonshotai.py,sha256=e1RJnbEvazE6aJAqfmYLYGNtwNwg52XQDRDkcLrv3fU,272
|
|
85
93
|
pydantic_ai/profiles/openai.py,sha256=MXOsktUqfcF2pBgYJMyFWMZafPJ7tejwyoFM2mjKzaY,9689
|
|
86
94
|
pydantic_ai/profiles/qwen.py,sha256=9SnTpMKndxNQMFyumyaOczJa5JGWbYQdpVKKW4OzKjk,749
|
|
87
|
-
pydantic_ai/providers/__init__.py,sha256=
|
|
95
|
+
pydantic_ai/providers/__init__.py,sha256=UAyyyGhYypWcfJybom0yUS8lbwWD5wmOtbTDG81Wl9E,4718
|
|
88
96
|
pydantic_ai/providers/anthropic.py,sha256=vwNjO2JJ0Ux_3PXI9_XvzNZ24PKessm8z2ja1uzbBwM,3327
|
|
89
97
|
pydantic_ai/providers/azure.py,sha256=PFRykTOfARMdANODnTLq__0ZynX7DlQ35GVf2Qs9VBY,5814
|
|
90
98
|
pydantic_ai/providers/bedrock.py,sha256=efb9YWAz6ram5QEIHNO0K-dL8chTMsjRPCNQhpbQSBY,6513
|
|
@@ -92,7 +100,7 @@ pydantic_ai/providers/cerebras.py,sha256=3rIu092TYYuI5S4mlRjWxay5uomPbEDyHWIBMfr
|
|
|
92
100
|
pydantic_ai/providers/cohere.py,sha256=L3wgvcbxRRPrIKoZka_DQl1Uvi1VxBPMJikrzJ85iHE,2839
|
|
93
101
|
pydantic_ai/providers/deepseek.py,sha256=zop0sb1XzdzSuI2dCNXrinfMdxoqB8H_rp2zw6ItbKc,3023
|
|
94
102
|
pydantic_ai/providers/fireworks.py,sha256=t4PznbxnD9GnzZ3wYqSn6xdxRRJlYzNKf_EZzX0UWl8,3585
|
|
95
|
-
pydantic_ai/providers/gateway.py,sha256=
|
|
103
|
+
pydantic_ai/providers/gateway.py,sha256=Xgns651ndehQ3F6PkMw8CBgaFBmxQx25LjrQA8PuPjk,6937
|
|
96
104
|
pydantic_ai/providers/github.py,sha256=yi7c16_Ao1E1QmehVfdsO9NrjDGK1moaHTK-P5cIrsI,4369
|
|
97
105
|
pydantic_ai/providers/google.py,sha256=scCHek7whNEbi742hnRlKItboYOoxtYosgNN7wDjvpM,6019
|
|
98
106
|
pydantic_ai/providers/google_gla.py,sha256=PnmnzgCOPJB1kMVnNVqZu2Cdzk7K9jx2z0MpbJ6EkII,1951
|
|
@@ -104,6 +112,7 @@ pydantic_ai/providers/huggingface.py,sha256=bCN7vX8JuzKM_bXjyLBCh-imsyCiVPXBUB1F
|
|
|
104
112
|
pydantic_ai/providers/litellm.py,sha256=a669KrAbaj8YYMm3N3yRQduzCMtGDCoHXAQ54_XAo8o,5070
|
|
105
113
|
pydantic_ai/providers/mistral.py,sha256=YqvUoqOq-wiJYnRLwUwp3lUvyApumrohSwysZaQfeBc,3074
|
|
106
114
|
pydantic_ai/providers/moonshotai.py,sha256=iaQHZRYJb7hqeq-Di7Qb0LYJ8EEoE7a_wWtlt_oNa0A,3251
|
|
115
|
+
pydantic_ai/providers/nebius.py,sha256=nGpgbZnBZgNz4wHTi1vgvc-9tO2_zj5r3vRzEUbhPKM,3877
|
|
107
116
|
pydantic_ai/providers/ollama.py,sha256=jg48g_3fYsvK8g-V3UOmR9HOsvnvb533BAB-rZZDxdA,4733
|
|
108
117
|
pydantic_ai/providers/openai.py,sha256=cVVf99GgBnYBKYeWKBscvnkoRCu0ctWuKulG19lgWMo,3401
|
|
109
118
|
pydantic_ai/providers/openrouter.py,sha256=o33Fk7kMyMhEM4NcSXU6IuG0cIUc45ySaenozrRypBI,4145
|
|
@@ -116,13 +125,13 @@ pydantic_ai/toolsets/approval_required.py,sha256=zyYGEx2VqprLed16OXg1QWr81rnAB0C
|
|
|
116
125
|
pydantic_ai/toolsets/combined.py,sha256=LQzm_g6gskiHRUMFDvm88SSrz8OGxbdxyHiKzQrMBNU,4026
|
|
117
126
|
pydantic_ai/toolsets/external.py,sha256=J9mWQm1HLbRCOJwpLBIvUZZGR_ywSB7pz8MrXkRNBoU,1736
|
|
118
127
|
pydantic_ai/toolsets/filtered.py,sha256=PSQG9EbBYJpHUEBb_4TGzhjAcQPo5aPKvTuReeoWYtQ,864
|
|
119
|
-
pydantic_ai/toolsets/function.py,sha256=
|
|
128
|
+
pydantic_ai/toolsets/function.py,sha256=7QNKUddsSehwtM1kC13fVPkswzh2qa63p5wqIgrUFKk,16819
|
|
120
129
|
pydantic_ai/toolsets/prefixed.py,sha256=0KwcDkW8OM36ZUsOLVP5h-Nj2tPq78L3_E2c-1Fbh5s,1426
|
|
121
130
|
pydantic_ai/toolsets/prepared.py,sha256=Zjfz6S8In6PBVxoKFN9sKPN984zO6t0awB7Lnq5KODw,1431
|
|
122
131
|
pydantic_ai/toolsets/renamed.py,sha256=JuLHpi-hYPiSPlaTpN8WiXLiGsywYK0axi2lW2Qs75k,1637
|
|
123
132
|
pydantic_ai/toolsets/wrapper.py,sha256=KRzF1p8dncHbva8CE6Ud-IC5E_aygIHlwH5atXK55k4,1673
|
|
124
|
-
pydantic_ai_slim-1.0.
|
|
125
|
-
pydantic_ai_slim-1.0.
|
|
126
|
-
pydantic_ai_slim-1.0.
|
|
127
|
-
pydantic_ai_slim-1.0.
|
|
128
|
-
pydantic_ai_slim-1.0.
|
|
133
|
+
pydantic_ai_slim-1.1.0.dist-info/METADATA,sha256=T4LppdZllkCLfqapnpsV7PxT7tyntYq4wCc-UDV8b9A,4703
|
|
134
|
+
pydantic_ai_slim-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
135
|
+
pydantic_ai_slim-1.1.0.dist-info/entry_points.txt,sha256=kbKxe2VtDCYS06hsI7P3uZGxcVC08-FPt1rxeiMpIps,50
|
|
136
|
+
pydantic_ai_slim-1.1.0.dist-info/licenses/LICENSE,sha256=vA6Jc482lEyBBuGUfD1pYx-cM7jxvLYOxPidZ30t_PQ,1100
|
|
137
|
+
pydantic_ai_slim-1.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|