pydantic-ai 0.3.5__tar.gz → 0.3.6__tar.gz

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 might be problematic. Click here for more details.

Files changed (313) hide show
  1. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/PKG-INFO +3 -3
  2. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_bedrock.py +1 -2
  3. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_google.py +2 -4
  4. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_instrumented.py +2 -0
  5. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_agent.py +3 -3
  6. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_logfire.py +42 -2
  7. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_streaming.py +20 -6
  8. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/.gitignore +0 -0
  9. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/LICENSE +0 -0
  10. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/Makefile +0 -0
  11. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/README.md +0 -0
  12. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/pyproject.toml +0 -0
  13. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/__init__.py +0 -0
  14. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/dummy.pdf +0 -0
  15. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/kiwi.png +0 -0
  16. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/marcelo.mp3 +0 -0
  17. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/small_video.mp4 +0 -0
  18. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
  19. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
  20. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
  21. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
  22. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
  23. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
  24. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
  25. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
  26. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
  27. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
  28. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
  29. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
  30. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
  31. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
  32. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
  33. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
  34. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
  35. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
  36. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/conftest.py +0 -0
  37. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/__init__.py +0 -0
  38. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_dataset.py +0 -0
  39. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_base.py +0 -0
  40. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_common.py +0 -0
  41. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_context.py +0 -0
  42. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_spec.py +0 -0
  43. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluators.py +0 -0
  44. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_llm_as_a_judge.py +0 -0
  45. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_otel.py +0 -0
  46. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_render_numbers.py +0 -0
  47. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_reporting.py +0 -0
  48. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_reports.py +0 -0
  49. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_utils.py +0 -0
  50. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/utils.py +0 -0
  51. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/README.md +0 -0
  52. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/bank_database.py +0 -0
  53. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/fake_database.py +0 -0
  54. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/mcp_server.py +0 -0
  55. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/weather_service.py +0 -0
  56. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/ext/__init__.py +0 -0
  57. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/ext/test_langchain.py +0 -0
  58. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/fasta2a/__init__.py +0 -0
  59. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/fasta2a/test_applications.py +0 -0
  60. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/__init__.py +0 -0
  61. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_file_persistence.py +0 -0
  62. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_graph.py +0 -0
  63. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_mermaid.py +0 -0
  64. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_persistence.py +0 -0
  65. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_state.py +0 -0
  66. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_utils.py +0 -0
  67. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/import_examples.py +0 -0
  68. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/json_body_serializer.py +0 -0
  69. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/mcp_server.py +0 -0
  70. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/__init__.py +0 -0
  71. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
  72. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
  73. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
  74. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
  75. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
  76. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
  77. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
  78. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
  79. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
  80. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
  81. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
  82. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
  83. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
  84. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
  85. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
  86. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
  87. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
  88. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
  89. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
  90. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
  91. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
  92. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
  93. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
  94. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
  95. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
  96. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
  97. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
  98. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
  99. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
  100. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
  101. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
  102. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
  103. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
  104. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
  105. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
  106. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
  107. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
  108. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
  109. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
  110. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
  111. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
  112. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
  113. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
  114. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
  115. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
  116. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
  117. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
  118. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
  119. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
  120. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
  121. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
  122. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
  123. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
  124. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
  125. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
  126. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
  127. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
  128. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
  129. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
  130. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
  131. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
  132. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
  133. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
  134. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
  135. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
  136. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
  137. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
  138. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
  139. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
  140. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
  141. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
  142. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
  143. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
  144. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
  145. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
  146. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
  147. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
  148. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
  149. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
  150. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
  151. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
  152. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
  153. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
  154. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
  155. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
  156. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
  157. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
  158. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
  159. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
  160. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
  161. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
  162. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
  163. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
  164. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
  165. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
  166. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
  167. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
  168. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
  169. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
  170. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
  171. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
  172. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
  173. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
  174. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
  175. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
  176. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
  177. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
  178. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
  179. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
  180. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
  181. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
  182. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
  183. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
  184. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
  185. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
  186. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
  187. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
  188. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
  189. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
  190. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
  191. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
  192. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
  193. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
  194. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
  195. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
  196. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
  197. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
  198. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
  199. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
  200. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
  201. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
  202. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
  203. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
  204. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
  205. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
  206. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
  207. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
  208. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
  209. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
  210. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
  211. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
  212. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
  213. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
  214. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
  215. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
  216. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
  217. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
  218. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
  219. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
  220. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
  221. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
  222. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
  223. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
  224. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
  225. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
  226. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
  227. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
  228. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
  229. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
  230. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
  231. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
  232. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
  233. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
  234. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
  235. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
  236. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
  237. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
  238. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
  239. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
  240. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
  241. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
  242. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
  243. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
  244. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
  245. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
  246. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
  247. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
  248. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
  249. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
  250. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
  251. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
  252. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
  253. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
  254. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
  255. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
  256. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/mock_async_stream.py +0 -0
  257. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_anthropic.py +0 -0
  258. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_cohere.py +0 -0
  259. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_deepseek.py +0 -0
  260. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_download_item.py +0 -0
  261. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_fallback.py +0 -0
  262. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_gemini.py +0 -0
  263. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_gemini_vertex.py +0 -0
  264. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_groq.py +0 -0
  265. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_mcp_sampling.py +0 -0
  266. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_mistral.py +0 -0
  267. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model.py +0 -0
  268. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_function.py +0 -0
  269. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_names.py +0 -0
  270. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_request_parameters.py +0 -0
  271. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_test.py +0 -0
  272. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_openai.py +0 -0
  273. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_openai_responses.py +0 -0
  274. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/__init__.py +0 -0
  275. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
  276. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
  277. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
  278. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
  279. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_anthropic.py +0 -0
  280. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_azure.py +0 -0
  281. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_bedrock.py +0 -0
  282. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_cohere.py +0 -0
  283. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_deepseek.py +0 -0
  284. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_fireworks.py +0 -0
  285. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_google_gla.py +0 -0
  286. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_google_vertex.py +0 -0
  287. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_grok.py +0 -0
  288. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_groq.py +0 -0
  289. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_heroku.py +0 -0
  290. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_mistral.py +0 -0
  291. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_openai.py +0 -0
  292. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_openrouter.py +0 -0
  293. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_provider_names.py +0 -0
  294. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_together.py +0 -0
  295. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_a2a.py +0 -0
  296. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_cli.py +0 -0
  297. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_deps.py +0 -0
  298. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_direct.py +0 -0
  299. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_examples.py +0 -0
  300. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_format_as_xml.py +0 -0
  301. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_history_processor.py +0 -0
  302. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_json_body_serializer.py +0 -0
  303. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_live.py +0 -0
  304. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_mcp.py +0 -0
  305. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_messages.py +0 -0
  306. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_parts_manager.py +0 -0
  307. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_settings.py +0 -0
  308. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_thinking_part.py +0 -0
  309. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_tools.py +0 -0
  310. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_usage_limits.py +0 -0
  311. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_utils.py +0 -0
  312. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/typed_agent.py +0 -0
  313. {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/typed_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pydantic-ai
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Summary: Agent Framework / shim to use Pydantic with LLMs
5
5
  Project-URL: Homepage, https://ai.pydantic.dev
6
6
  Project-URL: Source, https://github.com/pydantic/pydantic-ai
@@ -28,9 +28,9 @@ Classifier: Topic :: Internet
28
28
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Requires-Python: >=3.9
31
- Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.3.5
31
+ Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.3.6
32
32
  Provides-Extra: examples
33
- Requires-Dist: pydantic-ai-examples==0.3.5; extra == 'examples'
33
+ Requires-Dist: pydantic-ai-examples==0.3.6; extra == 'examples'
34
34
  Provides-Extra: logfire
35
35
  Requires-Dist: logfire>=3.11.0; extra == 'logfire'
36
36
  Description-Content-Type: text/markdown
@@ -413,8 +413,7 @@ async def test_bedrock_model_iter_stream(allow_model_requests: None, bedrock_pro
413
413
  content='30°C',
414
414
  tool_call_id='tooluse_lAG_zP8QRHmSYOwZzzaCqA',
415
415
  timestamp=IsDatetime(),
416
- ),
417
- tool_call_id='tooluse_lAG_zP8QRHmSYOwZzzaCqA',
416
+ )
418
417
  ),
