pydantic-ai-slim 0.2.3__py3-none-any.whl → 0.2.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 pydantic-ai-slim might be problematic. Click here for more details.

pydantic_ai/result.py CHANGED
@@ -114,7 +114,7 @@ class AgentStream(Generic[AgentDepsT, OutputDataT]):
114
114
  async for response in self.stream_responses(debounce_by=debounce_by):
115
115
  if self._final_result_event is not None:
116
116
  yield await self._validate_response(response, self._final_result_event.tool_name, allow_partial=True)
117
- if self._final_result_event is not None:
117
+ if self._final_result_event is not None: # pragma: no branch
118
118
  yield await self._validate_response(
119
119
  self._raw_stream_response.get(), self._final_result_event.tool_name, allow_partial=False
120
120
  )
@@ -124,7 +124,7 @@ class AgentStream(Generic[AgentDepsT, OutputDataT]):
124
124
  # if the message currently has any parts with content, yield before streaming
125
125
  msg = self._raw_stream_response.get()
126
126
  for part in msg.parts:
127
- if part.has_content():
127
+ if part.has_content(): # pragma: no cover
128
128
  yield msg
129
129
  break
130
130
 
@@ -147,7 +147,7 @@ class AgentStream(Generic[AgentDepsT, OutputDataT]):
147
147
  if self._output_schema is not None and output_tool_name is not None:
148
148
  match = self._output_schema.find_named_tool(message.parts, output_tool_name)
149
149
  if match is None:
