pydantic-ai 0.3.7__tar.gz → 0.4.0__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.7 → pydantic_ai-0.4.0}/PKG-INFO +3 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_dataset.py +3 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_otel.py +4 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_reports.py +4 -2
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_bedrock.py +3 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_gemini.py +36 -27
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_openai.py +10 -7
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_openai_responses.py +3 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_direct.py +1 -3
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_logfire.py +1 -1
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_mcp.py +1 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_messages.py +4 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_tools.py +5 -10
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/.gitignore +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/LICENSE +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/Makefile +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/README.md +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/pyproject.toml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/conftest.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/fasta2a/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/fasta2a/test_applications.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/import_examples.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_google.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_github.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_agent.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_cli.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_deps.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_examples.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_live.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_settings.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/test_utils.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/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
|
+
Version: 0.4.0
|
|
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.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.4.0
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.4.0; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
@@ -33,7 +33,7 @@ with try_import() as imports_successful:
|
|
|
33
33
|
def evaluate(self, ctx: EvaluatorContext[object, object, object]) -> EvaluatorOutput:
|
|
34
34
|
return self.output
|
|
35
35
|
|
|
36
|
-
from pydantic_evals.reporting import ReportCase
|
|
36
|
+
from pydantic_evals.reporting import ReportCase, ReportCaseAdapter
|
|
37
37
|
|
|
38
38
|
pytestmark = [pytest.mark.skipif(not imports_successful(), reason='pydantic-evals not installed'), pytest.mark.anyio]
|
|
39
39
|
|
|
@@ -196,7 +196,7 @@ async def test_evaluate(
|
|
|
196
196
|
|
|
197
197
|
assert report is not None
|
|
198
198
|
assert len(report.cases) == 2
|
|
199
|
-
assert report.cases[0]
|
|
199
|
+
assert ReportCaseAdapter.dump_python(report.cases[0]) == snapshot(
|
|
200
200
|
{
|
|
201
201
|
'assertions': {
|
|
202
202
|
'correct': {
|
|
@@ -248,7 +248,7 @@ async def test_evaluate_with_concurrency(
|
|
|
248
248
|
|
|
249
249
|
assert report is not None
|
|
250
250
|
assert len(report.cases) == 2
|
|
251
|
-
assert report.cases[0]
|
|
251
|
+
assert ReportCaseAdapter.dump_python(report.cases[0]) == snapshot(
|
|
252
252
|
{
|
|
253
253
|
'assertions': {
|
|
254
254
|
'correct': {
|
|
@@ -65,9 +65,10 @@ async def test_context_subtree_concurrent():
|
|
|
65
65
|
task1_root = tree1.roots[0]
|
|
66
66
|
assert len(task1_root.children) == 2, 'task1 should have exactly two children'
|
|
67
67
|
task1_child_names = {child.name for child in task1_root.children}
|
|
68
|
-
assert task1_child_names == {
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
assert task1_child_names == {
|
|
69
|
+
'task1_child1',
|
|
70
|
+
'task1_child2',
|
|
71
|
+
}, "task1's children should be task1_child1 and task1_child2"
|
|
71
72
|
|
|
72
73
|
# Verify that tree2 only contains spans from task2
|
|
73
74
|
assert len(tree2.roots) == 1, 'tree2 should have exactly one root span'
|
|
@@ -12,9 +12,11 @@ with try_import() as imports_successful:
|
|
|
12
12
|
from pydantic_evals.evaluators import EvaluationResult, Evaluator, EvaluatorContext
|
|
13
13
|
from pydantic_evals.reporting import (
|
|
14
14
|
EvaluationReport,
|
|
15
|
+
EvaluationReportAdapter,
|
|
15
16
|
RenderNumberConfig,
|
|
16
17
|
RenderValueConfig,
|
|
17
18
|
ReportCase,
|
|
19
|
+
ReportCaseAdapter,
|
|
18
20
|
ReportCaseAggregate,
|
|
19
21
|
)
|
|
20
22
|
|
|
@@ -157,7 +159,7 @@ async def test_report_case_aggregate():
|
|
|
157
159
|
async def test_report_serialization(sample_report: EvaluationReport):
|
|
158
160
|
"""Test serializing a report to dict."""
|
|
159
161
|
# Serialize the report
|
|
160
|
-
serialized =
|
|
162
|
+
serialized = EvaluationReportAdapter.dump_python(sample_report)
|
|
161
163
|
|
|
162
164
|
# Check the serialized structure
|
|
163
165
|
assert 'cases' in serialized
|
|
@@ -202,7 +204,7 @@ async def test_report_with_error(mock_evaluator: Evaluator[TaskInput, TaskOutput
|
|
|
202
204
|
name='error_report',
|
|
203
205
|
)
|
|
204
206
|
|
|
205
|
-
assert report.cases[0]
|
|
207
|
+
assert ReportCaseAdapter.dump_python(report.cases[0]) == snapshot(
|
|
206
208
|
{
|
|
207
209
|
'assertions': {
|
|
208
210
|
'error_evaluator': {
|
|
@@ -1443,9 +1443,9 @@ async def test_bedrock_mistral_tool_result_format(bedrock_provider: BedrockProvi
|
|
|
1443
1443
|
|
|
1444
1444
|
async def test_bedrock_anthropic_no_tool_choice(bedrock_provider: BedrockProvider):
|
|
1445
1445
|
my_tool = ToolDefinition(
|
|
1446
|
-
'my_tool',
|
|
1447
|
-
'This is my tool',
|
|
1448
|
-
{'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
1446
|
+
name='my_tool',
|
|
1447
|
+
description='This is my tool',
|
|
1448
|
+
parameters_json_schema={'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
1449
1449
|
)
|
|
1450
1450
|
mrp = ModelRequestParameters(output_mode='tool', function_tools=[my_tool], allow_text_output=False, output_tools=[])
|
|
1451
1451
|
|
|
@@ -83,14 +83,18 @@ async def test_model_tools(allow_model_requests: None):
|
|
|
83
83
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
84
84
|
tools = [
|
|
85
85
|
ToolDefinition(
|
|
86
|
-
'foo',
|
|
87
|
-
'This is foo',
|
|
88
|
-
{
|
|
86
|
+
name='foo',
|
|
87
|
+
description='This is foo',
|
|
88
|
+
parameters_json_schema={
|
|
89
|
+
'type': 'object',
|
|
90
|
+
'title': 'Foo',
|
|
91
|
+
'properties': {'bar': {'type': 'number', 'title': 'Bar'}},
|
|
92
|
+
},
|
|
89
93
|
),
|
|
90
94
|
ToolDefinition(
|
|
91
|
-
'apple',
|
|
92
|
-
'This is apple',
|
|
93
|
-
{
|
|
95
|
+
name='apple',
|
|
96
|
+
description='This is apple',
|
|
97
|
+
parameters_json_schema={
|
|
94
98
|
'type': 'object',
|
|
95
99
|
'properties': {
|
|
96
100
|
'banana': {'type': 'array', 'title': 'Banana', 'items': {'type': 'number', 'title': 'Bar'}}
|
|
@@ -99,9 +103,14 @@ async def test_model_tools(allow_model_requests: None):
|
|
|
99
103
|
),
|
|
100
104
|
]
|
|
101
105
|
output_tool = ToolDefinition(
|
|
102
|
-
'result',
|
|
103
|
-
'This is the tool for the final Result',
|
|
104
|
-
{
|
|
106
|
+
name='result',
|
|
107
|
+
description='This is the tool for the final Result',
|
|
108
|
+
parameters_json_schema={
|
|
109
|
+
'type': 'object',
|
|
110
|
+
'title': 'Result',
|
|
111
|
+
'properties': {'spam': {'type': 'number'}},
|
|
112
|
+
'required': ['spam'],
|
|
113
|
+
},
|
|
105
114
|
)
|
|
106
115
|
|
|
107
116
|
mrp = ModelRequestParameters(
|
|
@@ -148,9 +157,9 @@ async def test_model_tools(allow_model_requests: None):
|
|
|
148
157
|
async def test_require_response_tool(allow_model_requests: None):
|
|
149
158
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
150
159
|
output_tool = ToolDefinition(
|
|
151
|
-
'result',
|
|
152
|
-
'This is the tool for the final Result',
|
|
153
|
-
{'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
160
|
+
name='result',
|
|
161
|
+
description='This is the tool for the final Result',
|
|
162
|
+
parameters_json_schema={'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
154
163
|
)
|
|
155
164
|
mrp = ModelRequestParameters(
|
|
156
165
|
function_tools=[],
|
|
@@ -235,9 +244,9 @@ async def test_json_def_replaced(allow_model_requests: None):
|
|
|
235
244
|
|
|
236
245
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
237
246
|
output_tool = ToolDefinition(
|
|
238
|
-
'result',
|
|
239
|
-
'This is the tool for the final Result',
|
|
240
|
-
json_schema,
|
|
247
|
+
name='result',
|
|
248
|
+
description='This is the tool for the final Result',
|
|
249
|
+
parameters_json_schema=json_schema,
|
|
241
250
|
)
|
|
242
251
|
mrp = ModelRequestParameters(
|
|
243
252
|
function_tools=[],
|
|
@@ -320,9 +329,9 @@ async def test_json_def_enum(allow_model_requests: None):
|
|
|
320
329
|
)
|
|
321
330
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
322
331
|
output_tool = ToolDefinition(
|
|
323
|
-
'result',
|
|
324
|
-
'This is the tool for the final Result',
|
|
325
|
-
json_schema,
|
|
332
|
+
name='result',
|
|
333
|
+
description='This is the tool for the final Result',
|
|
334
|
+
parameters_json_schema=json_schema,
|
|
326
335
|
)
|
|
327
336
|
mrp = ModelRequestParameters(
|
|
328
337
|
function_tools=[],
|
|
@@ -368,9 +377,9 @@ async def test_json_def_replaced_any_of(allow_model_requests: None):
|
|
|
368
377
|
|
|
369
378
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
370
379
|
output_tool = ToolDefinition(
|
|
371
|
-
'result',
|
|
372
|
-
'This is the tool for the final Result',
|
|
373
|
-
json_schema,
|
|
380
|
+
name='result',
|
|
381
|
+
description='This is the tool for the final Result',
|
|
382
|
+
parameters_json_schema=json_schema,
|
|
374
383
|
)
|
|
375
384
|
mrp = ModelRequestParameters(
|
|
376
385
|
function_tools=[],
|
|
@@ -437,9 +446,9 @@ async def test_json_def_recursive(allow_model_requests: None):
|
|
|
437
446
|
|
|
438
447
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
439
448
|
output_tool = ToolDefinition(
|
|
440
|
-
'result',
|
|
441
|
-
'This is the tool for the final Result',
|
|
442
|
-
json_schema,
|
|
449
|
+
name='result',
|
|
450
|
+
description='This is the tool for the final Result',
|
|
451
|
+
parameters_json_schema=json_schema,
|
|
443
452
|
)
|
|
444
453
|
with pytest.raises(UserError, match=r'Recursive `\$ref`s in JSON Schema are not supported by Gemini'):
|
|
445
454
|
mrp = ModelRequestParameters(
|
|
@@ -476,9 +485,9 @@ async def test_json_def_date(allow_model_requests: None):
|
|
|
476
485
|
|
|
477
486
|
m = GeminiModel('gemini-1.5-flash', provider=GoogleGLAProvider(api_key='via-arg'))
|
|
478
487
|
output_tool = ToolDefinition(
|
|
479
|
-
'result',
|
|
480
|
-
'This is the tool for the final Result',
|
|
481
|
-
json_schema,
|
|
488
|
+
name='result',
|
|
489
|
+
description='This is the tool for the final Result',
|
|
490
|
+
parameters_json_schema=json_schema,
|
|
482
491
|
)
|
|
483
492
|
mrp = ModelRequestParameters(
|
|
484
493
|
function_tools=[],
|
|
@@ -1095,7 +1095,10 @@ def tool_with_tuples(x: tuple[int], y: tuple[str] = ('abc',)) -> str:
|
|
|
1095
1095
|
'$defs': {
|
|
1096
1096
|
'MyDefaultRecursiveDc': {
|
|
1097
1097
|
'properties': {
|
|
1098
|
-
'field': {
|
|
1098
|
+
'field': {
|
|
1099
|
+
'anyOf': [{'$ref': '#/$defs/MyDefaultRecursiveDc'}, {'type': 'null'}],
|
|
1100
|
+
'default': None,
|
|
1101
|
+
}
|
|
1099
1102
|
},
|
|
1100
1103
|
'type': 'object',
|
|
1101
1104
|
},
|
|
@@ -1213,7 +1216,7 @@ def tool_with_tuples(x: tuple[int], y: tuple[str] = ('abc',)) -> str:
|
|
|
1213
1216
|
{
|
|
1214
1217
|
'$defs': {
|
|
1215
1218
|
'MyDefaultDc': {
|
|
1216
|
-
'properties': {'x': {'type': 'integer'}},
|
|
1219
|
+
'properties': {'x': {'default': 1, 'type': 'integer'}},
|
|
1217
1220
|
'type': 'object',
|
|
1218
1221
|
}
|
|
1219
1222
|
},
|
|
@@ -1253,7 +1256,7 @@ def tool_with_tuples(x: tuple[int], y: tuple[str] = ('abc',)) -> str:
|
|
|
1253
1256
|
{
|
|
1254
1257
|
'$defs': {
|
|
1255
1258
|
'MyDefaultDc': {
|
|
1256
|
-
'properties': {'x': {'type': 'integer'}},
|
|
1259
|
+
'properties': {'x': {'default': 1, 'type': 'integer'}},
|
|
1257
1260
|
'type': 'object',
|
|
1258
1261
|
}
|
|
1259
1262
|
},
|
|
@@ -1293,7 +1296,7 @@ def tool_with_tuples(x: tuple[int], y: tuple[str] = ('abc',)) -> str:
|
|
|
1293
1296
|
{
|
|
1294
1297
|
'$defs': {
|
|
1295
1298
|
'MyDefaultDc': {
|
|
1296
|
-
'properties': {'x': {'type': 'integer'}},
|
|
1299
|
+
'properties': {'x': {'default': 1, 'type': 'integer'}},
|
|
1297
1300
|
'type': 'object',
|
|
1298
1301
|
}
|
|
1299
1302
|
},
|
|
@@ -1913,9 +1916,9 @@ def test_openai_model_profile_from_provider():
|
|
|
1913
1916
|
|
|
1914
1917
|
def test_model_profile_strict_not_supported():
|
|
1915
1918
|
my_tool = ToolDefinition(
|
|
1916
|
-
'my_tool',
|
|
1917
|
-
'This is my tool',
|
|
1918
|
-
{'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
1919
|
+
name='my_tool',
|
|
1920
|
+
description='This is my tool',
|
|
1921
|
+
parameters_json_schema={'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
1919
1922
|
strict=True,
|
|
1920
1923
|
)
|
|
1921
1924
|
|
|
@@ -473,9 +473,9 @@ async def test_openai_responses_model_instructions(allow_model_requests: None, o
|
|
|
473
473
|
|
|
474
474
|
def test_model_profile_strict_not_supported():
|
|
475
475
|
my_tool = ToolDefinition(
|
|
476
|
-
'my_tool',
|
|
477
|
-
'This is my tool',
|
|
478
|
-
{'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
476
|
+
name='my_tool',
|
|
477
|
+
description='This is my tool',
|
|
478
|
+
parameters_json_schema={'type': 'object', 'title': 'Result', 'properties': {'spam': {'type': 'number'}}},
|
|
479
479
|
strict=True,
|
|
480
480
|
)
|
|
481
481
|
|
|
@@ -54,9 +54,7 @@ async def test_model_request_tool_call():
|
|
|
54
54
|
'test',
|
|
55
55
|
[ModelRequest.user_text_prompt('x')],
|
|
56
56
|
model_request_parameters=ModelRequestParameters(
|
|
57
|
-
function_tools=[
|
|
58
|
-
ToolDefinition(name='tool_name', description='', parameters_json_schema={'type': 'object'})
|
|
59
|
-
],
|
|
57
|
+
function_tools=[ToolDefinition(name='tool_name', parameters_json_schema={'type': 'object'})],
|
|
60
58
|
allow_text_output=False,
|
|
61
59
|
),
|
|
62
60
|
)
|
|
@@ -60,6 +60,7 @@ async def test_stdio_server():
|
|
|
60
60
|
tools = await server.list_tools()
|
|
61
61
|
assert len(tools) == snapshot(13)
|
|
62
62
|
assert tools[0].name == 'celsius_to_fahrenheit'
|
|
63
|
+
assert isinstance(tools[0].description, str)
|
|
63
64
|
assert tools[0].description.startswith('Convert Celsius to Fahrenheit.')
|
|
64
65
|
|
|
65
66
|
# Test calling the temperature conversion tool
|
|
@@ -125,6 +125,10 @@ def test_binary_content_document(media_type: str, format: str):
|
|
|
125
125
|
[
|
|
126
126
|
pytest.param(AudioUrl('foobar.mp3'), 'audio/mpeg', 'mp3', id='mp3'),
|
|
127
127
|
pytest.param(AudioUrl('foobar.wav'), 'audio/wav', 'wav', id='wav'),
|
|
128
|
+
pytest.param(AudioUrl('foobar.oga'), 'audio/ogg', 'oga', id='oga'),
|
|
129
|
+
pytest.param(AudioUrl('foobar.flac'), 'audio/flac', 'flac', id='flac'),
|
|
130
|
+
pytest.param(AudioUrl('foobar.aiff'), 'audio/aiff', 'aiff', id='aiff'),
|
|
131
|
+
pytest.param(AudioUrl('foobar.aac'), 'audio/aac', 'aac', id='aac'),
|
|
128
132
|
],
|
|
129
133
|
)
|
|
130
134
|
def test_audio_url(audio_url: AudioUrl, media_type: str, format: str):
|
|
@@ -107,11 +107,6 @@ def test_docstring_google(docstring_format: Literal['google', 'auto']):
|
|
|
107
107
|
'strict': None,
|
|
108
108
|
}
|
|
109
109
|
)
|
|
110
|
-
keys = list(json_schema.keys())
|
|
111
|
-
# name should be the first key
|
|
112
|
-
assert keys[0] == 'name'
|
|
113
|
-
# description should be the second key
|
|
114
|
-
assert keys[1] == 'description'
|
|
115
110
|
|
|
116
111
|
|
|
117
112
|
def sphinx_style_docstring(foo: int, /) -> str: # pragma: no cover
|
|
@@ -444,7 +439,7 @@ def test_takes_model_and_int():
|
|
|
444
439
|
assert json_schema == snapshot(
|
|
445
440
|
{
|
|
446
441
|
'name': 'takes_just_model',
|
|
447
|
-
'description':
|
|
442
|
+
'description': None,
|
|
448
443
|
'parameters_json_schema': {
|
|
449
444
|
'$defs': {
|
|
450
445
|
'Foo': {
|
|
@@ -862,7 +857,7 @@ def test_json_schema_required_parameters():
|
|
|
862
857
|
assert json_schema == snapshot(
|
|
863
858
|
[
|
|
864
859
|
{
|
|
865
|
-
'description':
|
|
860
|
+
'description': None,
|
|
866
861
|
'name': 'my_tool',
|
|
867
862
|
'outer_typed_dict_key': None,
|
|
868
863
|
'parameters_json_schema': {
|
|
@@ -874,7 +869,7 @@ def test_json_schema_required_parameters():
|
|
|
874
869
|
'strict': None,
|
|
875
870
|
},
|
|
876
871
|
{
|
|
877
|
-
'description':
|
|
872
|
+
'description': None,
|
|
878
873
|
'name': 'my_tool_plain',
|
|
879
874
|
'outer_typed_dict_key': None,
|
|
880
875
|
'parameters_json_schema': {
|
|
@@ -960,7 +955,7 @@ def test_schema_generator():
|
|
|
960
955
|
assert json_schema == snapshot(
|
|
961
956
|
[
|
|
962
957
|
{
|
|
963
|
-
'description':
|
|
958
|
+
'description': None,
|
|
964
959
|
'name': 'my_tool_1',
|
|
965
960
|
'outer_typed_dict_key': None,
|
|
966
961
|
'parameters_json_schema': {
|
|
@@ -970,7 +965,7 @@ def test_schema_generator():
|
|
|
970
965
|
'strict': None,
|
|
971
966
|
},
|
|
972
967
|
{
|
|
973
|
-
'description':
|
|
968
|
+
'description': None,
|
|
974
969
|
'name': 'my_tool_2',
|
|
975
970
|
'outer_typed_dict_key': None,
|
|
976
971
|
'parameters_json_schema': {
|
|
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.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/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.7 → pydantic_ai-0.4.0}/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
|
{pydantic_ai-0.3.7 → pydantic_ai-0.4.0}/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
|