pydantic-ai 0.2.10__tar.gz → 0.2.11__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.2.10 → pydantic_ai-0.2.11}/PKG-INFO +3 -3
- pydantic_ai-0.2.11/tests/models/cassettes/test_anthropic/test_anthropic_model_empty_message_on_history.yaml +73 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_anthropic.py +28 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/.gitignore +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/LICENSE +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/Makefile +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/README.md +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/pyproject.toml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/conftest.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/fasta2a/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/fasta2a/test_applications.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/import_examples.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_labels_are_ignored_with_gla_provider.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_gemini_vertexai/test_labels.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_retry.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_safety_settings.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_stream.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_structured_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_thinking_config.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_top_p.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_vertex_labels.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_vertex_provider.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model_video_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_gemini_vertexai.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_google.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_model_request_parameters.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/cassettes/test_openrouter/test_openrouter_with_google_model.yaml +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_openrouter.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_a2a.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_agent.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_cli.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_deps.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_direct.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_examples.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_live.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_logfire.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_messages.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_settings.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_tools.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/test_utils.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.11
|
|
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.2.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[a2a,anthropic,bedrock,cli,cohere,evals,google,groq,mcp,mistral,openai,vertexai]==0.2.11
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.2.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.2.11; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
interactions:
|
|
2
|
+
- request:
|
|
3
|
+
headers:
|
|
4
|
+
accept:
|
|
5
|
+
- application/json
|
|
6
|
+
accept-encoding:
|
|
7
|
+
- gzip, deflate
|
|
8
|
+
connection:
|
|
9
|
+
- keep-alive
|
|
10
|
+
content-length:
|
|
11
|
+
- '281'
|
|
12
|
+
content-type:
|
|
13
|
+
- application/json
|
|
14
|
+
host:
|
|
15
|
+
- api.anthropic.com
|
|
16
|
+
method: POST
|
|
17
|
+
parsed_body:
|
|
18
|
+
max_tokens: 1024
|
|
19
|
+
messages:
|
|
20
|
+
- content:
|
|
21
|
+
- text: Hello, how can I help you?
|
|
22
|
+
type: text
|
|
23
|
+
role: assistant
|
|
24
|
+
- content:
|
|
25
|
+
- text: I need a potato!
|
|
26
|
+
type: text
|
|
27
|
+
role: user
|
|
28
|
+
model: claude-3-5-sonnet-latest
|
|
29
|
+
stream: false
|
|
30
|
+
system: |+
|
|
31
|
+
You are a helpful assistant.
|
|
32
|
+
|
|
33
|
+
uri: https://api.anthropic.com/v1/messages?beta=true
|
|
34
|
+
response:
|
|
35
|
+
headers:
|
|
36
|
+
connection:
|
|
37
|
+
- keep-alive
|
|
38
|
+
content-length:
|
|
39
|
+
- '671'
|
|
40
|
+
content-type:
|
|
41
|
+
- application/json
|
|
42
|
+
strict-transport-security:
|
|
43
|
+
- max-age=31536000; includeSubDomains; preload
|
|
44
|
+
transfer-encoding:
|
|
45
|
+
- chunked
|
|
46
|
+
parsed_body:
|
|
47
|
+
content:
|
|
48
|
+
- text: |-
|
|
49
|
+
I can't physically give you a potato since I'm a computer program. However, I can:
|
|
50
|
+
|
|
51
|
+
1. Help you find recipes that use potatoes
|
|
52
|
+
2. Give you tips on how to select, store, or cook potatoes
|
|
53
|
+
3. Share information about different potato varieties
|
|
54
|
+
4. Provide guidance on growing potatoes
|
|
55
|
+
|
|
56
|
+
What specifically would you like to know about potatoes?
|
|
57
|
+
type: text
|
|
58
|
+
id: msg_01UjnDmX3B57Drosu49sMteT
|
|
59
|
+
model: claude-3-5-sonnet-20241022
|
|
60
|
+
role: assistant
|
|
61
|
+
stop_reason: end_turn
|
|
62
|
+
stop_sequence: null
|
|
63
|
+
type: message
|
|
64
|
+
usage:
|
|
65
|
+
cache_creation_input_tokens: 0
|
|
66
|
+
cache_read_input_tokens: 0
|
|
67
|
+
input_tokens: 41
|
|
68
|
+
output_tokens: 82
|
|
69
|
+
service_tier: standard
|
|
70
|
+
status:
|
|
71
|
+
code: 200
|
|
72
|
+
message: OK
|
|
73
|
+
version: 1
|
|
@@ -1035,3 +1035,31 @@ def anth_msg(usage: BetaUsage) -> BetaMessage:
|
|
|
1035
1035
|
)
|
|
1036
1036
|
def test_usage(message_callback: Callable[[], BetaMessage | BetaRawMessageStreamEvent], usage: Usage):
|
|
1037
1037
|
assert _map_usage(message_callback()) == usage
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
@pytest.mark.vcr()
|
|
1041
|
+
async def test_anthropic_model_empty_message_on_history(allow_model_requests: None, anthropic_api_key: str):
|
|
1042
|
+
"""The Anthropic API will error if you send an empty message on the history.
|
|
1043
|
+
|
|
1044
|
+
Check <https://github.com/pydantic/pydantic-ai/pull/1027> for more details.
|
|
1045
|
+
"""
|
|
1046
|
+
m = AnthropicModel('claude-3-5-sonnet-latest', provider=AnthropicProvider(api_key=anthropic_api_key))
|
|
1047
|
+
agent = Agent(m, instructions='You are a helpful assistant.')
|
|
1048
|
+
|
|
1049
|
+
result = await agent.run(
|
|
1050
|
+
'I need a potato!',
|
|
1051
|
+
message_history=[
|
|
1052
|
+
ModelRequest(parts=[], instructions='You are a helpful assistant.', kind='request'),
|
|
1053
|
+
ModelResponse(parts=[TextPart(content='Hello, how can I help you?')], kind='response'),
|
|
1054
|
+
],
|
|
1055
|
+
)
|
|
1056
|
+
assert result.output == snapshot("""\
|
|
1057
|
+
I can't physically give you a potato since I'm a computer program. However, I can:
|
|
1058
|
+
|
|
1059
|
+
1. Help you find recipes that use potatoes
|
|
1060
|
+
2. Give you tips on how to select, store, or cook potatoes
|
|
1061
|
+
3. Share information about different potato varieties
|
|
1062
|
+
4. Provide guidance on growing potatoes
|
|
1063
|
+
|
|
1064
|
+
What specifically would you like to know about potatoes?\
|
|
1065
|
+
""")
|
|
File without changes
|
|
File without changes
|
|
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.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/cassettes/test_mcp/test_tool_returning_str.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_google/test_google_model.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_extra_headers.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_groq/test_image_url_input.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_extra_headers.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
|
{pydantic_ai-0.2.10 → pydantic_ai-0.2.11}/tests/models/cassettes/test_openai/test_user_id.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|