pydantic-ai 0.7.0__tar.gz → 0.7.1__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.7.0 → pydantic_ai-0.7.1}/PKG-INFO +3 -3
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/pyproject.toml +3 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_dataset.py +219 -96
- pydantic_ai-0.7.1/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml +46 -0
- pydantic_ai-0.7.1/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml +115 -0
- pydantic_ai-0.7.1/tests/models/cassettes/test_google/test_google_vertexai_model_usage_limit_exceeded.yaml +85 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_model_names/test_known_model_names.yaml +8 -0
- pydantic_ai-0.7.1/tests/models/cassettes/test_openai_responses/test_openai_responses_verbosity.yaml +67 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_fallback.py +68 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_google.py +55 -1
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model.py +8 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_openai.py +5 -4
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_openai_responses.py +14 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_usage_limits.py +7 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/.gitignore +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/LICENSE +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/Makefile +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/README.md +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/assets/product_name.txt +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_agent_with_server_not_running.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_audio_resource.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_audio_resource_link.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_image_resource_link.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_mcp/test_tool_returning_text_resource_link.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[google].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_complex_agent_run.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_complex_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_complex_agent_run_stream_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_logfire_plugin.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_multiple_agents.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_simple_agent_run_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_iter.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_override_deps_in_workflow.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_run.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_run_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_run_sync.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_sync_tool_activity_disabled.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_with_dataclass_deps_as_dict.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_with_non_dict_deps.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/cassettes/test_temporal/test_temporal_agent_with_unserializable_deps_type.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/conftest.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/example_modules/mcp_server.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/ext/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/ext/test_langchain.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/import_examples.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_pass_history_to_another_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_tool_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_anthropic_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_anthropic_tool_with_thinking.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_thinking_part_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_cohere/test_cohere_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_deepseek/test_deepseek_model_thinking_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_download_item/test_download_item_application_octet_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_download_item/test_download_item_audio_mpeg.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_download_item/test_download_item_no_content_type.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_native_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_tool_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_gemini_youtube_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_labels.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_gemini_vertex/test_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_empty_assistant_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_empty_user_prompt.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_receive_web_search_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_server_tool_receive_history_from_another_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_structured_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_model_youtube_video_url_input_with_vendor_metadata.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_native_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_prompted_output_with_tools.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_timeout.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_tool_config_any_with_tool_without_args.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_tool_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[AudioUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[DocumentUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[ImageUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (YouTube)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl (gs)].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input[VideoUrl].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_google/test_google_url_input_force_download.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_groq_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_groq_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_groq_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_hf_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_hf_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[Qwen-Qwen2.5-72B-Instruct].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[deepseek-ai-DeepSeek-R1-0528].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_max_completion_tokens[meta-llama-Llama-3.3-70B-Instruct].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_request_simple_usage.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_simple_completion.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_huggingface/test_stream_completion.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_mistral/test_mistral_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_compatible_api_with_tool_calls_without_id.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_invalid_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_model_settings_temperature_ignored_on_gpt_5.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_model_thinking_part_iter.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_native_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_responses_model_thinking_part.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_tool_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_web_search_tool_model_not_supported.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_openai_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_text_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai/test_valid_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_native_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_native_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_code_execution_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_invalid_region.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_web_search_tool_with_user_location.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_prompted_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_prompted_output_multiple.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_reasoning_model_with_temperature.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_text_output_function.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/cassettes/test_openai_responses/test_tool_output.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_deepseek.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_download_item.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_gemini_vertex.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_huggingface.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_mcp_sampling.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model_settings.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/parts_from_messages.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/cassettes/test_heroku/test_heroku_model_provider_claude_3_7_sonnet.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_fireworks.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_github.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_grok.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_heroku.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_huggingface.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_moonshotai.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_together.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/providers/test_vercel.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_ag_ui.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_agent.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_builtin_tools.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_cli.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_deps.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_direct.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_examples.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_history_processor.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_live.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_logfire.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_messages.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_settings.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_temporal.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_tenacity.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_thinking_part.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_tools.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_toolsets.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/test_utils.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.7.0 → pydantic_ai-0.7.1}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs
|
|
5
5
|
Project-URL: Homepage, https://ai.pydantic.dev
|
|
6
6
|
Project-URL: Source, https://github.com/pydantic/pydantic-ai
|
|
@@ -28,11 +28,11 @@ Classifier: Topic :: Internet
|
|
|
28
28
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Requires-Python: >=3.9
|
|
31
|
-
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,temporal,vertexai]==0.7.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[ag-ui,anthropic,bedrock,cli,cohere,evals,google,groq,huggingface,mcp,mistral,openai,retries,temporal,vertexai]==0.7.1
|
|
32
32
|
Provides-Extra: a2a
|
|
33
33
|
Requires-Dist: fasta2a>=0.4.1; extra == 'a2a'
|
|
34
34
|
Provides-Extra: examples
|
|
35
|
-
Requires-Dist: pydantic-ai-examples==0.7.
|
|
35
|
+
Requires-Dist: pydantic-ai-examples==0.7.1; extra == 'examples'
|
|
36
36
|
Provides-Extra: logfire
|
|
37
37
|
Requires-Dist: logfire>=3.14.1; extra == 'logfire'
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
@@ -102,6 +102,9 @@ dev = [
|
|
|
102
102
|
"boto3-stubs[bedrock-runtime]",
|
|
103
103
|
"strict-no-cover @ git+https://github.com/pydantic/strict-no-cover.git@7fc59da2c4dff919db2095a0f0e47101b657131d",
|
|
104
104
|
"pytest-xdist>=3.6.1",
|
|
105
|
+
# Needed for PyCharm users
|
|
106
|
+
"pip>=25.2",
|
|
107
|
+
"genai-prices>=0.0.22",
|
|
105
108
|
]
|
|
106
109
|
lint = ["mypy>=1.11.2", "pyright>=1.1.390", "ruff>=0.6.9"]
|
|
107
110
|
docs = [
|
|
@@ -7,7 +7,7 @@ from pathlib import Path
|
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
9
|
import pytest
|
|
10
|
-
from dirty_equals import HasRepr, IsNumber
|
|
10
|
+
from dirty_equals import HasRepr, IsNumber
|
|
11
11
|
from inline_snapshot import snapshot
|
|
12
12
|
from pydantic import BaseModel, TypeAdapter
|
|
13
13
|
|
|
@@ -1172,115 +1172,238 @@ async def test_evaluate_async_logfire(
|
|
|
1172
1172
|
|
|
1173
1173
|
await example_dataset.evaluate(mock_async_task)
|
|
1174
1174
|
|
|
1175
|
-
spans = capfire.exporter.exported_spans_as_dict()
|
|
1175
|
+
spans = capfire.exporter.exported_spans_as_dict(parse_json_attributes=True)
|
|
1176
1176
|
spans.sort(key=lambda s: s['start_time'])
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
'
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1177
|
+
|
|
1178
|
+
for span in spans:
|
|
1179
|
+
# These may or may not be present and may have weird values due to things running in async
|
|
1180
|
+
span['attributes'].pop('code.filepath', None)
|
|
1181
|
+
span['attributes'].pop('code.function', None)
|
|
1182
|
+
span['attributes'].pop('code.lineno', None)
|
|
1183
|
+
|
|
1184
|
+
assert [(span['name'], span['attributes']) for span in spans] == snapshot(
|
|
1185
|
+
[
|
|
1186
|
+
(
|
|
1187
|
+
'evaluate {name}',
|
|
1188
|
+
{
|
|
1189
|
+
'name': 'mock_async_task',
|
|
1190
|
+
'logfire.msg_template': 'evaluate {name}',
|
|
1191
|
+
'logfire.msg': 'evaluate mock_async_task',
|
|
1192
|
+
'logfire.span_type': 'span',
|
|
1193
|
+
'cases': [
|
|
1194
|
+
{
|
|
1195
|
+
'name': 'case1',
|
|
1196
|
+
'inputs': {'query': 'What is 2+2?'},
|
|
1197
|
+
'metadata': {'difficulty': 'easy', 'category': 'general'},
|
|
1198
|
+
'expected_output': {'answer': '4', 'confidence': 1.0},
|
|
1199
|
+
'output': {'answer': '4', 'confidence': 1.0},
|
|
1200
|
+
'metrics': {},
|
|
1201
|
+
'attributes': {},
|
|
1202
|
+
'scores': {
|
|
1203
|
+
'confidence': {
|
|
1204
|
+
'name': 'confidence',
|
|
1205
|
+
'value': 1.0,
|
|
1206
|
+
'reason': None,
|
|
1207
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1208
|
+
}
|
|
1209
|
+
},
|
|
1210
|
+
'labels': {},
|
|
1211
|
+
'assertions': {
|
|
1212
|
+
'correct': {
|
|
1213
|
+
'name': 'correct',
|
|
1214
|
+
'value': True,
|
|
1215
|
+
'reason': None,
|
|
1216
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1217
|
+
}
|
|
1218
|
+
},
|
|
1219
|
+
'task_duration': 1.0,
|
|
1220
|
+
'total_duration': 6.0,
|
|
1221
|
+
'trace_id': '00000000000000000000000000000001',
|
|
1222
|
+
'span_id': '0000000000000003',
|
|
1223
|
+
},
|
|
1224
|
+
{
|
|
1225
|
+
'name': 'case2',
|
|
1226
|
+
'inputs': {'query': 'What is the capital of France?'},
|
|
1227
|
+
'metadata': {'difficulty': 'medium', 'category': 'geography'},
|
|
1228
|
+
'expected_output': {'answer': 'Paris', 'confidence': 1.0},
|
|
1229
|
+
'output': {'answer': 'Paris', 'confidence': 1.0},
|
|
1230
|
+
'metrics': {},
|
|
1231
|
+
'attributes': {},
|
|
1232
|
+
'scores': {
|
|
1233
|
+
'confidence': {
|
|
1234
|
+
'name': 'confidence',
|
|
1235
|
+
'value': 1.0,
|
|
1236
|
+
'reason': None,
|
|
1237
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1238
|
+
}
|
|
1239
|
+
},
|
|
1240
|
+
'labels': {},
|
|
1241
|
+
'assertions': {
|
|
1242
|
+
'correct': {
|
|
1243
|
+
'name': 'correct',
|
|
1244
|
+
'value': True,
|
|
1245
|
+
'reason': None,
|
|
1246
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1247
|
+
}
|
|
1248
|
+
},
|
|
1249
|
+
'task_duration': 1.0,
|
|
1250
|
+
'total_duration': 4.0,
|
|
1251
|
+
'trace_id': '00000000000000000000000000000001',
|
|
1252
|
+
'span_id': '0000000000000007',
|
|
1253
|
+
},
|
|
1254
|
+
],
|
|
1255
|
+
'averages': {
|
|
1256
|
+
'name': 'Averages',
|
|
1257
|
+
'scores': {'confidence': 1.0},
|
|
1258
|
+
'labels': {},
|
|
1259
|
+
'metrics': {},
|
|
1260
|
+
'assertions': 1.0,
|
|
1261
|
+
'task_duration': 1.0,
|
|
1262
|
+
'total_duration': 5.0,
|
|
1263
|
+
},
|
|
1264
|
+
'logfire.json_schema': {
|
|
1265
|
+
'type': 'object',
|
|
1266
|
+
'properties': {'name': {}, 'cases': {'type': 'array'}, 'averages': {'type': 'object'}},
|
|
1267
|
+
},
|
|
1268
|
+
},
|
|
1269
|
+
),
|
|
1270
|
+
(
|
|
1271
|
+
'case: {case_name}',
|
|
1272
|
+
{
|
|
1273
|
+
'task_name': 'mock_async_task',
|
|
1205
1274
|
'case_name': 'case1',
|
|
1206
|
-
'
|
|
1207
|
-
'
|
|
1208
|
-
'
|
|
1209
|
-
'logfire.json_schema': '{"type":"object","properties":{"task_name":{},"case_name":{},"inputs":{"type":"object","title":"TaskInput","x-python-datatype":"PydanticModel"},"metadata":{"type":"object","title":"TaskMetadata","x-python-datatype":"PydanticModel"},"expected_output":{"type":"object","title":"TaskOutput","x-python-datatype":"PydanticModel"},"output":{"type":"object","title":"TaskOutput","x-python-datatype":"PydanticModel"},"task_duration":{},"metrics":{"type":"object"},"attributes":{"type":"object"},"assertions":{"type":"object"},"scores":{"type":"object"},"labels":{"type":"object"}}}',
|
|
1210
|
-
'logfire.msg': 'case: case1',
|
|
1275
|
+
'inputs': {'query': 'What is 2+2?'},
|
|
1276
|
+
'metadata': {'difficulty': 'easy', 'category': 'general'},
|
|
1277
|
+
'expected_output': {'answer': '4', 'confidence': 1.0},
|
|
1211
1278
|
'logfire.msg_template': 'case: {case_name}',
|
|
1279
|
+
'logfire.msg': 'case: case1',
|
|
1212
1280
|
'logfire.span_type': 'span',
|
|
1213
|
-
'
|
|
1214
|
-
'metrics': '{}',
|
|
1215
|
-
'output': '{"answer":"4","confidence":1.0}',
|
|
1216
|
-
'scores': '{"confidence":{"name":"confidence","value":1.0,"reason":null,"source":{"name":"SimpleEvaluator","arguments":null}}}',
|
|
1281
|
+
'output': {'answer': '4', 'confidence': 1.0},
|
|
1217
1282
|
'task_duration': 1.0,
|
|
1218
|
-
'
|
|
1283
|
+
'metrics': {},
|
|
1284
|
+
'attributes': {},
|
|
1285
|
+
'assertions': {
|
|
1286
|
+
'correct': {
|
|
1287
|
+
'name': 'correct',
|
|
1288
|
+
'value': True,
|
|
1289
|
+
'reason': None,
|
|
1290
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1291
|
+
}
|
|
1292
|
+
},
|
|
1293
|
+
'scores': {
|
|
1294
|
+
'confidence': {
|
|
1295
|
+
'name': 'confidence',
|
|
1296
|
+
'value': 1.0,
|
|
1297
|
+
'reason': None,
|
|
1298
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1299
|
+
}
|
|
1300
|
+
},
|
|
1301
|
+
'labels': {},
|
|
1302
|
+
'logfire.json_schema': {
|
|
1303
|
+
'type': 'object',
|
|
1304
|
+
'properties': {
|
|
1305
|
+
'task_name': {},
|
|
1306
|
+
'case_name': {},
|
|
1307
|
+
'inputs': {'type': 'object', 'title': 'TaskInput', 'x-python-datatype': 'PydanticModel'},
|
|
1308
|
+
'metadata': {
|
|
1309
|
+
'type': 'object',
|
|
1310
|
+
'title': 'TaskMetadata',
|
|
1311
|
+
'x-python-datatype': 'PydanticModel',
|
|
1312
|
+
},
|
|
1313
|
+
'expected_output': {
|
|
1314
|
+
'type': 'object',
|
|
1315
|
+
'title': 'TaskOutput',
|
|
1316
|
+
'x-python-datatype': 'PydanticModel',
|
|
1317
|
+
},
|
|
1318
|
+
'output': {'type': 'object', 'title': 'TaskOutput', 'x-python-datatype': 'PydanticModel'},
|
|
1319
|
+
'task_duration': {},
|
|
1320
|
+
'metrics': {'type': 'object'},
|
|
1321
|
+
'attributes': {'type': 'object'},
|
|
1322
|
+
'assertions': {'type': 'object'},
|
|
1323
|
+
'scores': {'type': 'object'},
|
|
1324
|
+
'labels': {'type': 'object'},
|
|
1325
|
+
},
|
|
1326
|
+
},
|
|
1219
1327
|
},
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
'
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
}
|
|
1226
|
-
),
|
|
1227
|
-
IsPartialDict(
|
|
1228
|
-
{
|
|
1229
|
-
'attributes': {
|
|
1230
|
-
'logfire.json_schema': '{"type":"object","properties":{"task":{}}}',
|
|
1231
|
-
'logfire.msg': 'execute mock_async_task',
|
|
1328
|
+
),
|
|
1329
|
+
(
|
|
1330
|
+
'execute {task}',
|
|
1331
|
+
{
|
|
1332
|
+
'task': 'mock_async_task',
|
|
1232
1333
|
'logfire.msg_template': 'execute {task}',
|
|
1334
|
+
'logfire.msg': 'execute mock_async_task',
|
|
1335
|
+
'logfire.json_schema': {'type': 'object', 'properties': {'task': {}}},
|
|
1233
1336
|
'logfire.span_type': 'span',
|
|
1234
|
-
'task': 'mock_async_task',
|
|
1235
1337
|
},
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
'
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
}
|
|
1242
|
-
),
|
|
1243
|
-
IsPartialDict(
|
|
1244
|
-
{
|
|
1245
|
-
'attributes': {
|
|
1246
|
-
'assertions': '{"correct":{"name":"correct","value":true,"reason":null,"source":{"name":"SimpleEvaluator","arguments":null}}}',
|
|
1247
|
-
'attributes': '{}',
|
|
1338
|
+
),
|
|
1339
|
+
(
|
|
1340
|
+
'case: {case_name}',
|
|
1341
|
+
{
|
|
1342
|
+
'task_name': 'mock_async_task',
|
|
1248
1343
|
'case_name': 'case2',
|
|
1249
|
-
'
|
|
1250
|
-
'
|
|
1251
|
-
'
|
|
1252
|
-
'logfire.json_schema': '{"type":"object","properties":{"task_name":{},"case_name":{},"inputs":{"type":"object","title":"TaskInput","x-python-datatype":"PydanticModel"},"metadata":{"type":"object","title":"TaskMetadata","x-python-datatype":"PydanticModel"},"expected_output":{"type":"object","title":"TaskOutput","x-python-datatype":"PydanticModel"},"output":{"type":"object","title":"TaskOutput","x-python-datatype":"PydanticModel"},"task_duration":{},"metrics":{"type":"object"},"attributes":{"type":"object"},"assertions":{"type":"object"},"scores":{"type":"object"},"labels":{"type":"object"}}}',
|
|
1253
|
-
'logfire.msg': 'case: case2',
|
|
1344
|
+
'inputs': {'query': 'What is the capital of France?'},
|
|
1345
|
+
'metadata': {'difficulty': 'medium', 'category': 'geography'},
|
|
1346
|
+
'expected_output': {'answer': 'Paris', 'confidence': 1.0},
|
|
1254
1347
|
'logfire.msg_template': 'case: {case_name}',
|
|
1348
|
+
'logfire.msg': 'case: case2',
|
|
1255
1349
|
'logfire.span_type': 'span',
|
|
1256
|
-
'
|
|
1257
|
-
'metrics': '{}',
|
|
1258
|
-
'output': '{"answer":"Paris","confidence":1.0}',
|
|
1259
|
-
'scores': '{"confidence":{"name":"confidence","value":1.0,"reason":null,"source":{"name":"SimpleEvaluator","arguments":null}}}',
|
|
1350
|
+
'output': {'answer': 'Paris', 'confidence': 1.0},
|
|
1260
1351
|
'task_duration': 1.0,
|
|
1261
|
-
'
|
|
1352
|
+
'metrics': {},
|
|
1353
|
+
'attributes': {},
|
|
1354
|
+
'assertions': {
|
|
1355
|
+
'correct': {
|
|
1356
|
+
'name': 'correct',
|
|
1357
|
+
'value': True,
|
|
1358
|
+
'reason': None,
|
|
1359
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1360
|
+
}
|
|
1361
|
+
},
|
|
1362
|
+
'scores': {
|
|
1363
|
+
'confidence': {
|
|
1364
|
+
'name': 'confidence',
|
|
1365
|
+
'value': 1.0,
|
|
1366
|
+
'reason': None,
|
|
1367
|
+
'source': {'name': 'SimpleEvaluator', 'arguments': None},
|
|
1368
|
+
}
|
|
1369
|
+
},
|
|
1370
|
+
'labels': {},
|
|
1371
|
+
'logfire.json_schema': {
|
|
1372
|
+
'type': 'object',
|
|
1373
|
+
'properties': {
|
|
1374
|
+
'task_name': {},
|
|
1375
|
+
'case_name': {},
|
|
1376
|
+
'inputs': {'type': 'object', 'title': 'TaskInput', 'x-python-datatype': 'PydanticModel'},
|
|
1377
|
+
'metadata': {
|
|
1378
|
+
'type': 'object',
|
|
1379
|
+
'title': 'TaskMetadata',
|
|
1380
|
+
'x-python-datatype': 'PydanticModel',
|
|
1381
|
+
},
|
|
1382
|
+
'expected_output': {
|
|
1383
|
+
'type': 'object',
|
|
1384
|
+
'title': 'TaskOutput',
|
|
1385
|
+
'x-python-datatype': 'PydanticModel',
|
|
1386
|
+
},
|
|
1387
|
+
'output': {'type': 'object', 'title': 'TaskOutput', 'x-python-datatype': 'PydanticModel'},
|
|
1388
|
+
'task_duration': {},
|
|
1389
|
+
'metrics': {'type': 'object'},
|
|
1390
|
+
'attributes': {'type': 'object'},
|
|
1391
|
+
'assertions': {'type': 'object'},
|
|
1392
|
+
'scores': {'type': 'object'},
|
|
1393
|
+
'labels': {'type': 'object'},
|
|
1394
|
+
},
|
|
1395
|
+
},
|
|
1262
1396
|
},
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
'
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
}
|
|
1269
|
-
),
|
|
1270
|
-
IsPartialDict(
|
|
1271
|
-
{
|
|
1272
|
-
'attributes': {
|
|
1273
|
-
'logfire.json_schema': '{"type":"object","properties":{"task":{}}}',
|
|
1274
|
-
'logfire.msg': 'execute mock_async_task',
|
|
1397
|
+
),
|
|
1398
|
+
(
|
|
1399
|
+
'execute {task}',
|
|
1400
|
+
{
|
|
1401
|
+
'task': 'mock_async_task',
|
|
1275
1402
|
'logfire.msg_template': 'execute {task}',
|
|
1403
|
+
'logfire.msg': 'execute mock_async_task',
|
|
1404
|
+
'logfire.json_schema': {'type': 'object', 'properties': {'task': {}}},
|
|
1276
1405
|
'logfire.span_type': 'span',
|
|
1277
|
-
'task': 'mock_async_task',
|
|
1278
1406
|
},
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
'parent': {'is_remote': False, 'span_id': 7, 'trace_id': 1},
|
|
1283
|
-
'start_time': 6000000000,
|
|
1284
|
-
}
|
|
1285
|
-
),
|
|
1286
|
-
]
|
|
1407
|
+
),
|
|
1408
|
+
]
|
|
1409
|
+
)
|
pydantic_ai-0.7.1/tests/models/cassettes/test_google/test_google_model_usage_limit_exceeded.yaml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
body: '{"contents": [{"parts": [{"text": "The quick brown fox jumps over the lazydog."}],
|
|
4
|
+
"role": "user"}]}'
|
|
5
|
+
headers:
|
|
6
|
+
Content-Type:
|
|
7
|
+
- application/json
|
|
8
|
+
user-agent:
|
|
9
|
+
- google-genai-sdk/1.26.0 gl-python/3.12.7
|
|
10
|
+
x-goog-api-client:
|
|
11
|
+
- google-genai-sdk/1.26.0 gl-python/3.12.7
|
|
12
|
+
method: post
|
|
13
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:countTokens
|
|
14
|
+
response:
|
|
15
|
+
body:
|
|
16
|
+
string: "{\n \"totalTokens\": 12,\n \"promptTokensDetails\": [\n {\n \"modality\":
|
|
17
|
+
\"TEXT\",\n \"tokenCount\": 12\n }\n ]\n}\n"
|
|
18
|
+
headers:
|
|
19
|
+
Alt-Svc:
|
|
20
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
21
|
+
Content-Type:
|
|
22
|
+
- application/json; charset=UTF-8
|
|
23
|
+
Date:
|
|
24
|
+
- Fri, 01 Aug 2025 15:59:25 GMT
|
|
25
|
+
Server:
|
|
26
|
+
- scaffolding on HTTPServer2
|
|
27
|
+
Server-Timing:
|
|
28
|
+
- gfet4t7; dur=1582
|
|
29
|
+
Transfer-Encoding:
|
|
30
|
+
- chunked
|
|
31
|
+
Vary:
|
|
32
|
+
- Origin
|
|
33
|
+
- X-Origin
|
|
34
|
+
- Referer
|
|
35
|
+
X-Content-Type-Options:
|
|
36
|
+
- nosniff
|
|
37
|
+
X-Frame-Options:
|
|
38
|
+
- SAMEORIGIN
|
|
39
|
+
X-XSS-Protection:
|
|
40
|
+
- '0'
|
|
41
|
+
content-length:
|
|
42
|
+
- '117'
|
|
43
|
+
status:
|
|
44
|
+
code: 200
|
|
45
|
+
message: OK
|
|
46
|
+
version: 1
|
pydantic_ai-0.7.1/tests/models/cassettes/test_google/test_google_model_usage_limit_not_exceeded.yaml
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- '*/*'
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '100'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- generativelanguage.googleapis.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
contents:
|
|
19
|
+
- parts:
|
|
20
|
+
- text: The quick brown fox jumps over the lazydog.
|
|
21
|
+
role: user
|
|
22
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:countTokens
|
|
23
|
+
response:
|
|
24
|
+
headers:
|
|
25
|
+
alt-svc:
|
|
26
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
27
|
+
content-length:
|
|
28
|
+
- '117'
|
|
29
|
+
content-type:
|
|
30
|
+
- application/json; charset=UTF-8
|
|
31
|
+
server-timing:
|
|
32
|
+
- gfet4t7; dur=191
|
|
33
|
+
transfer-encoding:
|
|
34
|
+
- chunked
|
|
35
|
+
vary:
|
|
36
|
+
- Origin
|
|
37
|
+
- X-Origin
|
|
38
|
+
- Referer
|
|
39
|
+
parsed_body:
|
|
40
|
+
promptTokensDetails:
|
|
41
|
+
- modality: TEXT
|
|
42
|
+
tokenCount: 12
|
|
43
|
+
totalTokens: 12
|
|
44
|
+
status:
|
|
45
|
+
code: 200
|
|
46
|
+
message: OK
|
|
47
|
+
- request:
|
|
48
|
+
headers:
|
|
49
|
+
accept:
|
|
50
|
+
- '*/*'
|
|
51
|
+
accept-encoding:
|
|
52
|
+
- gzip, deflate
|
|
53
|
+
connection:
|
|
54
|
+
- keep-alive
|
|
55
|
+
content-length:
|
|
56
|
+
- '124'
|
|
57
|
+
content-type:
|
|
58
|
+
- application/json
|
|
59
|
+
host:
|
|
60
|
+
- generativelanguage.googleapis.com
|
|
61
|
+
method: POST
|
|
62
|
+
parsed_body:
|
|
63
|
+
contents:
|
|
64
|
+
- parts:
|
|
65
|
+
- text: The quick brown fox jumps over the lazydog.
|
|
66
|
+
role: user
|
|
67
|
+
generationConfig: {}
|
|
68
|
+
uri: https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
|
|
69
|
+
response:
|
|
70
|
+
headers:
|
|
71
|
+
alt-svc:
|
|
72
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
73
|
+
content-length:
|
|
74
|
+
- '979'
|
|
75
|
+
content-type:
|
|
76
|
+
- application/json; charset=UTF-8
|
|
77
|
+
server-timing:
|
|
78
|
+
- gfet4t7; dur=4808
|
|
79
|
+
transfer-encoding:
|
|
80
|
+
- chunked
|
|
81
|
+
vary:
|
|
82
|
+
- Origin
|
|
83
|
+
- X-Origin
|
|
84
|
+
- Referer
|
|
85
|
+
parsed_body:
|
|
86
|
+
candidates:
|
|
87
|
+
- content:
|
|
88
|
+
parts:
|
|
89
|
+
- text: |-
|
|
90
|
+
That's a classic! It's famously known as a **pangram**, which means it's a sentence that contains every letter of the alphabet.
|
|
91
|
+
|
|
92
|
+
It's often used for:
|
|
93
|
+
* **Typing practice:** To ensure all keys are hit.
|
|
94
|
+
* **Displaying font samples:** Because it showcases every character.
|
|
95
|
+
|
|
96
|
+
Just a small note, it's typically written as "lazy dog" (two words) and usually ends with a period:
|
|
97
|
+
|
|
98
|
+
**The quick brown fox jumps over the lazy dog.**
|
|
99
|
+
role: model
|
|
100
|
+
finishReason: STOP
|
|
101
|
+
index: 0
|
|
102
|
+
modelVersion: gemini-2.5-flash
|
|
103
|
+
responseId: ZwudaISALoquqtsP9uCG6Qw
|
|
104
|
+
usageMetadata:
|
|
105
|
+
candidatesTokenCount: 109
|
|
106
|
+
promptTokenCount: 12
|
|
107
|
+
promptTokensDetails:
|
|
108
|
+
- modality: TEXT
|
|
109
|
+
tokenCount: 12
|
|
110
|
+
thoughtsTokenCount: 806
|
|
111
|
+
totalTokenCount: 927
|
|
112
|
+
status:
|
|
113
|
+
code: 200
|
|
114
|
+
message: OK
|
|
115
|
+
version: 1
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
body: assertion=eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiNjc4MmViNzhmMGU0MmIwMjRkNjExNjY2MTg0NWZhZTdkOTdiMDY3NyJ9.eyJpYXQiOiAxNzU1MTIyMTU5LCAiZXhwIjogMTc1NTEyNTc1OSwgImlzcyI6ICJweWRhbnRpYy1haS12ZXJ0ZXgtYWktZGV2QHB5ZGFudGljLWFpLWRldi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJhdWQiOiAiaHR0cHM6Ly9vYXV0aDIuZ29vZ2xlYXBpcy5jb20vdG9rZW4iLCAic2NvcGUiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9jbG91ZC1wbGF0Zm9ybSJ9.pnrHg7uMo_ow8OctKf4GM7Oe28kUhvzKewq0xCeaJz88bSeorgyd5ZLRtRdRhgZwiznSCevAahorDTxCVeCxenJp88UHf_5tuN6Jo7e7dcrzjA3Ta3DbQgBc_N58cGWc75JgJpE6GwDtHjehLVtIlo_qpux-FqLZL5N745-ECeKnyKmMTdkuVVArMyU96CGOss9L3xiWKukRIv-h8_uCmsoPVWQmyGEfQQOv--EIC4ERUOfwed1I-4ZyF5Z8w3dymKTHtJoRSL-fg8tn12acytLptC1eEZ2OzkZJI4UJWHmmtAy8HrZ-PqjwUiO83sC5iZcLICmCxXWUxJce5j-d_Q&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
|
|
4
|
+
headers:
|
|
5
|
+
accept:
|
|
6
|
+
- '*/*'
|
|
7
|
+
accept-encoding:
|
|
8
|
+
- gzip, deflate
|
|
9
|
+
connection:
|
|
10
|
+
- keep-alive
|
|
11
|
+
content-length:
|
|
12
|
+
- '819'
|
|
13
|
+
content-type:
|
|
14
|
+
- application/x-www-form-urlencoded
|
|
15
|
+
method: POST
|
|
16
|
+
uri: https://oauth2.googleapis.com/token
|
|
17
|
+
response:
|
|
18
|
+
headers:
|
|
19
|
+
alt-svc:
|
|
20
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
21
|
+
content-length:
|
|
22
|
+
- '1083'
|
|
23
|
+
content-type:
|
|
24
|
+
- application/json; charset=UTF-8
|
|
25
|
+
transfer-encoding:
|
|
26
|
+
- chunked
|
|
27
|
+
vary:
|
|
28
|
+
- Origin
|
|
29
|
+
- X-Origin
|
|
30
|
+
- Referer
|
|
31
|
+
parsed_body:
|
|
32
|
+
access_token: scrubbed
|
|
33
|
+
expires_in: 3599
|
|
34
|
+
token_type: Bearer
|
|
35
|
+
status:
|
|
36
|
+
code: 200
|
|
37
|
+
message: OK
|
|
38
|
+
- request:
|
|
39
|
+
headers:
|
|
40
|
+
content-type:
|
|
41
|
+
- application/json
|
|
42
|
+
method: post
|
|
43
|
+
parsed_body:
|
|
44
|
+
contents:
|
|
45
|
+
- parts:
|
|
46
|
+
- text: What is the largest city in the user country? Use the get_user_country tool and then your own world knowledge.
|
|
47
|
+
role: user
|
|
48
|
+
generationConfig:
|
|
49
|
+
max_output_tokens: 100
|
|
50
|
+
systemInstruction:
|
|
51
|
+
parts:
|
|
52
|
+
- text: You are a chatbot.
|
|
53
|
+
role: user
|
|
54
|
+
tools:
|
|
55
|
+
- functionDeclarations:
|
|
56
|
+
- description: ''
|
|
57
|
+
name: get_user_country
|
|
58
|
+
parameters:
|
|
59
|
+
properties: {}
|
|
60
|
+
type: OBJECT
|
|
61
|
+
uri: https://us-central1-aiplatform.googleapis.com/v1beta1/projects/pydantic-ai/locations/us-central1/publishers/google/models/gemini-2.0-flash:countTokens
|
|
62
|
+
response:
|
|
63
|
+
headers:
|
|
64
|
+
alt-svc:
|
|
65
|
+
- h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
|
|
66
|
+
content-length:
|
|
67
|
+
- '151'
|
|
68
|
+
content-type:
|
|
69
|
+
- application/json; charset=UTF-8
|
|
70
|
+
transfer-encoding:
|
|
71
|
+
- chunked
|
|
72
|
+
vary:
|
|
73
|
+
- Origin
|
|
74
|
+
- X-Origin
|
|
75
|
+
- Referer
|
|
76
|
+
parsed_body:
|
|
77
|
+
promptTokensDetails:
|
|
78
|
+
- modality: TEXT
|
|
79
|
+
tokenCount: 36
|
|
80
|
+
totalBillableCharacters: 123
|
|
81
|
+
totalTokens: 36
|
|
82
|
+
status:
|
|
83
|
+
code: 200
|
|
84
|
+
message: OK
|
|
85
|
+
version: 1
|
|
@@ -14,12 +14,20 @@ interactions:
|
|
|
14
14
|
uri: https://us.inference.heroku.com/available-models
|
|
15
15
|
response:
|
|
16
16
|
headers:
|
|
17
|
+
cache-control:
|
|
18
|
+
- no-cache, no-store, must-revalidate
|
|
19
|
+
connection:
|
|
20
|
+
- keep-alive
|
|
17
21
|
content-length:
|
|
18
22
|
- '760'
|
|
19
23
|
content-security-policy:
|
|
20
24
|
- default-src 'none'; frame-ancestors 'none'
|
|
21
25
|
content-type:
|
|
22
26
|
- application/json
|
|
27
|
+
expires:
|
|
28
|
+
- '0'
|
|
29
|
+
pragma:
|
|
30
|
+
- no-cache
|
|
23
31
|
strict-transport-security:
|
|
24
32
|
- max-age=63072000
|
|
25
33
|
parsed_body:
|