419
418
  PartStartEvent(index=0, part=TextPart(content='The')),
420
419
  FinalResultEvent(tool_name=None, tool_call_id=None),
@@ -375,8 +375,7 @@ async def test_google_model_iter_stream(allow_model_requests: None, google_provi
375
375
  FunctionToolResultEvent(
376
376
  result=ToolReturnPart(
377
377
  tool_name='get_capital', content='Paris', tool_call_id=IsStr(), timestamp=IsDatetime()
378
- ),
379
- tool_call_id=IsStr(),
378
+ )
380
379
  ),
381
380
  PartStartEvent(
382
381
  index=0,
@@ -386,8 +385,7 @@ async def test_google_model_iter_stream(allow_model_requests: None, google_provi
386
385
  FunctionToolResultEvent(
387
386
  result=ToolReturnPart(
388
387
  tool_name='get_temperature', content='30°C', tool_call_id=IsStr(), timestamp=IsDatetime()
389
- ),
390
- tool_call_id=IsStr(),
388
+ )
391
389
  ),
392
390
  PartStartEvent(index=0, part=TextPart(content='The temperature in Paris')),
393
391
  FinalResultEvent(tool_name=None, tool_call_id=None),
@@ -240,6 +240,7 @@ Fix the errors and try again.\
240
240
  {
241
241
  'body': {
242
242
  'content': """\
243
+ Validation feedback:
243
244
  retry_prompt2
244
245
 
245
246
  Fix the errors and try again.\
@@ -619,6 +620,7 @@ Fix the errors and try again.\
619
620
  {
620
621
  'event.name': 'gen_ai.user.message',
621
622
  'content': """\
623
+ Validation feedback:
622
624
  retry_prompt2
623
625
 
624
626
  Fix the errors and try again.\
@@ -301,7 +301,7 @@ def test_plain_response_then_tuple():
301
301
  parts=[
302
302
  ToolCallPart(tool_name='final_result', args='{"response": ["foo", "bar"]}', tool_call_id=IsStr())
303
303
  ],
304
- usage=Usage(requests=1, request_tokens=72, response_tokens=8, total_tokens=80),
304
+ usage=Usage(requests=1, request_tokens=74, response_tokens=8, total_tokens=82),
305
305
  model_name='function:return_tuple:',
306
306
  timestamp=IsNow(tz=timezone.utc),
307
307
  ),
@@ -930,7 +930,7 @@ def test_output_type_text_output_function_with_retry():
930
930
  ),
931
931
  ModelResponse(
932
932
  parts=[TextPart(content='Mexico City')],
933
- usage=Usage(requests=1, request_tokens=68, response_tokens=5, total_tokens=73),
933
+ usage=Usage(requests=1, request_tokens=70, response_tokens=5, total_tokens=75),
934
934
  model_name='function:call_tool:',
935
935
  timestamp=IsDatetime(),
936
936
  ),
@@ -1584,7 +1584,7 @@ Don't include any text or Markdown fencing before or after.\
1584
1584
  ),
