pydantic-ai 0.4.9__tar.gz → 0.4.10__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.4.9 → pydantic_ai-0.4.10}/PKG-INFO +3 -3
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_agent.py +42 -1
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_tools.py +100 -2
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/.gitignore +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/LICENSE +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/Makefile +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/README.md +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/pyproject.toml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/assets/product_name.txt +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/conftest.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/import_examples.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_google.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_huggingface.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_github.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_moonshotai.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/providers/test_vercel.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_ag_ui.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_cli.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_deps.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_direct.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_examples.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_live.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_logfire.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_messages.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_settings.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_tenacity.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_toolsets.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/test_utils.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.10
|
|
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,11 +28,11 @@ 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[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,vertexai]==0.4.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,vertexai]==0.4.10
|
|
32
32
|
Provides-Extra: a2a
|
|
33
33
|
Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
|
|
34
34
|
Provides-Extra: examples
|
|
35
|
-
Requires-Dist: pydantic-ai-examples==0.4.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==0.4.10; extra == 'examples'
|
|
36
36
|
Provides-Extra: logfire
|
|
37
37
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
@@ -3866,7 +3866,7 @@ def test_prepare_output_tools():
|
|
|
3866
3866
|
)
|
|
3867
3867
|
|
|
3868
3868
|
|
|
3869
|
-
async def
|
|
3869
|
+
async def test_explicit_context_manager():
|
|
3870
3870
|
try:
|
|
3871
3871
|
from pydantic_ai.mcp import MCPServerStdio
|
|
3872
3872
|
except ImportError: # pragma: lax no cover
|
|
@@ -3886,6 +3886,47 @@ async def test_context_manager():
|
|
|
3886
3886
|
assert server2.is_running
|
|
3887
3887
|
|
|
3888
3888
|
|
|
3889
|
+
async def test_implicit_context_manager():
|
|
3890
|
+
try:
|
|
3891
|
+
from pydantic_ai.mcp import MCPServerStdio
|
|
3892
|
+
except ImportError: # pragma: lax no cover
|
|
3893
|
+
pytest.skip('mcp is not installed')
|
|
3894
|
+
|
|
3895
|
+
server1 = MCPServerStdio('python', ['-m', 'tests.mcp_server'])
|
|
3896
|
+
server2 = MCPServerStdio('python', ['-m', 'tests.mcp_server'])
|
|
3897
|
+
toolset = CombinedToolset([server1, PrefixedToolset(server2, 'prefix')])
|
|
3898
|
+
agent = Agent('test', toolsets=[toolset])
|
|
3899
|
+
|
|
3900
|
+
async with agent.iter(
|
|
3901
|
+
user_prompt='Hello',
|
|
3902
|
+
):
|
|
3903
|
+
assert server1.is_running
|
|
3904
|
+
assert server2.is_running
|
|
3905
|
+
|
|
3906
|
+
|
|
3907
|
+
def test_parallel_mcp_calls():
|
|
3908
|
+
try:
|
|
3909
|
+
from pydantic_ai.mcp import MCPServerStdio
|
|
3910
|
+
except ImportError: # pragma: lax no cover
|
|
3911
|
+
pytest.skip('mcp is not installed')
|
|
3912
|
+
|
|
3913
|
+
async def call_tools_parallel(messages: list[ModelMessage], info: AgentInfo) -> ModelResponse:
|
|
3914
|
+
if len(messages) == 1:
|
|
3915
|
+
return ModelResponse(
|
|
3916
|
+
parts=[
|
|
3917
|
+
ToolCallPart(tool_name='get_none'),
|
|
3918
|
+
ToolCallPart(tool_name='get_multiple_items'),
|
|
3919
|
+
]
|
|
3920
|
+
)
|
|
3921
|
+
else:
|
|
3922
|
+
return ModelResponse(parts=[TextPart('finished')])
|
|
3923
|
+
|
|
3924
|
+
server = MCPServerStdio('python', ['-m', 'tests.mcp_server'])
|
|
3925
|
+
agent = Agent(FunctionModel(call_tools_parallel), toolsets=[server])
|
|
3926
|
+
result = agent.run_sync()
|
|
3927
|
+
assert result.output == snapshot('finished')
|
|
3928
|
+
|
|
3929
|
+
|
|
3889
3930
|
def test_set_mcp_sampling_model():
|
|
3890
3931
|
try:
|
|
3891
3932
|
from pydantic_ai.mcp import MCPServerStdio
|
|
@@ -13,7 +13,16 @@ from typing_extensions import TypedDict
|
|
|
13
13
|
|
|
14
14
|
from pydantic_ai import Agent, RunContext, Tool, UserError
|
|
15
15
|
from pydantic_ai.exceptions import ModelRetry, UnexpectedModelBehavior
|
|
16
|
-
from pydantic_ai.messages import
|
|
16
|
+
from pydantic_ai.messages import (
|
|
17
|
+
ModelMessage,
|
|
18
|
+
ModelRequest,
|
|
19
|
+
ModelResponse,
|
|
20
|
+
TextPart,
|
|
21
|
+
ToolCallPart,
|
|
22
|
+
ToolReturn,
|
|
23
|
+
ToolReturnPart,
|
|
24
|
+
UserPromptPart,
|
|
25
|
+
)
|
|
17
26
|
from pydantic_ai.models.function import AgentInfo, FunctionModel
|
|
18
27
|
from pydantic_ai.models.test import TestModel
|
|
19
28
|
from pydantic_ai.output import DeferredToolCalls, ToolOutput
|
|
@@ -21,8 +30,9 @@ from pydantic_ai.tools import ToolDefinition
|
|
|
21
30
|
from pydantic_ai.toolsets.deferred import DeferredToolset
|
|
22
31
|
from pydantic_ai.toolsets.function import FunctionToolset
|
|
23
32
|
from pydantic_ai.toolsets.prefixed import PrefixedToolset
|
|
33
|
+
from pydantic_ai.usage import Usage
|
|
24
34
|
|
|
25
|
-
from .conftest import IsStr
|
|
35
|
+
from .conftest import IsDatetime, IsStr
|
|
26
36
|
|
|
27
37
|
|
|
28
38
|
def test_tool_no_ctx():
|
|
@@ -1321,3 +1331,91 @@ def test_output_type_deferred_tool_calls_by_itself():
|
|
|
1321
1331
|
def test_output_type_empty():
|
|
1322
1332
|
with pytest.raises(UserError, match='At least one output type must be provided.'):
|
|
1323
1333
|
Agent(TestModel(), output_type=[])
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
def test_parallel_tool_return():
|
|
1337
|
+
def llm(messages: list[ModelMessage], info: AgentInfo) -> ModelResponse:
|
|
1338
|
+
if len(messages) == 1:
|
|
1339
|
+
return ModelResponse(
|
|
1340
|
+
parts=[ToolCallPart('get_price', {'fruit': 'apple'}), ToolCallPart('get_price', {'fruit': 'banana'})]
|
|
1341
|
+
)
|
|
1342
|
+
else:
|
|
1343
|
+
return ModelResponse(
|
|
1344
|
+
parts=[
|
|
1345
|
+
TextPart('Done!'),
|
|
1346
|
+
]
|
|
1347
|
+
)
|
|
1348
|
+
|
|
1349
|
+
agent = Agent(FunctionModel(llm))
|
|
1350
|
+
|
|
1351
|
+
@agent.tool_plain
|
|
1352
|
+
def get_price(fruit: str) -> ToolReturn:
|
|
1353
|
+
return ToolReturn(
|
|
1354
|
+
return_value=10.0,
|
|
1355
|
+
content=f'The price of {fruit} is 10.0',
|
|
1356
|
+
metadata={'foo': 'bar'},
|
|
1357
|
+
)
|
|
1358
|
+
|
|
1359
|
+
result = agent.run_sync('What do an apple and a banana cost?')
|
|
1360
|
+
|
|
1361
|
+
assert result.all_messages() == snapshot(
|
|
1362
|
+
[
|
|
1363
|
+
ModelRequest(
|
|
1364
|
+
parts=[
|
|
1365
|
+
UserPromptPart(
|
|
1366
|
+
content='What do an apple and a banana cost?',
|
|
1367
|
+
timestamp=IsDatetime(),
|
|
1368
|
+
)
|
|
1369
|
+
]
|
|
1370
|
+
),
|
|
1371
|
+
ModelResponse(
|
|
1372
|
+
parts=[
|
|
1373
|
+
ToolCallPart(
|
|
1374
|
+
tool_name='get_price',
|
|
1375
|
+
args={'fruit': 'apple'},
|
|
1376
|
+
tool_call_id=IsStr(),
|
|
1377
|
+
),
|
|
1378
|
+
ToolCallPart(
|
|
1379
|
+
tool_name='get_price',
|
|
1380
|
+
args={'fruit': 'banana'},
|
|
1381
|
+
tool_call_id=IsStr(),
|
|
1382
|
+
),
|
|
1383
|
+
],
|
|
1384
|
+
usage=Usage(requests=1, request_tokens=58, response_tokens=10, total_tokens=68),
|
|
1385
|
+
model_name='function:llm:',
|
|
1386
|
+
timestamp=IsDatetime(),
|
|
1387
|
+
),
|
|
1388
|
+
ModelRequest(
|
|
1389
|
+
parts=[
|
|
1390
|
+
ToolReturnPart(
|
|
1391
|
+
tool_name='get_price',
|
|
1392
|
+
content=10.0,
|
|
1393
|
+
tool_call_id=IsStr(),
|
|
1394
|
+
metadata={'foo': 'bar'},
|
|
1395
|
+
timestamp=IsDatetime(),
|
|
1396
|
+
),
|
|
1397
|
+
ToolReturnPart(
|
|
1398
|
+
tool_name='get_price',
|
|
1399
|
+
content=10.0,
|
|
1400
|
+
tool_call_id=IsStr(),
|
|
1401
|
+
metadata={'foo': 'bar'},
|
|
1402
|
+
timestamp=IsDatetime(),
|
|
1403
|
+
),
|
|
1404
|
+
UserPromptPart(
|
|
1405
|
+
content='The price of apple is 10.0',
|
|
1406
|
+
timestamp=IsDatetime(),
|
|
1407
|
+
),
|
|
1408
|
+
UserPromptPart(
|
|
1409
|
+
content='The price of banana is 10.0',
|
|
1410
|
+
timestamp=IsDatetime(),
|
|
1411
|
+
),
|
|
1412
|
+
]
|
|
1413
|
+
),
|
|
1414
|
+
ModelResponse(
|
|
1415
|
+
parts=[TextPart(content='Done!')],
|
|
1416
|
+
usage=Usage(requests=1, request_tokens=76, response_tokens=11, total_tokens=87),
|
|
1417
|
+
model_name='function:llm:',
|
|
1418
|
+
timestamp=IsDatetime(),
|
|
1419
|
+
),
|
|
1420
|
+
]
|
|
1421
|
+
)
|
|
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.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/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
|
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/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
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.4.9 → pydantic_ai-0.4.10}/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.4.9 → pydantic_ai-0.4.10}/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
|