pydantic-ai 0.1.12__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pydantic-ai might be problematic. Click here for more details.
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/PKG-INFO +3 -3
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_gemini.py +48 -11
- pydantic_ai-0.2.0/tests/models/test_model_request_parameters.py +12 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_parts_manager.py +3 -3
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/.gitignore +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/LICENSE +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/Makefile +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/README.md +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/pyproject.toml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/__init__.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_image_resource.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_multiple_items.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_str.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_text_resource.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/conftest.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/import_examples.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_gemini/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_groq/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_groq/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_mistral/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_extra_headers.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_image_url_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_audio_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_tool_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_instrumented.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_agent.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_cli.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_deps.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_examples.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_live.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_logfire.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_messages.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_settings.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_tools.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/test_utils.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Agent Framework / shim to use Pydantic with LLMs
|
|
5
5
|
Project-URL: Homepage, https://ai.pydantic.dev
|
|
6
6
|
Project-URL: Source, https://github.com/pydantic/pydantic-ai
|
|
@@ -28,9 +28,9 @@ Classifier: Topic :: Internet
|
|
|
28
28
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Requires-Python: >=3.9
|
|
31
|
-
Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cli,cohere,evals,groq,mcp,mistral,openai,vertexai]==0.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cli,cohere,evals,groq,mcp,mistral,openai,vertexai]==0.2.0
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.2.0; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
@@ -164,9 +164,17 @@ async def test_require_response_tool(allow_model_requests: None):
|
|
|
164
164
|
|
|
165
165
|
|
|
166
166
|
async def test_json_def_replaced(allow_model_requests: None):
|
|
167
|
+
class Axis(BaseModel):
|
|
168
|
+
label: str
|
|
169
|
+
|
|
170
|
+
class Chart(BaseModel):
|
|
171
|
+
x_axis: Axis
|
|
172
|
+
y_axis: Axis
|
|
173
|
+
|
|
167
174
|
class Location(BaseModel):
|
|
168
175
|
lat: float
|
|
169
176
|
lng: float = 1.1
|
|
177
|
+
chart: Chart
|
|
170
178
|
|
|
171
179
|
class Locations(BaseModel):
|
|
172
180
|
locations: list[Location]
|
|
@@ -175,15 +183,28 @@ async def test_json_def_replaced(allow_model_requests: None):
|
|
|
175
183
|
assert json_schema == snapshot(
|
|
176
184
|
{
|
|
177
185
|
'$defs': {
|
|
186
|
+
'Axis': {
|
|
187
|
+
'properties': {'label': {'title': 'Label', 'type': 'string'}},
|
|
188
|
+
'required': ['label'],
|
|
189
|
+
'title': 'Axis',
|
|
190
|
+
'type': 'object',
|
|
191
|
+
},
|
|
192
|
+
'Chart': {
|
|
193
|
+
'properties': {'x_axis': {'$ref': '#/$defs/Axis'}, 'y_axis': {'$ref': '#/$defs/Axis'}},
|
|
194
|
+
'required': ['x_axis', 'y_axis'],
|
|
195
|
+
'title': 'Chart',
|
|
196
|
+
'type': 'object',
|
|
197
|
+
},
|
|
178
198
|
'Location': {
|
|
179
199
|
'properties': {
|
|
180
200
|
'lat': {'title': 'Lat', 'type': 'number'},
|
|
181
201
|
'lng': {'default': 1.1, 'title': 'Lng', 'type': 'number'},
|
|
202
|
+
'chart': {'$ref': '#/$defs/Chart'},
|
|
182
203
|
},
|
|
183
|
-
'required': ['lat'],
|
|
204
|
+
'required': ['lat', 'chart'],
|
|
184
205
|
'title': 'Location',
|
|
185
206
|
'type': 'object',
|
|
186
|
-
}
|
|
207
|
+
},
|
|
187
208
|
},
|
|
188
209
|
'properties': {'locations': {'items': {'$ref': '#/$defs/Location'}, 'title': 'Locations', 'type': 'array'}},
|
|
189
210
|
'required': ['locations'],
|
|
@@ -201,20 +222,36 @@ async def test_json_def_replaced(allow_model_requests: None):
|
|
|
201
222
|
mrp = ModelRequestParameters(function_tools=[], allow_text_output=True, output_tools=[output_tool])
|
|
202
223
|
mrp = m.customize_request_parameters(mrp)
|
|
203
224
|
assert m._get_tools(mrp) == snapshot(
|
|
204
|
-
|
|
205
|
-
function_declarations
|
|
206
|
-
|
|
207
|
-
name
|
|
208
|
-
description
|
|
209
|
-
parameters
|
|
225
|
+
{
|
|
226
|
+
'function_declarations': [
|
|
227
|
+
{
|
|
228
|
+
'name': 'result',
|
|
229
|
+
'description': 'This is the tool for the final Result',
|
|
230
|
+
'parameters': {
|
|
210
231
|
'properties': {
|
|
211
232
|
'locations': {
|
|
212
233
|
'items': {
|
|
213
234
|
'properties': {
|
|
214
235
|
'lat': {'type': 'number'},
|
|
215
236
|
'lng': {'type': 'number'},
|
|
237
|
+
'chart': {
|
|
238
|
+
'properties': {
|
|
239
|
+
'x_axis': {
|
|
240
|
+
'properties': {'label': {'type': 'string'}},
|
|
241
|
+
'required': ['label'],
|
|
242
|
+
'type': 'object',
|
|
243
|
+
},
|
|
244
|
+
'y_axis': {
|
|
245
|
+
'properties': {'label': {'type': 'string'}},
|
|
246
|
+
'required': ['label'],
|
|
247
|
+
'type': 'object',
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
'required': ['x_axis', 'y_axis'],
|
|
251
|
+
'type': 'object',
|
|
252
|
+
},
|
|
216
253
|
},
|
|
217
|
-
'required': ['lat'],
|
|
254
|
+
'required': ['lat', 'chart'],
|
|
218
255
|
'type': 'object',
|
|
219
256
|
},
|
|
220
257
|
'type': 'array',
|
|
@@ -223,9 +260,9 @@ async def test_json_def_replaced(allow_model_requests: None):
|
|
|
223
260
|
'required': ['locations'],
|
|
224
261
|
'type': 'object',
|
|
225
262
|
},
|
|
226
|
-
|
|
263
|
+
}
|
|
227
264
|
]
|
|
228
|
-
|
|
265
|
+
}
|
|
229
266
|
)
|
|
230
267
|
|
|
231
268
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from pydantic import TypeAdapter
|
|
2
|
+
|
|
3
|
+
from pydantic_ai.models import ModelRequestParameters
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_model_request_parameters_are_serializable():
|
|
7
|
+
params = ModelRequestParameters(function_tools=[], allow_text_output=False, output_tools=[])
|
|
8
|
+
assert TypeAdapter(ModelRequestParameters).dump_python(params) == {
|
|
9
|
+
'function_tools': [],
|
|
10
|
+
'allow_text_output': False,
|
|
11
|
+
'output_tools': [],
|
|
12
|
+
}
|
|
@@ -104,7 +104,7 @@ def test_handle_tool_call_deltas():
|
|
|
104
104
|
PartDeltaEvent(
|
|
105
105
|
index=0,
|
|
106
106
|
delta=ToolCallPartDelta(
|
|
107
|
-
tool_name_delta='1', args_delta=None, tool_call_id=
|
|
107
|
+
tool_name_delta='1', args_delta=None, tool_call_id=IsStr(), part_delta_kind='tool_call'
|
|
108
108
|
),
|
|
109
109
|
event_kind='part_delta',
|
|
110
110
|
)
|
|
@@ -118,7 +118,7 @@ def test_handle_tool_call_deltas():
|
|
|
118
118
|
PartDeltaEvent(
|
|
119
119
|
index=0,
|
|
120
120
|
delta=ToolCallPartDelta(
|
|
121
|
-
tool_name_delta=None, args_delta='"value1"}', tool_call_id=
|
|
121
|
+
tool_name_delta=None, args_delta='"value1"}', tool_call_id=IsStr(), part_delta_kind='tool_call'
|
|
122
122
|
),
|
|
123
123
|
event_kind='part_delta',
|
|
124
124
|
)
|
|
@@ -196,7 +196,7 @@ def test_handle_tool_call_part():
|
|
|
196
196
|
PartDeltaEvent(
|
|
197
197
|
index=0,
|
|
198
198
|
delta=ToolCallPartDelta(
|
|
199
|
-
tool_name_delta=None, args_delta='"value1"}', tool_call_id=
|
|
199
|
+
tool_name_delta=None, args_delta='"value1"}', tool_call_id=IsStr(), part_delta_kind='tool_call'
|
|
200
200
|
),
|
|
201
201
|
event_kind='part_delta',
|
|
202
202
|
)
|
|
File without changes
|
|
File without changes
|
|
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.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_dict.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_error.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_image.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_none.yaml
RENAMED
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_mcp/test_tool_returning_str.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/cassettes/test_settings/test_stop_settings[groq].yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.1.12 → pydantic_ai-0.2.0}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.1.12 → pydantic_ai-0.2.0}/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.1.12 → pydantic_ai-0.2.0}/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.1.12 → pydantic_ai-0.2.0}/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.1.12 → pydantic_ai-0.2.0}/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
|