1585
1585
  ModelResponse(
1586
1586
  parts=[TextPart(content='{"city": "Mexico City"}')],
1587
- usage=Usage(requests=1, request_tokens=68, response_tokens=11, total_tokens=79),
1587
+ usage=Usage(requests=1, request_tokens=70, response_tokens=11, total_tokens=81),
1588
1588
  model_name='function:call_tool:',
1589
1589
  timestamp=IsDatetime(),
1590
1590
  ),
@@ -554,6 +554,46 @@ def test_include_tool_args_span_attributes(
554
554
  ]
555
555
 
556
556
  if include_content:
557
- assert tool_attributes['tool_arguments'] == snapshot('{"x":42,"y":42}')
557
+ assert tool_attributes == snapshot(
558
+ {
559
+ 'gen_ai.tool.name': 'add_numbers',
560
+ 'gen_ai.tool.call.id': IsStr(),
561
+ 'tool_arguments': '{"x":42,"y":42}',
562
+ 'tool_response': '84',
563
+ 'logfire.msg': 'running tool: add_numbers',
564
+ 'logfire.json_schema': IsJson(
565
+ snapshot(
566
+ {
567
+ 'type': 'object',
568
+ 'properties': {
569
+ 'tool_arguments': {'type': 'object'},
570
+ 'tool_response': {'type': 'object'},
571
+ 'gen_ai.tool.name': {},
572
+ 'gen_ai.tool.call.id': {},
573
+ },
574
+ }
575
+ )
576
+ ),
577
+ 'logfire.span_type': 'span',
578
+ }
579
+ )
558
580
  else:
