pydantic-ai 0.1.5__tar.gz → 0.1.6__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.
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/PKG-INFO +3 -3
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_instrumented.py +83 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/.gitignore +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/LICENSE +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/Makefile +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/README.md +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/pyproject.toml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/__init__.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/assets/dummy.pdf +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/assets/kiwi.png +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/assets/marcelo.mp3 +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/assets/small_video.mp4 +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[anthropic].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[bedrock].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[cohere].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[gemini].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[groq].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[mistral].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/cassettes/test_settings/test_stop_settings[openai].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/conftest.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/__init__.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_dataset.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_evaluator_base.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_evaluator_common.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_evaluator_context.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_evaluator_spec.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_evaluators.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_llm_as_a_judge.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_otel.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_render_numbers.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_reporting.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_reports.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/test_utils.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/evals/utils.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/example_modules/README.md +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/example_modules/bank_database.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/example_modules/fake_database.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/example_modules/weather_service.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/__init__.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_file_persistence.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_graph.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_mermaid.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_persistence.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_state.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/graph/test_utils.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/import_examples.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/json_body_serializer.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/mcp_server.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/__init__.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_anthropic_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_document_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_image_url_input_invalid_mime_type.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_multiple_parallel_tool_calls.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_anthropic/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_empty_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_anthropic_model_without_tools.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_guardrail_config.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_iter_stream.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_max_tokens.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_other_parameters.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_performance_config.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_retry.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_stream.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_structured_response.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_model_top_p.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_bedrock_multiple_documents_in_history.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_text_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_video_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_bedrock/test_video_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_cohere/test_cohere_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_cohere/test_request_simple_success_with_vcr.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_false.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_gemini_additional_properties_is_true.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_gemini_drop_exclusive_maximum.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_gemini_exclusive_minimum_and_maximum.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_gemini_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_groq/test_groq_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_groq/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_groq/test_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_mistral/test_mistral_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4.5-preview].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[gpt-4o-mini].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_max_completion_tokens[o3-mini].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_multiple_agent_tool_calls.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_openai_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_openai_instructions_with_tool_calls_keep_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_openai_model_without_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[developer].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_openai_o1_mini_system_role[system].yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai/test_user_id.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_audio_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_image_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_as_binary_content_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_image_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_builtin_tools.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_http_error.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_instructions.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_retry.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_model_simple_response_with_tool_call.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_output_type.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_effort.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_reasoning_generate_summary.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_stream.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_system_prompt.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_openai_responses/test_openai_responses_text_document_url_input.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/mock_async_stream.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_anthropic.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_bedrock.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_cohere.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_fallback.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_gemini.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_groq.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_mistral.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_model.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_model_function.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_model_names.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_model_test.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_openai.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/test_openai_responses.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/__init__.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/cassettes/test_azure/test_azure_provider_call.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/cassettes/test_google_vertex/test_vertexai_provider.yaml +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_anthropic.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_azure.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_bedrock.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_cohere.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_deepseek.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_google_gla.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_google_vertex.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_groq.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_mistral.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_openai.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/providers/test_provider_names.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_agent.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_cli.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_deps.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_examples.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_format_as_xml.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_json_body_serializer.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_live.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_logfire.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_mcp.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_messages.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_parts_manager.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_settings.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_streaming.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_tools.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_usage_limits.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/test_utils.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/typed_agent.py +0 -0
- {pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/typed_graph.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pydantic-ai
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
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.1.
|
|
31
|
+
Requires-Dist: pydantic-ai-slim[anthropic,bedrock,cli,cohere,evals,groq,mcp,mistral,openai,vertexai]==0.1.6
|
|
32
32
|
Provides-Extra: examples
|
|
33
|
-
Requires-Dist: pydantic-ai-examples==0.1.
|
|
33
|
+
Requires-Dist: pydantic-ai-examples==0.1.6; extra == 'examples'
|
|
34
34
|
Provides-Extra: logfire
|
|
35
35
|
Requires-Dist: logfire>=3.11.0; extra == 'logfire'
|
|
36
36
|
Description-Content-Type: text/markdown
|
|
@@ -12,6 +12,10 @@ from opentelemetry._events import NoOpEventLoggerProvider
|
|
|
12
12
|
from opentelemetry.trace import NoOpTracerProvider
|
|
13
13
|
|
|
14
14
|
from pydantic_ai.messages import (
|
|
15
|
+
AudioUrl,
|
|
16
|
+
BinaryContent,
|
|
17
|
+
DocumentUrl,
|
|
18
|
+
ImageUrl,
|
|
15
19
|
ModelMessage,
|
|
16
20
|
ModelRequest,
|
|
17
21
|
ModelResponse,
|
|
@@ -25,6 +29,7 @@ from pydantic_ai.messages import (
|
|
|
25
29
|
ToolCallPart,
|
|
26
30
|
ToolReturnPart,
|
|
27
31
|
UserPromptPart,
|
|
32
|
+
VideoUrl,
|
|
28
33
|
)
|
|
29
34
|
from pydantic_ai.models import Model, ModelRequestParameters, StreamedResponse
|
|
30
35
|
from pydantic_ai.models.instrumented import InstrumentationSettings, InstrumentedModel
|
|
@@ -736,3 +741,81 @@ def test_messages_to_otel_events_instructions_multiple_messages():
|
|
|
736
741
|
{'content': 'user_prompt2', 'role': 'user', 'gen_ai.message.index': 2, 'event.name': 'gen_ai.user.message'},
|
|
737
742
|
]
|
|
738
743
|
)
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
def test_messages_to_otel_events_image_url(document_content: BinaryContent):
|
|
747
|
+
messages = [
|
|
748
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt', ImageUrl('https://example.com/image.png')])]),
|
|
749
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt2', AudioUrl('https://example.com/audio.mp3')])]),
|
|
750
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt3', DocumentUrl('https://example.com/document.pdf')])]),
|
|
751
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt4', VideoUrl('https://example.com/video.mp4')])]),
|
|
752
|
+
ModelRequest(
|
|
753
|
+
parts=[
|
|
754
|
+
UserPromptPart(
|
|
755
|
+
content=[
|
|
756
|
+
'user_prompt5',
|
|
757
|
+
ImageUrl('https://example.com/image2.png'),
|
|
758
|
+
AudioUrl('https://example.com/audio2.mp3'),
|
|
759
|
+
DocumentUrl('https://example.com/document2.pdf'),
|
|
760
|
+
VideoUrl('https://example.com/video2.mp4'),
|
|
761
|
+
]
|
|
762
|
+
)
|
|
763
|
+
]
|
|
764
|
+
),
|
|
765
|
+
ModelRequest(parts=[UserPromptPart(content=['user_prompt6', document_content])]),
|
|
766
|
+
ModelResponse(parts=[TextPart('text1')]),
|
|
767
|
+
]
|
|
768
|
+
assert [
|
|
769
|
+
InstrumentedModel.event_to_dict(e) for e in InstrumentedModel.messages_to_otel_events(messages)
|
|
770
|
+
] == snapshot(
|
|
771
|
+
[
|
|
772
|
+
{
|
|
773
|
+
'content': ['user_prompt', {'kind': 'image-url', 'url': 'https://example.com/image.png'}],
|
|
774
|
+
'role': 'user',
|
|
775
|
+
'gen_ai.message.index': 0,
|
|
776
|
+
'event.name': 'gen_ai.user.message',
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
'content': ['user_prompt2', {'kind': 'audio-url', 'url': 'https://example.com/audio.mp3'}],
|
|
780
|
+
'role': 'user',
|
|
781
|
+
'gen_ai.message.index': 1,
|
|
782
|
+
'event.name': 'gen_ai.user.message',
|
|
783
|
+
},
|
|
784
|
+
{
|
|
785
|
+
'content': ['user_prompt3', {'kind': 'document-url', 'url': 'https://example.com/document.pdf'}],
|
|
786
|
+
'role': 'user',
|
|
787
|
+
'gen_ai.message.index': 2,
|
|
788
|
+
'event.name': 'gen_ai.user.message',
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
'content': ['user_prompt4', {'kind': 'video-url', 'url': 'https://example.com/video.mp4'}],
|
|
792
|
+
'role': 'user',
|
|
793
|
+
'gen_ai.message.index': 3,
|
|
794
|
+
'event.name': 'gen_ai.user.message',
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
'content': [
|
|
798
|
+
'user_prompt5',
|
|
799
|
+
{'kind': 'image-url', 'url': 'https://example.com/image2.png'},
|
|
800
|
+
{'kind': 'audio-url', 'url': 'https://example.com/audio2.mp3'},
|
|
801
|
+
{'kind': 'document-url', 'url': 'https://example.com/document2.pdf'},
|
|
802
|
+
{'kind': 'video-url', 'url': 'https://example.com/video2.mp4'},
|
|
803
|
+
],
|
|
804
|
+
'role': 'user',
|
|
805
|
+
'gen_ai.message.index': 4,
|
|
806
|
+
'event.name': 'gen_ai.user.message',
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
'content': ['user_prompt6', {'kind': 'binary'}],
|
|
810
|
+
'role': 'user',
|
|
811
|
+
'gen_ai.message.index': 5,
|
|
812
|
+
'event.name': 'gen_ai.user.message',
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
'role': 'assistant',
|
|
816
|
+
'content': 'text1',
|
|
817
|
+
'gen_ai.message.index': 6,
|
|
818
|
+
'event.name': 'gen_ai.assistant.message',
|
|
819
|
+
},
|
|
820
|
+
]
|
|
821
|
+
)
|
|
File without changes
|
|
File without changes
|
|
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.5 → pydantic_ai-0.1.6}/tests/cassettes/test_mcp/test_agent_with_stdio_server.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/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
|
{pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/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
|
{pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/tests/models/cassettes/test_gemini/test_image_url_input.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pydantic_ai-0.1.5 → pydantic_ai-0.1.6}/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
|
|
File without changes
|
|
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.5 → pydantic_ai-0.1.6}/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
|