150
- raise exceptions.UnexpectedModelBehavior(
150
+ raise exceptions.UnexpectedModelBehavior( # pragma: no cover
151
151
  f'Invalid response, unable to find tool: {self._output_schema.tool_names()}'
152
152
  )
153
153
 
@@ -188,11 +188,11 @@ class AgentStream(Generic[AgentDepsT, OutputDataT]):
188
188
  new_part = e.part
189
189
  if isinstance(new_part, _messages.ToolCallPart):
190
190
  if output_schema:
191
- for call, _ in output_schema.find_tool([new_part]):
191
+ for call, _ in output_schema.find_tool([new_part]): # pragma: no branch
192
192
  return _messages.FinalResultEvent(
193
193
  tool_name=call.tool_name, tool_call_id=call.tool_call_id
194
194
  )
195
- elif allow_text_output:
195
+ elif allow_text_output: # pragma: no branch
196
196
  assert_type(e, _messages.PartStartEvent)
197
197
  return _messages.FinalResultEvent(tool_name=None, tool_call_id=None)
198
198
 
@@ -461,7 +461,7 @@ class StreamedRunResult(Generic[AgentDepsT, OutputDataT]):
461
461
  if self._output_schema is not None and self._output_tool_name is not None:
462
462
  match = self._output_schema.find_named_tool(message.parts, self._output_tool_name)
463
463
  if match is None:
464
- raise exceptions.UnexpectedModelBehavior(
464
+ raise exceptions.UnexpectedModelBehavior( # pragma: no cover
465
465
  f'Invalid response, unable to find tool: {self._output_schema.tool_names()}'
466
466
  )
467
467
 
@@ -469,26 +469,18 @@ class StreamedRunResult(Generic[AgentDepsT, OutputDataT]):
469
469
  result_data = output_tool.validate(call, allow_partial=allow_partial, wrap_validation_errors=False)
470
470
 
471
471
  for validator in self._output_validators:
472
- result_data = await validator.validate(result_data, call, self._run_ctx)
472
+ result_data = await validator.validate(result_data, call, self._run_ctx) # pragma: no cover
473
473
  return result_data
474
474
  else:
475
475
  text = '\n\n'.join(x.content for x in message.parts if isinstance(x, _messages.TextPart))
476
476
  for validator in self._output_validators:
477
- text = await validator.validate(
478
- text,
479
- None,
480
- self._run_ctx,
481
- )
477
+ text = await validator.validate(text, None, self._run_ctx) # pragma: no cover
482
478
  # Since there is no output tool, we can assume that str is compatible with OutputDataT
483
479
  return cast(OutputDataT, text)
484
480
 
485
481
  async def _validate_text_output(self, text: str) -> str:
486
482
  for validator in self._output_validators:
487
- text = await validator.validate(
488
- text,
489
- None,
490
- self._run_ctx,
491
- )
483
+ text = await validator.validate(text, None, self._run_ctx) # pragma: no cover
492
484
  return text
493
485
 
494
486
  async def _marked_completed(self, message: _messages.ModelResponse) -> None:
@@ -526,8 +518,8 @@ class StreamedRunResult(Generic[AgentDepsT, OutputDataT]):
526
518
  and isinstance(event.part, _messages.TextPart)
527
519
  and event.part.content
528
520
  ):
529
- yield event.part.content, event.index
530
- elif (
521
+ yield event.part.content, event.index # pragma: no cover
522
+ elif ( # pragma: no branch
531
523
  isinstance(event, _messages.PartDeltaEvent)
532
524
  and isinstance(event.delta, _messages.TextPartDelta)
533
525
  and event.delta.content_delta
@@ -576,12 +568,12 @@ def _get_usage_checking_stream_response(
576
568
  ) -> AsyncIterable[_messages.ModelResponseStreamEvent]:
577
569
  if limits is not None and limits.has_token_limits():
578
570
 
579
- async def _usage_checking_iterator():
571
+ async def _usage_checking_iterator(): # pragma: no cover
580
572
  async for item in stream_response:
581
573
  limits.check_tokens(get_usage())
582
574
  yield item
583
575
 
584
- return _usage_checking_iterator()
576
+ return _usage_checking_iterator() # pragma: no cover
585
577
  else:
586
578
  return stream_response
587
579
 
pydantic_ai/tools.py CHANGED
@@ -68,7 +68,7 @@ class RunContext(Generic[AgentDepsT]):
68
68
  kwargs = {}
69
69
  if retry is not None:
70
70
  kwargs['retry'] = retry
71
- if tool_name is not _utils.UNSET:
71
+ if tool_name is not _utils.UNSET: # pragma: no branch
72
72
  kwargs['tool_name'] = tool_name
73
73
  return dataclasses.replace(self, **kwargs)
74
74
 
@@ -374,7 +374,7 @@ class Tool(Generic[AgentDepsT]):
374
374
  )
375
375
  args = [ctx] if self.takes_ctx else []
376
376
  for positional_field in self._positional_fields:
377
- args.append(args_dict.pop(positional_field))
377
+ args.append(args_dict.pop(positional_field)) # pragma: no cover
378
378
  if self._var_positional_field:
379
379
  args.extend(args_dict.pop(self._var_positional_field))
380
380
 
pydantic_ai/usage.py CHANGED
@@ -61,7 +61,7 @@ class Usage:
61
61
  'gen_ai.usage.output_tokens': self.response_tokens,
62
62
  }
63
63
  for key, value in (self.details or {}).items():
64
- result[f'gen_ai.usage.details.{key}'] = value
64
+ result[f'gen_ai.usage.details.{key}'] = value # pragma: no cover
65
65
  return {k: v for k, v in result.items() if v}
66
66
 
67
67
  def has_values(self) -> bool:
@@ -1,9 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai-slim
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Agent Framework / shim to use Pydantic with LLMs, slim package
5
5
  Author-email: Samuel Colvin <samuel@pydantic.dev>, Marcelo Trylesinski <marcelotryle@gmail.com>, David Montague <david@pydantic.dev>, Alex Hall <alex@pydantic.dev>
6
6
  License-Expression: MIT
7
+ License-File: LICENSE
7
8
  Classifier: Development Status :: 4 - Beta
8
9
  Classifier: Environment :: Console
9
10
  Classifier: Environment :: MacOS X
@@ -26,15 +27,14 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
27
  Requires-Python: >=3.9
27
28
  Requires-Dist: eval-type-backport>=0.2.0
28
29
  Requires-Dist: exceptiongroup; python_version < '3.11'
29
- Requires-Dist: fasta2a==0.2.3
30
30
  Requires-Dist: griffe>=1.3.2
31
31
  Requires-Dist: httpx>=0.27
32
32
  Requires-Dist: opentelemetry-api>=1.28.0
33
- Requires-Dist: pydantic-graph==0.2.3
33
+ Requires-Dist: pydantic-graph==0.2.5
34
34
  Requires-Dist: pydantic>=2.10
35
35
  Requires-Dist: typing-inspection>=0.4.0
36
36
  Provides-Extra: a2a
37
- Requires-Dist: fasta2a==0.2.3; extra == 'a2a'
37
+ Requires-Dist: fasta2a==0.2.5; extra == 'a2a'
38
38
  Provides-Extra: anthropic
39
39
  Requires-Dist: anthropic>=0.49.0; extra == 'anthropic'
40
40
  Provides-Extra: bedrock
@@ -48,7 +48,9 @@ Requires-Dist: cohere>=5.13.11; (platform_system != 'Emscripten') and extra == '
48
48
  Provides-Extra: duckduckgo
49
49
  Requires-Dist: duckduckgo-search>=7.0.0; extra == 'duckduckgo'
50
50
  Provides-Extra: evals
51
- Requires-Dist: pydantic-evals==0.2.3; extra == 'evals'
51
+ Requires-Dist: pydantic-evals==0.2.5; extra == 'evals'
52
+ Provides-Extra: google
53
+ Requires-Dist: google-genai>=1.15.0; extra == 'google'
52
54
  Provides-Extra: groq
53
55
  Requires-Dist: groq>=0.15.0; extra == 'groq'
54
56
  Provides-Extra: logfire
@@ -0,0 +1,59 @@
1
+ pydantic_ai/__init__.py,sha256=5flxyMQJVrHRMQ3MYaZf1el2ctNs0JmPClKbw2Q-Lsk,1160
2
+ pydantic_ai/__main__.py,sha256=Q_zJU15DUA01YtlJ2mnaLCoId2YmgmreVEERGuQT-Y0,132
3
+ pydantic_ai/_a2a.py,sha256=8nNtx6GENDt2Ej3f1ui9L-FuNQBYVELpJFfwz-y7fUw,7234
4
+ pydantic_ai/_agent_graph.py,sha256=5iqJGu8goUErFRwg9Ih2KkIuMsOU1srZx5V25fDHG54,35334
5
+ pydantic_ai/_cli.py,sha256=TfFdDUQ86bLfdv0epo7Dy4awiVxijHCvGHVnqfQYCz4,13028
6
+ pydantic_ai/_griffe.py,sha256=Sf_DisE9k2TA0VFeVIK2nf1oOct5MygW86PBCACJkFA,5244
7
+ pydantic_ai/_output.py,sha256=bN2gnIhtVW8-rIu6BUlXFqLbbDauipEdNHzaS5vMNv0,11357
8
+ pydantic_ai/_parts_manager.py,sha256=mG6uh2hqeMrkxbaBNbHkQF91rLXJZre4WejE7K3kFs8,12210
9
+ pydantic_ai/_pydantic.py,sha256=1EO1tv-ULj3l_L1qMcC7gIOKTL2e2a-xTbUD_kqKiOg,8921
10
+ pydantic_ai/_system_prompt.py,sha256=602c2jyle2R_SesOrITBDETZqsLk4BZ8Cbo8yEhmx04,1120
11
+ pydantic_ai/_utils.py,sha256=Vlww1AMQMTvFfGRlFKAyvl4VrE24Lk1MH28EwVTWy8c,10122
12
+ pydantic_ai/agent.py,sha256=-rcJGJMLcKrbgWmLR3jcyJFHDq39t3l5yRyJrWYPZUs,94123
13
+ pydantic_ai/direct.py,sha256=nGIPlp2edVEc3aixcRyT6mqGASWgTZbv3F9aXNwzIKA,8441
14
+ pydantic_ai/exceptions.py,sha256=IdFw594Ou7Vn4YFa7xdZ040_j_6nmyA3MPANbC7sys4,3175
15
+ pydantic_ai/format_as_xml.py,sha256=IINfh1evWDphGahqHNLBArB5dQ4NIqS3S-kru35ztGg,372
16
+ pydantic_ai/format_prompt.py,sha256=qdKep95Sjlr7u1-qag4JwPbjoURbG0GbeU_l5ODTNw4,4466
17
+ pydantic_ai/mcp.py,sha256=UsiBsg2ZuFh0OTMc-tvvxzfyW9YiPSIe6h8_KGloxqI,11312
18
+ pydantic_ai/messages.py,sha256=HTDWBpmEdhD1gN_mJgyugon6YuhvxHXDp-Cny9owGao,31191
19
+ pydantic_ai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ pydantic_ai/result.py,sha256=YgaF1c_LS2F2YcLNHTS-8KxqwnrBj7s3Z9s8WIB_oNA,27747
21
+ pydantic_ai/settings.py,sha256=U2XzZ9y1fIi_L6yCGTugZRxfk7_01rk5GKSgFqySHL4,3520
22
+ pydantic_ai/tools.py,sha256=17aOFiZ4LBP6TyNEHsswVDZXb6D_yfhSFiTm8vwjqAM,16964
23
+ pydantic_ai/usage.py,sha256=NoK2JXSFU6dFR7sd2vX7D16l8A2-BtOdCvJkhcBVbrs,5447
24
+ pydantic_ai/common_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ pydantic_ai/common_tools/duckduckgo.py,sha256=Ty9tu1rCwMfGKgz1JAaC2q_4esmL6QvpkHQUN8F0Ecc,2152
26
+ pydantic_ai/common_tools/tavily.py,sha256=Q1xxSF5HtXAaZ10Pp-OaDOHXwJf2mco9wScGEQXD7E4,2495
27
+ pydantic_ai/models/__init__.py,sha256=ydzV7W363CI0Uz3yfJeOc8u5VGIhRF-31rV2QCXvm18,22285
28
+ pydantic_ai/models/_json_schema.py,sha256=RD0cIU9mOGIdRuhkjLtPdlwfmF8XDOP1kLevIOLudaE,6540
29
+ pydantic_ai/models/anthropic.py,sha256=Q1gem9MieSRIbO6yxs7Fe29K7OfkXKC5IlMBwvC8epE,21360
30
+ pydantic_ai/models/bedrock.py,sha256=JCeHy0kRXJJEtZqBppdWsMZtt6aVhtvMih4CO7RT354,26368
31
+ pydantic_ai/models/cohere.py,sha256=a9dxjrH5StfvPP5CTituQsOhujO2KPHD6JOGpsx1E9o,11852
32
+ pydantic_ai/models/fallback.py,sha256=idOYGMo3CZzpCBT8DDiuPAAgnV2jzluDUq3ESb3KteM,4981
33
+ pydantic_ai/models/function.py,sha256=rnihsyakyieCGbEyxfqzvoBHnR_3LJn4x6DXQqdAAM4,11458
34
+ pydantic_ai/models/gemini.py,sha256=7KDOOBFR9pbGGGokMevoW34SdOng1_Cnscs5yBgwMSg,37429
35
+ pydantic_ai/models/google.py,sha256=j378X5YdT9HvQCHZjIHNU1sKW-o9Jdogri0y_YdjWOQ,24329
36
+ pydantic_ai/models/groq.py,sha256=px2C3oW6Yvrk695E0dzDzDRUav6XiwkjyJvjro4Tb9M,17520
37
+ pydantic_ai/models/instrumented.py,sha256=Y3SxAlP9cCX_Ch02c8qN9mrWMY9_tuyj6zMeN5Gz-W0,12356
38
+ pydantic_ai/models/mistral.py,sha256=nRFpY_QDAyH-FLYCqA9ZURPvL5r6uzMy7BJoMYzXKxk,29344
39
+ pydantic_ai/models/openai.py,sha256=hZTPmIN9DEBwTixVdkn2s2le2T9PwCXJPWf4ySh2C98,49781
40
+ pydantic_ai/models/test.py,sha256=Jlq-YQ9dhzENgmBMVerZpM4L-I2aPf7HH7ifIncyDlE,17010
41
+ pydantic_ai/models/wrapper.py,sha256=43ntRkTF7rVBYLC-Ihdo1fkwpeveOpA_1fXe1fd3W9Y,1690
42
+ pydantic_ai/providers/__init__.py,sha256=mBRULL9WaiGAgjKGY5aPQ7KatYoIOhkHSJJ3DkP6jvE,2695
43
+ pydantic_ai/providers/anthropic.py,sha256=0WzWEDseBaJ5eyEatvnDXBtDZKA9-od4BuPZn9NoTPw,2812
44
+ pydantic_ai/providers/azure.py,sha256=6liJWEgz5uHN1xkDG3J7aiMjL_twWuW7h51-RC3cLvo,4205
45
+ pydantic_ai/providers/bedrock.py,sha256=fHw3wF0qq-y0BmWfCxAX9ezQGAgeSkOtYyIS7-nT7bo,3454
46
+ pydantic_ai/providers/cohere.py,sha256=WOFZCllgVbWciF4nNkG3pCqw4poy57VEGyux2mVntbQ,2667
47
+ pydantic_ai/providers/deepseek.py,sha256=_5JPzDGWsyVyTBX-yYYdy5aZwUOWNCVgoWI-UoBamms,2193
48
+ pydantic_ai/providers/google.py,sha256=8YgEdOz4VfiSN8wMGpKWq8PsvK8u8PtvwfENsUfrp3c,5155
49
+ pydantic_ai/providers/google_gla.py,sha256=MJM7aRZRdP4kFlNg0ZHgC95O0wH02OQgbNiDQeK9fZo,1600
50
+ pydantic_ai/providers/google_vertex.py,sha256=tvokVpZvR-3DIRkyEsEYy6wZMlCKQVmUKpoSk3r3_fI,9197
51
+ pydantic_ai/providers/groq.py,sha256=DoY6qkfhuemuKB5JXhUkqG-3t1HQkxwSXoE_kHQIAK0,2788
52
+ pydantic_ai/providers/mistral.py,sha256=FAS7yKn26yWy7LTmEiBSvqe0HpTXi8_nIf824vE6RFQ,2892
53
+ pydantic_ai/providers/openai.py,sha256=ePF-QWwLkGkSE5w245gTTDVR3VoTIUqFoIhQ0TAoUiA,2866
54
+ pydantic_ai/providers/openrouter.py,sha256=ZwlpGjrHFqZefohdGJGL6MQiLOGKwu6kOCHziymJA_E,2215
55
+ pydantic_ai_slim-0.2.5.dist-info/METADATA,sha256=fynyAmGF5KX49dbbeBK_eUwB5CQ1lrR0e2mV_408vhA,3846
56
+ pydantic_ai_slim-0.2.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ pydantic_ai_slim-0.2.5.dist-info/entry_points.txt,sha256=kbKxe2VtDCYS06hsI7P3uZGxcVC08-FPt1rxeiMpIps,50
58
+ pydantic_ai_slim-0.2.5.dist-info/licenses/LICENSE,sha256=vA6Jc482lEyBBuGUfD1pYx-cM7jxvLYOxPidZ30t_PQ,1100
59
+ pydantic_ai_slim-0.2.5.dist-info/RECORD,,
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) Pydantic Services Inc. 2024 to present
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,55 +0,0 @@
1
- pydantic_ai/__init__.py,sha256=5flxyMQJVrHRMQ3MYaZf1el2ctNs0JmPClKbw2Q-Lsk,1160
2
- pydantic_ai/__main__.py,sha256=Q_zJU15DUA01YtlJ2mnaLCoId2YmgmreVEERGuQT-Y0,132
3
- pydantic_ai/_a2a.py,sha256=8nNtx6GENDt2Ej3f1ui9L-FuNQBYVELpJFfwz-y7fUw,7234
4
- pydantic_ai/_agent_graph.py,sha256=28JXHfSU78tBWZJr3ZES6gWB5wZoevyk8rMlbHDHfFc,35145
5
- pydantic_ai/_cli.py,sha256=Y-oKnWFmCzeKhDQjDbv6Lx77kbn6dHrccSObhsTWPr8,12520
6
- pydantic_ai/_griffe.py,sha256=Sf_DisE9k2TA0VFeVIK2nf1oOct5MygW86PBCACJkFA,5244
7
- pydantic_ai/_output.py,sha256=w_kBc5Lx5AmI0APbohxxYgpFd5VAwh6K0IjP7QIOu9U,11209
8
- pydantic_ai/_parts_manager.py,sha256=kG4xynxXHAr9uGFwCVqqhsGCac5a_UjFdRBucoTCXEE,12189
9
- pydantic_ai/_pydantic.py,sha256=1EO1tv-ULj3l_L1qMcC7gIOKTL2e2a-xTbUD_kqKiOg,8921
10
- pydantic_ai/_system_prompt.py,sha256=602c2jyle2R_SesOrITBDETZqsLk4BZ8Cbo8yEhmx04,1120
11
- pydantic_ai/_utils.py,sha256=Vlww1AMQMTvFfGRlFKAyvl4VrE24Lk1MH28EwVTWy8c,10122
12
- pydantic_ai/agent.py,sha256=C645hycMhltv5WkmGKwpaqN5E7312mb6vDXtyP1G7JU,93692
13
- pydantic_ai/direct.py,sha256=x2uooElhReT_kCk2uEgQDPN5--x1VTZ4gqC7n7DMxoA,8389
14
- pydantic_ai/exceptions.py,sha256=1ujJeB3jDDQ-pH5ydBYrgStvR35-GlEW0bYGTGEr4ME,3127
15
- pydantic_ai/format_as_xml.py,sha256=IINfh1evWDphGahqHNLBArB5dQ4NIqS3S-kru35ztGg,372
16
- pydantic_ai/format_prompt.py,sha256=qdKep95Sjlr7u1-qag4JwPbjoURbG0GbeU_l5ODTNw4,4466
17
- pydantic_ai/mcp.py,sha256=UsiBsg2ZuFh0OTMc-tvvxzfyW9YiPSIe6h8_KGloxqI,11312
18
- pydantic_ai/messages.py,sha256=ruZW63ZJcr9VGewM4G4dkTPaL36IvNAfdGiH9FZ5q6g,30256
19
- pydantic_ai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- pydantic_ai/result.py,sha256=DgoUd0LqNd9DWPab6iwculKYvZ5JZHuGvToj0kkibvs,27625
21
- pydantic_ai/settings.py,sha256=U2XzZ9y1fIi_L6yCGTugZRxfk7_01rk5GKSgFqySHL4,3520
22
- pydantic_ai/tools.py,sha256=Tq-Ba5_7Cx3N3iBExFy06JkelZAz_mOi-K8zLXgCBDU,16923
23
- pydantic_ai/usage.py,sha256=IRWuLZdEtxldVJXdJcVOuXQMAZ3wiRFYltMDmDclsoU,5427
24
- pydantic_ai/common_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- pydantic_ai/common_tools/duckduckgo.py,sha256=Ty9tu1rCwMfGKgz1JAaC2q_4esmL6QvpkHQUN8F0Ecc,2152
26
- pydantic_ai/common_tools/tavily.py,sha256=Q1xxSF5HtXAaZ10Pp-OaDOHXwJf2mco9wScGEQXD7E4,2495
27
- pydantic_ai/models/__init__.py,sha256=lg4OmJrNMksHgtZcQOPscB_4Nos9yWQlrcvL1mY9jyY,20016
28
- pydantic_ai/models/_json_schema.py,sha256=RD0cIU9mOGIdRuhkjLtPdlwfmF8XDOP1kLevIOLudaE,6540
29
- pydantic_ai/models/anthropic.py,sha256=0w2-XbyCTJquq8tcQzQdSiYMW3IOaWUgUiMKa0ycjhI,20952
30
- pydantic_ai/models/bedrock.py,sha256=BZcgFzhM1MzQLgzkDrtIJXTZzmcfCruDlGPOi-f1vfA,26098
31
- pydantic_ai/models/cohere.py,sha256=QXR3y8qTXkmTMVa_f0p-B0aUlqX_LEYt5x73SVzbbUI,11766
32
- pydantic_ai/models/fallback.py,sha256=AFLfpLIne56O3sjhMQANL3-RfTBli10g42D6fkpjE-c,4940
33
- pydantic_ai/models/function.py,sha256=sVmTymKCeZcmVSDDL2nzAG9aW1UP46i1EqH59cyB2pA,11437
34
- pydantic_ai/models/gemini.py,sha256=NzgRuittq3kin7jC0IW0ElO8er52a4RxILdC_kts3_8,36906
35
- pydantic_ai/models/groq.py,sha256=vEWFyg_2GhEokoBpmQ8AHoSLoe5KsBduwhfC4qumAHg,17294
36
- pydantic_ai/models/instrumented.py,sha256=3brXPUATuOpjtkttPF2V7GCqyjh8fccRtw7hAVPKBe8,11861
37
- pydantic_ai/models/mistral.py,sha256=ElYUZC4gtgoLgcaFtqXJ5XV131VWzwmn9PCfOknj93g,29061
38
- pydantic_ai/models/openai.py,sha256=06ONhqMX96ZIIrMutZPdOiqnolUYArTAByLHzlqeS3E,48350
39
- pydantic_ai/models/test.py,sha256=cupj6jiDg7DDJxEFjauDm5DgVjRoadRayplPQsGbwV0,16989
40
- pydantic_ai/models/wrapper.py,sha256=_NUXpLFkJw90Ngq-hSS23vfEzWTPNCiJdeA5HTfLlyY,1670
41
- pydantic_ai/providers/__init__.py,sha256=5NQ-LxVNGYXXcq1QaWua2Y8_QuA2GfiV852dtNRBMps,2572
42
- pydantic_ai/providers/anthropic.py,sha256=0WzWEDseBaJ5eyEatvnDXBtDZKA9-od4BuPZn9NoTPw,2812
43
- pydantic_ai/providers/azure.py,sha256=6liJWEgz5uHN1xkDG3J7aiMjL_twWuW7h51-RC3cLvo,4205
44
- pydantic_ai/providers/bedrock.py,sha256=fHw3wF0qq-y0BmWfCxAX9ezQGAgeSkOtYyIS7-nT7bo,3454
45
- pydantic_ai/providers/cohere.py,sha256=WOFZCllgVbWciF4nNkG3pCqw4poy57VEGyux2mVntbQ,2667
46
- pydantic_ai/providers/deepseek.py,sha256=_5JPzDGWsyVyTBX-yYYdy5aZwUOWNCVgoWI-UoBamms,2193
47
- pydantic_ai/providers/google_gla.py,sha256=MJM7aRZRdP4kFlNg0ZHgC95O0wH02OQgbNiDQeK9fZo,1600
48
- pydantic_ai/providers/google_vertex.py,sha256=WAwPxKTARVzs8DFs2veEUOJSur0krDOo9-JWRHvfHew,9135
49
- pydantic_ai/providers/groq.py,sha256=DoY6qkfhuemuKB5JXhUkqG-3t1HQkxwSXoE_kHQIAK0,2788
50
- pydantic_ai/providers/mistral.py,sha256=FAS7yKn26yWy7LTmEiBSvqe0HpTXi8_nIf824vE6RFQ,2892
51
- pydantic_ai/providers/openai.py,sha256=ePF-QWwLkGkSE5w245gTTDVR3VoTIUqFoIhQ0TAoUiA,2866
52
- pydantic_ai_slim-0.2.3.dist-info/METADATA,sha256=MB6ePxAOWkEBJQceXGJqkmsIUtPM6EzmwREcESHHqCk,3776
53
- pydantic_ai_slim-0.2.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
54
- pydantic_ai_slim-0.2.3.dist-info/entry_points.txt,sha256=kbKxe2VtDCYS06hsI7P3uZGxcVC08-FPt1rxeiMpIps,50
55
- pydantic_ai_slim-0.2.3.dist-info/RECORD,,