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.
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/PKG-INFO +3 -3
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_bedrock.py +1 -2
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_google.py +2 -4
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_instrumented.py +2 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_agent.py +3 -3
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_logfire.py +42 -2
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_streaming.py +20 -6
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/.gitignore +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/LICENSE +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/Makefile +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/README.md +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/pyproject.toml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/conftest.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/fasta2a/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/fasta2a/test_applications.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/import_examples.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/__init__.py +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {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
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {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
- {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
- {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
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {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
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {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
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_cli.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_deps.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_direct.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_examples.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_live.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_messages.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_settings.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_tools.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/test_utils.py +0 -0
- {pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/typed_agent.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_mcp/test_tool_returning_str.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/cassettes/test_settings/test_stop_settings[groq].yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini/test_video_url_input.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.5 → pydantic_ai-0.3.6}/tests/models/cassettes/test_google/test_google_model.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|