pydantic-ai 0.3.3__tar.gz → 0.3.4__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.3 → pydantic_ai-0.3.4}/PKG-INFO +3 -3
- pydantic_ai-0.3.4/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +171 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_anthropic.py +21 -5
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_instrumented.py +85 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_logfire.py +32 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/.gitignore +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/LICENSE +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/Makefile +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/README.md +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/pyproject.toml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/conftest.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/fasta2a/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/fasta2a/test_applications.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/import_examples.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_google.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_agent.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_cli.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_deps.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_direct.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_examples.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_live.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_messages.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_settings.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_tools.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/test_utils.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/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.4
|
|
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.4
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.3.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.3.4; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
pydantic_ai-0.3.4/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- application/json
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '388'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.anthropic.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
max_tokens: 4096
|
|
19
|
+
messages:
|
|
20
|
+
- content:
|
|
21
|
+
- text: What is the largest city in the user country?
|
|
22
|
+
type: text
|
|
23
|
+
role: user
|
|
24
|
+
model: claude-sonnet-4-0
|
|
25
|
+
stream: false
|
|
26
|
+
thinking:
|
|
27
|
+
budget_tokens: 3000
|
|
28
|
+
type: enabled
|
|
29
|
+
tool_choice:
|
|
30
|
+
type: auto
|
|
31
|
+
tools:
|
|
32
|
+
- description: ''
|
|
33
|
+
input_schema:
|
|
34
|
+
additionalProperties: false
|
|
35
|
+
properties: {}
|
|
36
|
+
type: object
|
|
37
|
+
name: get_user_country
|
|
38
|
+
uri: https://api.anthropic.com/v1/messages?beta=true
|
|
39
|
+
response:
|
|
40
|
+
headers:
|
|
41
|
+
connection:
|
|
42
|
+
- keep-alive
|
|
43
|
+
content-length:
|
|
44
|
+
- '1690'
|
|
45
|
+
content-type:
|
|
46
|
+
- application/json
|
|
47
|
+
strict-transport-security:
|
|
48
|
+
- max-age=31536000; includeSubDomains; preload
|
|
49
|
+
transfer-encoding:
|
|
50
|
+
- chunked
|
|
51
|
+
parsed_body:
|
|
52
|
+
content:
|
|
53
|
+
- signature: EqIECkYIBBgCKkC3YeluAxT1ZvKgL7zILjOUS+XrvAMrNCGhYQkSWCLo5jQ4hXNnnht77qVzdcdMu0YoXmEM/vTGZ2ibi8FSim41EgyvPwDsa4PKH+ZFuzEaDDNjzy/pLEbhbHFgqSIwEba/zTH5lZ6umMgWI/XKQwINUpqIRf2n6DCPpppSbV1VaZJRepT+hCJbPriicNDMKokDakK6RapHz23G6iWyJON4/PLfhUgjLgAxjk8kuVM3pH/i/m2ZpYndCJoIDX2q/UffytbMl8tb4h1bQW7XqOCERGHoF6yXiqgYs+aFaUBRqM6NvWXzPBqSUkX2zvr4FP0fEKbiAawu7JuBGXq5TuXlpRlJKEimlGDySFb5o4mW6jd60NTZaO5ULCdZUleBfnDsosHqDMJohUKyIE5kNEamEw4ZAjdGi3IkJ79L3CBaWUvnRh4e4z2UMqpztFKHvozcziMl0D1dhLI1omF+9RA8ZZYeA+vA2jgIQz6UlSe7rmcZYM0msrLZGNqu5FNYTuU+OMbYsLC6CkRnT6gvcG/7W7QlKFDYY5fpq72LoSyMrXSKJKKlA9q3PEcDvKfGOau3rxjrmEQY9y9WU+Sl/pUHMVME/VfgAPKPPGKiDiMkOa87LqN2FN1mmNVIP9H8c2sSdWmRtssR8t0EKqP2844kTEZKyJImGT/OsSUVuAMeaZkZlEbBXHowqHO5nL0UEdNPPjqwA634CEA/GAE=
|
|
54
|
+
thinking: |-
|
|
55
|
+
The user is asking about the largest city in "the user country". To answer this question, I need to first determine what country the user is in. I have a function called "get_user_country" that can help me find out the user's country. Once I have that information, I can then tell them what the largest city in that country is.
|
|
56
|
+
|
|
57
|
+
Let me call the get_user_country function first.
|
|
58
|
+
type: thinking
|
|
59
|
+
- text: I'll help you find the largest city in your country. Let me first determine which country you're in.
|
|
60
|
+
type: text
|
|
61
|
+
- id: toolu_01S1p6wo8sLNhu2gNHJMRk7D
|
|
62
|
+
input: {}
|
|
63
|
+
name: get_user_country
|
|
64
|
+
type: tool_use
|
|
65
|
+
id: msg_0171WD3hcwFRMzBbm5CNZ8sR
|
|
66
|
+
model: claude-sonnet-4-20250514
|
|
67
|
+
role: assistant
|
|
68
|
+
stop_reason: tool_use
|
|
69
|
+
stop_sequence: null
|
|
70
|
+
type: message
|
|
71
|
+
usage:
|
|
72
|
+
cache_creation_input_tokens: 0
|
|
73
|
+
cache_read_input_tokens: 0
|
|
74
|
+
input_tokens: 397
|
|
75
|
+
output_tokens: 157
|
|
76
|
+
service_tier: standard
|
|
77
|
+
status:
|
|
78
|
+
code: 200
|
|
79
|
+
message: OK
|
|
80
|
+
- request:
|
|
81
|
+
headers:
|
|
82
|
+
accept:
|
|
83
|
+
- application/json
|
|
84
|
+
accept-encoding:
|
|
85
|
+
- gzip, deflate
|
|
86
|
+
connection:
|
|
87
|
+
- keep-alive
|
|
88
|
+
content-length:
|
|
89
|
+
- '1944'
|
|
90
|
+
content-type:
|
|
91
|
+
- application/json
|
|
92
|
+
host:
|
|
93
|
+
- api.anthropic.com
|
|
94
|
+
method: POST
|
|
95
|
+
parsed_body:
|
|
96
|
+
max_tokens: 4096
|
|
97
|
+
messages:
|
|
98
|
+
- content:
|
|
99
|
+
- text: What is the largest city in the user country?
|
|
100
|
+
type: text
|
|
101
|
+
role: user
|
|
102
|
+
- content:
|
|
103
|
+
- signature: EqIECkYIBBgCKkC3YeluAxT1ZvKgL7zILjOUS+XrvAMrNCGhYQkSWCLo5jQ4hXNnnht77qVzdcdMu0YoXmEM/vTGZ2ibi8FSim41EgyvPwDsa4PKH+ZFuzEaDDNjzy/pLEbhbHFgqSIwEba/zTH5lZ6umMgWI/XKQwINUpqIRf2n6DCPpppSbV1VaZJRepT+hCJbPriicNDMKokDakK6RapHz23G6iWyJON4/PLfhUgjLgAxjk8kuVM3pH/i/m2ZpYndCJoIDX2q/UffytbMl8tb4h1bQW7XqOCERGHoF6yXiqgYs+aFaUBRqM6NvWXzPBqSUkX2zvr4FP0fEKbiAawu7JuBGXq5TuXlpRlJKEimlGDySFb5o4mW6jd60NTZaO5ULCdZUleBfnDsosHqDMJohUKyIE5kNEamEw4ZAjdGi3IkJ79L3CBaWUvnRh4e4z2UMqpztFKHvozcziMl0D1dhLI1omF+9RA8ZZYeA+vA2jgIQz6UlSe7rmcZYM0msrLZGNqu5FNYTuU+OMbYsLC6CkRnT6gvcG/7W7QlKFDYY5fpq72LoSyMrXSKJKKlA9q3PEcDvKfGOau3rxjrmEQY9y9WU+Sl/pUHMVME/VfgAPKPPGKiDiMkOa87LqN2FN1mmNVIP9H8c2sSdWmRtssR8t0EKqP2844kTEZKyJImGT/OsSUVuAMeaZkZlEbBXHowqHO5nL0UEdNPPjqwA634CEA/GAE=
|
|
104
|
+
thinking: |-
|
|
105
|
+
The user is asking about the largest city in "the user country". To answer this question, I need to first determine what country the user is in. I have a function called "get_user_country" that can help me find out the user's country. Once I have that information, I can then tell them what the largest city in that country is.
|
|
106
|
+
|
|
107
|
+
Let me call the get_user_country function first.
|
|
108
|
+
type: thinking
|
|
109
|
+
- text: I'll help you find the largest city in your country. Let me first determine which country you're in.
|
|
110
|
+
type: text
|
|
111
|
+
- id: toolu_01S1p6wo8sLNhu2gNHJMRk7D
|
|
112
|
+
input: {}
|
|
113
|
+
name: get_user_country
|
|
114
|
+
type: tool_use
|
|
115
|
+
role: assistant
|
|
116
|
+
- content:
|
|
117
|
+
- content: Mexico
|
|
118
|
+
is_error: false
|
|
119
|
+
tool_use_id: toolu_01S1p6wo8sLNhu2gNHJMRk7D
|
|
120
|
+
type: tool_result
|
|
121
|
+
role: user
|
|
122
|
+
model: claude-sonnet-4-0
|
|
123
|
+
stream: false
|
|
124
|
+
thinking:
|
|
125
|
+
budget_tokens: 3000
|
|
126
|
+
type: enabled
|
|
127
|
+
tool_choice:
|
|
128
|
+
type: auto
|
|
129
|
+
tools:
|
|
130
|
+
- description: ''
|
|
131
|
+
input_schema:
|
|
132
|
+
additionalProperties: false
|
|
133
|
+
properties: {}
|
|
134
|
+
type: object
|
|
135
|
+
name: get_user_country
|
|
136
|
+
uri: https://api.anthropic.com/v1/messages?beta=true
|
|
137
|
+
response:
|
|
138
|
+
headers:
|
|
139
|
+
connection:
|
|
140
|
+
- keep-alive
|
|
141
|
+
content-length:
|
|
142
|
+
- '769'
|
|
143
|
+
content-type:
|
|
144
|
+
- application/json
|
|
145
|
+
strict-transport-security:
|
|
146
|
+
- max-age=31536000; includeSubDomains; preload
|
|
147
|
+
transfer-encoding:
|
|
148
|
+
- chunked
|
|
149
|
+
parsed_body:
|
|
150
|
+
content:
|
|
151
|
+
- text: "Based on the information that you're in Mexico, the largest city in your country is **Mexico City** (Ciudad
|
|
152
|
+
de México). \n\nMexico City is not only the largest city in Mexico but also one of the largest metropolitan areas
|
|
153
|
+
in the world, with a metropolitan population of over 21 million people. The city proper has a population of approximately
|
|
154
|
+
9 million people and serves as the capital and political, cultural, and economic center of Mexico."
|
|
155
|
+
type: text
|
|
156
|
+
id: msg_01GrmzEM2LkXfRpLSjXSNMDa
|
|
157
|
+
model: claude-sonnet-4-20250514
|
|
158
|
+
role: assistant
|
|
159
|
+
stop_reason: end_turn
|
|
160
|
+
stop_sequence: null
|
|
161
|
+
type: message
|
|
162
|
+
usage:
|
|
163
|
+
cache_creation_input_tokens: 0
|
|
164
|
+
cache_read_input_tokens: 0
|
|
165
|
+
input_tokens: 567
|
|
166
|
+
output_tokens: 94
|
|
167
|
+
service_tier: standard
|
|
168
|
+
status:
|
|
169
|
+
code: 200
|
|
170
|
+
message: OK
|
|
171
|
+
version: 1
|
|
@@ -1356,7 +1356,6 @@ async def test_anthropic_empty_content_filtering(env: TestEnv):
|
|
|
1356
1356
|
assert len(anthropic_messages) == 0 # No messages should be added
|
|
1357
1357
|
|
|
1358
1358
|
|
|
1359
|
-
@pytest.mark.vcr()
|
|
1360
1359
|
async def test_anthropic_tool_output(allow_model_requests: None, anthropic_api_key: str):
|
|
1361
1360
|
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1362
1361
|
|
|
@@ -1451,7 +1450,6 @@ async def test_anthropic_tool_output(allow_model_requests: None, anthropic_api_k
|
|
|
1451
1450
|
)
|
|
1452
1451
|
|
|
1453
1452
|
|
|
1454
|
-
@pytest.mark.vcr()
|
|
1455
1453
|
async def test_anthropic_text_output_function(allow_model_requests: None, anthropic_api_key: str):
|
|
1456
1454
|
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1457
1455
|
|
|
@@ -1540,7 +1538,6 @@ async def test_anthropic_text_output_function(allow_model_requests: None, anthro
|
|
|
1540
1538
|
)
|
|
1541
1539
|
|
|
1542
1540
|
|
|
1543
|
-
@pytest.mark.vcr()
|
|
1544
1541
|
async def test_anthropic_prompted_output(allow_model_requests: None, anthropic_api_key: str):
|
|
1545
1542
|
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1546
1543
|
|
|
@@ -1635,7 +1632,6 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1635
1632
|
)
|
|
1636
1633
|
|
|
1637
1634
|
|
|
1638
|
-
@pytest.mark.vcr()
|
|
1639
1635
|
async def test_anthropic_prompted_output_multiple(allow_model_requests: None, anthropic_api_key: str):
|
|
1640
1636
|
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1641
1637
|
|
|
@@ -1695,7 +1691,6 @@ Don't include any text or Markdown fencing before or after.\
|
|
|
1695
1691
|
)
|
|
1696
1692
|
|
|
1697
1693
|
|
|
1698
|
-
@pytest.mark.vcr()
|
|
1699
1694
|
async def test_anthropic_native_output(allow_model_requests: None, anthropic_api_key: str):
|
|
1700
1695
|
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1701
1696
|
|
|
@@ -1707,3 +1702,24 @@ async def test_anthropic_native_output(allow_model_requests: None, anthropic_api
|
|
|
1707
1702
|
|
|
1708
1703
|
with pytest.raises(UserError, match='Structured output is not supported by the model.'):
|
|
1709
1704
|
await agent.run('What is the largest city in the user country?')
|
|
1705
|
+
|
|
1706
|
+
|
|
1707
|
+
async def test_anthropic_tool_with_thinking(allow_model_requests: None, anthropic_api_key: str):
|
|
1708
|
+
"""When using thinking with tool calls in Anthropic, we need to send the thinking part back to the provider.
|
|
1709
|
+
|
|
1710
|
+
This tests the issue raised in https://github.com/pydantic/pydantic-ai/issues/2040.
|
|
1711
|
+
"""
|
|
1712
|
+
m = AnthropicModel('claude-sonnet-4-0', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1713
|
+
settings = AnthropicModelSettings(anthropic_thinking={'type': 'enabled', 'budget_tokens': 3000})
|
|
1714
|
+
agent = Agent(m, model_settings=settings)
|
|
1715
|
+
|
|
1716
|
+
@agent.tool_plain
|
|
1717
|
+
async def get_user_country() -> str:
|
|
1718
|
+
return 'Mexico'
|
|
1719
|
+
|
|
1720
|
+
result = await agent.run('What is the largest city in the user country?')
|
|
1721
|
+
assert result.output == snapshot("""\
|
|
1722
|
+
Based on the information that you're in Mexico, the largest city in your country is **Mexico City** (Ciudad de México). \n\
|
|
1723
|
+
|
|
1724
|
+
Mexico City is not only the largest city in Mexico but also one of the largest metropolitan areas in the world, with a metropolitan population of over 21 million people. The city proper has a population of approximately 9 million people and serves as the capital and political, cultural, and economic center of Mexico.\
|
|
1725
|
+
""")
|
|
@@ -837,3 +837,88 @@ def test_messages_to_otel_events_without_binary_content(document_content: Binary
|
|
|
837
837
|
}
|
|
838
838
|
]
|
|
839
839
|
)
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
def test_messages_without_content(document_content: BinaryContent):
|
|
843
|
+
messages: list[ModelMessage] = [
|
|
844
|
+
ModelRequest(parts=[SystemPromptPart('system_prompt')]),
|
|
845
|
+
ModelResponse(parts=[TextPart('text1')]),
|
|
846
|
+
ModelRequest(
|
|
847
|
+
parts=[
|
|
848
|
+
UserPromptPart(
|
|
849
|
+
content=[
|
|
850
|
+
'user_prompt1',
|
|
851
|
+
VideoUrl('https://example.com/video.mp4'),
|
|
852
|
+
ImageUrl('https://example.com/image.png'),
|
|
853
|
+
AudioUrl('https://example.com/audio.mp3'),
|
|
854
|
+
DocumentUrl('https://example.com/document.pdf'),
|
|
855
|
+
document_content,
|
|
856
|
+
]
|
|
857
|
+
)
|
|
858
|
+
]
|
|
859
|
+
),
|
|
860
|
+
ModelResponse(parts=[TextPart('text2'), ToolCallPart(tool_name='my_tool', args={'a': 13, 'b': 4})]),
|
|
861
|
+
ModelRequest(parts=[ToolReturnPart('tool', 'tool_return_content', 'tool_call_1')]),
|
|
862
|
+
ModelRequest(parts=[RetryPromptPart('retry_prompt', tool_name='tool', tool_call_id='tool_call_2')]),
|
|
863
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt2', document_content])]),
|
|
864
|
+
]
|
|
865
|
+
settings = InstrumentationSettings(include_content=False)
|
|
866
|
+
assert [InstrumentedModel.event_to_dict(e) for e in settings.messages_to_otel_events(messages)] == snapshot(
|
|
867
|
+
[
|
|
868
|
+
{
|
|
869
|
+
'role': 'system',
|
|
870
|
+
'gen_ai.message.index': 0,
|
|
871
|
+
'event.name': 'gen_ai.system.message',
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
'role': 'assistant',
|
|
875
|
+
'gen_ai.message.index': 1,
|
|
876
|
+
'event.name': 'gen_ai.assistant.message',
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
'content': [
|
|
880
|
+
{'kind': 'text'},
|
|
881
|
+
{'kind': 'video-url'},
|
|
882
|
+
{'kind': 'image-url'},
|
|
883
|
+
{'kind': 'audio-url'},
|
|
884
|
+
{'kind': 'document-url'},
|
|
885
|
+
{'kind': 'binary', 'media_type': 'application/pdf'},
|
|
886
|
+
],
|
|
887
|
+
'role': 'user',
|
|
888
|
+
'gen_ai.message.index': 2,
|
|
889
|
+
'event.name': 'gen_ai.user.message',
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
'role': 'assistant',
|
|
893
|
+
'tool_calls': [
|
|
894
|
+
{
|
|
895
|
+
'id': IsStr(),
|
|
896
|
+
'type': 'function',
|
|
897
|
+
'function': {'name': 'my_tool', 'arguments': {'a': 13, 'b': 4}},
|
|
898
|
+
}
|
|
899
|
+
],
|
|
900
|
+
'gen_ai.message.index': 3,
|
|
901
|
+
'event.name': 'gen_ai.assistant.message',
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
'role': 'tool',
|
|
905
|
+
'id': 'tool_call_1',
|
|
906
|
+
'name': 'tool',
|
|
907
|
+
'gen_ai.message.index': 4,
|
|
908
|
+
'event.name': 'gen_ai.tool.message',
|
|
909
|
+
},
|
|
910
|
+
{
|
|
911
|
+
'role': 'tool',
|
|
912
|
+
'id': 'tool_call_2',
|
|
913
|
+
'name': 'tool',
|
|
914
|
+
'gen_ai.message.index': 5,
|
|
915
|
+
'event.name': 'gen_ai.tool.message',
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
'content': [{'kind': 'text'}, {'kind': 'binary', 'media_type': 'application/pdf'}],
|
|
919
|
+
'role': 'user',
|
|
920
|
+
'gen_ai.message.index': 6,
|
|
921
|
+
'event.name': 'gen_ai.user.message',
|
|
922
|
+
},
|
|
923
|
+
]
|
|
924
|
+
)
|
|
@@ -525,3 +525,35 @@ async def test_feedback(capfire: CaptureLogfire) -> None:
|
|
|
525
525
|
},
|
|
526
526
|
]
|
|
527
527
|
)
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
@pytest.mark.skipif(not logfire_installed, reason='logfire not installed')
|
|
531
|
+
@pytest.mark.parametrize('include_content', [True, False])
|
|
532
|
+
def test_include_tool_args_span_attributes(
|
|
533
|
+
get_logfire_summary: Callable[[], LogfireSummary],
|
|
534
|
+
include_content: bool,
|
|
535
|
+
) -> None:
|
|
536
|
+
"""Test that tool arguments are included/excluded in span attributes based on instrumentation settings."""
|
|
537
|
+
|
|
538
|
+
instrumentation_settings = InstrumentationSettings(include_content=include_content)
|
|
539
|
+
test_model = TestModel(seed=42)
|
|
540
|
+
my_agent = Agent(model=test_model, instrument=instrumentation_settings)
|
|
541
|
+
|
|
542
|
+
@my_agent.tool_plain
|
|
543
|
+
async def add_numbers(x: int, y: int) -> int:
|
|
544
|
+
"""Add two numbers together."""
|
|
545
|
+
return x + y
|
|
546
|
+
|
|
547
|
+
result = my_agent.run_sync('Add 42 and 42')
|
|
548
|
+
assert result.output == snapshot('{"add_numbers":84}')
|
|
549
|
+
|
|
550
|
+
summary = get_logfire_summary()
|
|
551
|
+
|
|
552
|
+
[tool_attributes] = [
|
|
553
|
+
attributes for attributes in summary.attributes.values() if attributes.get('gen_ai.tool.name') == 'add_numbers'
|
|
554
|
+
]
|
|
555
|
+
|
|
556
|
+
if include_content:
|
|
557
|
+
assert tool_attributes['tool_arguments'] == snapshot('{"x":42,"y":42}')
|
|
558
|
+
else:
|
|
559
|
+
assert 'tool_arguments' not in tool_attributes
|
|
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.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/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.3 → pydantic_ai-0.3.4}/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
|
{pydantic_ai-0.3.3 → pydantic_ai-0.3.4}/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
|