559
- assert 'tool_arguments' not in tool_attributes
581
+ assert tool_attributes == snapshot(
582
+ {
583
+ 'gen_ai.tool.name': 'add_numbers',
584
+ 'gen_ai.tool.call.id': IsStr(),
585
+ 'logfire.msg': 'running tool: add_numbers',
586
+ 'logfire.json_schema': IsJson(
587
+ snapshot(
588
+ {
589
+ 'type': 'object',
590
+ 'properties': {
591
+ 'gen_ai.tool.name': {},
592
+ 'gen_ai.tool.call.id': {},
593
+ },
594
+ }
595
+ )
596
+ ),
597
+ 'logfire.span_type': 'span',
598
+ }
599
+ )
@@ -988,8 +988,7 @@ async def test_unknown_tool_call_events():
988
988
  tool_name='unknown_tool',
989
989
  tool_call_id=IsStr(),
990
990
  timestamp=IsNow(tz=timezone.utc),
991
- ),
992
- tool_call_id=IsStr(),
991
+ )
993
992
  ),
994
993
  FunctionToolCallEvent(
995
994
  part=ToolCallPart(tool_name='known_tool', args={'x': 5}, tool_call_id=IsStr()),
@@ -1000,8 +999,7 @@ async def test_unknown_tool_call_events():
1000
999
  content=10,
1001
1000
  tool_call_id=IsStr(),
1002
1001
  timestamp=IsNow(tz=timezone.utc),
1003
- ),
1004
- tool_call_id=IsStr(),
1002
+ )
1005
1003
  ),
1006
1004
  FunctionToolCallEvent(
1007
1005
  part=ToolCallPart(
@@ -1052,8 +1050,7 @@ async def test_output_tool_validation_failure_events():
1052
1050
  content='Output tool not used - result failed validation.',
1053
1051
  tool_call_id=IsStr(),
1054
1052
  timestamp=IsNow(tz=timezone.utc),
1055
- ),
1056
- tool_call_id=IsStr(),
1053
+ )
1057
1054
  ),
1058
1055
  ]
1059
1056
  )
@@ -1080,3 +1077,20 @@ async def test_stream_prompted_output():
1080
1077
  ]
1081
1078
  )
1082
1079
  assert result.is_complete
1080
+
1081
+
1082
+ def test_function_tool_event_tool_call_id_properties():
1083
+ """Ensure that the `tool_call_id` property on function tool events mirrors the underlying part's ID."""
1084
+ # Prepare a ToolCallPart with a fixed ID
1085
+ call_part = ToolCallPart(tool_name='sample_tool', args={'a': 1}, tool_call_id='call_id_123')
1086
+ call_event = FunctionToolCallEvent(part=call_part)
1087
+
1088
+ # The event should expose the same `tool_call_id` as the part
1089
+ assert call_event.tool_call_id == call_part.tool_call_id == 'call_id_123'
1090
+
1091
+ # Prepare a ToolReturnPart with a fixed ID
1092
+ return_part = ToolReturnPart(tool_name='sample_tool', content='ok', tool_call_id='return_id_456')
1093
+ result_event = FunctionToolResultEvent(result=return_part)
1094
+
1095
+ # The event should expose the same `tool_call_id` as the result part
1096
+ assert result_event.tool_call_id == return_part.tool_call_id == 'return_id_456'
File without changes
File without changes
File without changes
File without changes
File without changes