Repository Analysis

pydantic/pydantic-ai

AI Agent Framework, the Pydantic way

10.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of pydantic/pydantic-ai, a Python project with 18,505 GitHub stars. SynthScan v2.0 examined 854,891 lines of code across 1999 source files, recording 7907 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 10.2 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

10.2
Adjusted Score
10.2
Raw Score
100%
Time Factor
2026-07-14
Last Push
18.5K
Stars
Python
Language
854.9K
Lines of Code
2.0K
Files
7.9K
Pattern Hits
2026-07-14
Scan Date
0.20
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 405MEDIUM 455LOW 7047

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 7907 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers5407 hits · 3833 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_output.py107def _isinstance_maybe_generic(value: Any, type_: type[Any]) -> bool:CODE
LOWpydantic_ai_slim/pydantic_ai/_output.py132async def run_output_validate_hooks(CODE
LOWpydantic_ai_slim/pydantic_ai/_thinking_part.py6def split_content_into_text_and_thinking(content: str, thinking_tags: tuple[str, str]) -> list[ThinkingPart | TextPart]:CODE
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py146 def get_parallel_execution_mode(self) -> ParallelExecutionMode:CODE
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py500 async def validate_output_tool_call(CODE
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py825 async def resolve_deferred_tool_calls(CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py89def get_agent_run_baggage_attributes() -> dict[str, Any]:CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py147def model_request_parameters_attributes(CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py153def annotate_tool_call_otel_metadata(response: ModelResponse, parameters: ModelRequestParameters) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py482 def get_output_tool_span_name(self, tool_name: str) -> str:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py373def _narrow_native_tool_search_call(part: NativeToolCallPart) -> NativeToolSearchCallPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py380def _narrow_native_tool_search_return(part: NativeToolReturnPart) -> NativeToolSearchReturnPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py394def _narrow_tool_search_return(part: ToolReturnPart) -> ToolSearchReturnPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py442def synthesize_local_from_native_call(part: NativeToolSearchCallPart) -> ToolSearchCallPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py454def synthesize_local_from_native_return(part: NativeToolSearchReturnPart) -> ToolSearchReturnPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py471def synthesize_local_tool_search_messages(messages: list[ModelMessage]) -> list[ModelMessage]:CODE
LOWpydantic_ai_slim/pydantic_ai/_mcp.py129def map_from_sampling_content(CODE
LOWpydantic_ai_slim/pydantic_ai/tools.py349def _deferred_tool_call_result_discriminator(x: Any) -> str | None:CODE
LOWpydantic_ai_slim/pydantic_ai/tools.py426 def _named_required_fields_schema(self, named_required_fields: Sequence[tuple[str, bool, Any]]) -> JsonSchemaValue:CODE
LOWpydantic_ai_slim/pydantic_ai/_deferred_capabilities.py116def _narrow_load_capability_call(part: ToolCallPart) -> LoadCapabilityCallPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_deferred_capabilities.py123def _narrow_load_capability_return(part: ToolReturnPart) -> LoadCapabilityReturnPart:CODE
LOWpydantic_ai_slim/pydantic_ai/_deferred_capabilities.py141def parse_loaded_capabilities(messages: Sequence[ModelMessage]) -> set[str]:CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py345 def get_conflicting_type_names(signatures: list[FunctionSignature]) -> frozenset[str]:CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py381 def collect_unique_referenced_types(signatures: list[FunctionSignature]) -> list[TypeSignature]:CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py512def _build_params_from_schema(CODE
LOWpydantic_ai_slim/pydantic_ai/_function_schema.py384def _extract_return_schema_type(return_annotation: Any, function: Callable[..., Any]) -> Any:CODE
LOWpydantic_ai_slim/pydantic_ai/_spec.py37def serializes_as_string_keyed_dict(value: Any) -> bool:CODE
LOWpydantic_ai_slim/pydantic_ai/_template.py90 def __get_pydantic_core_schema__(CODE
LOWpydantic_ai_slim/pydantic_ai/_template.py168def _hint_contains_template_str(hint: Any) -> bool:CODE
LOWpydantic_ai_slim/pydantic_ai/_template.py178def _import_pydantic_handlebars() -> Any:CODE
LOWpydantic_ai_slim/pydantic_ai/result.py308 async def _stream_text_deltas_ungrouped() -> AsyncIterator[tuple[str, int]]:CODE
LOWpydantic_ai_slim/pydantic_ai/result.py953def _get_usage_checking_stream_response(CODE
LOWpydantic_ai_slim/pydantic_ai/result.py970def _get_deferred_tool_requests(CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1066 def _invalidate_resources_cache(self) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1069 def _invalidate_prompts_cache(self) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1471def _make_httpx_client_factory(CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py146def _serialize_provider_details_delta(CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py195def _multi_modal_content_identifier(identifier: str | bytes) -> str:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py984def _infer_modality_from_media_type(media_type: str) -> Literal['image', 'audio', 'video'] | None:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py995def _convert_binary_to_otel_part(CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1104def _tool_return_content_discriminator(value: Any) -> str:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1137def _validate_multimodal_or_passthrough(value: Any, handler: pydantic.ValidatorFunctionWrapHandler) -> Any:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1153def _serialize_multimodal_or_passthrough(value: Any, handler: pydantic.SerializerFunctionWrapHandler) -> Any:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1405 def model_response_str_and_user_content(self) -> tuple[str, list[UserContent]]:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2140def _model_request_part_discriminator(v: Any) -> str | None:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2179def _model_response_part_discriminator(v: Any) -> str | None:CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2654def _strip_dangling_tail_tool_calls(CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2796def _sanitize_tool_return_content(CODE
LOWpydantic_ai_slim/pydantic_ai/exceptions.py62 def __get_pydantic_core_schema__(cls, _: Any, __: Any) -> core_schema.CoreSchema:CODE
LOWpydantic_ai_slim/pydantic_ai/direct.py34def _ensure_instruction_parts(CODE
LOWpydantic_ai_slim/pydantic_ai/direct.py227def model_request_stream_sync(CODE
LOWpydantic_ai_slim/pydantic_ai/_parts_manager.py495 def _handle_embedded_thinking_start(CODE
LOWpydantic_ai_slim/pydantic_ai/_parts_manager.py504 def _handle_embedded_thinking_content(CODE
LOWpydantic_ai_slim/pydantic_ai/_parts_manager.py521 def _handle_embedded_thinking_end(self, vendor_part_id: VendorId) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py184 def check_incomplete_tool_call(self) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py408 async def _handle_deferred_tool_results(CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py455 async def _reevaluate_dynamic_prompts(CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py512async def _prepare_request_parameters(CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1597def _refresh_loaded_capability_ids(ctx: GraphRunContext[GraphAgentState, GraphAgentDeps[DepsT, Any]]) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1616def _refresh_discovered_tool_names(ctx: GraphRunContext[GraphAgentState, GraphAgentDeps[DepsT, Any]]) -> None:CODE
5347 more matches not shown…
Cross-Language Confusion212 hits · 1010 pts
SeverityFileLineSnippetContext
HIGHpydantic_ai_slim/pydantic_ai/_json_schema.py198 # they are both null, so just return one of themCOMMENT
HIGHpydantic_ai_slim/pydantic_ai/models/openai.py2054 # Some OpenAI-compatible gateways (e.g. Bifrost) return text=null;COMMENT
HIGHtests/test_temporal.py462 content='{"index": 0, "part": {"tool_name": "get_country", "args": "CODE
HIGHtests/test_temporal.py465 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py468 content='{"index": 0, "part": {"tool_name": "get_country", "args": "CODE
HIGHtests/test_temporal.py471 content='{"index": 1, "part": {"tool_name": "get_product_name", "argCODE
HIGHtests/test_temporal.py474 content='{"index": 1, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py477 content='{"index": 1, "part": {"tool_name": "get_product_name", "argCODE
HIGHtests/test_temporal.py567 content='{"index": 0, "part": {"tool_name": "get_weather", "args": "CODE
HIGHtests/test_temporal.py570 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py573 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py576 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py579 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py582 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py585 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py588 content='{"index": 0, "part": {"tool_name": "get_weather", "args": "CODE
HIGHtests/test_temporal.py648 content='{"index": 0, "part": {"tool_name": "final_result", "args": CODE
HIGHtests/test_temporal.py651 content='{"tool_name": "final_result", "tool_call_id": null, "event_CODE
HIGHtests/test_temporal.py654 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py657 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py660 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py663 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py666 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py669 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py672 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py675 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py678 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py681 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py684 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py687 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py690 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py693 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py696 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py699 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py702 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py705 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py708 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py711 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py714 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py717 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py720 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py723 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py726 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py729 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py732 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py735 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py738 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py741 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py744 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py747 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py750 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py753 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py756 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py759 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py762 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py765 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py768 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py771 content='{"index": 0, "delta": {"tool_name_delta": null, "args_deltaCODE
HIGHtests/test_temporal.py774 content='{"index": 0, "part": {"tool_name": "final_result", "args": CODE
HIGHtests/test_temporal.py493 content='{"part": {"tool_name": "get_country", "args": "{}", "tool_call_id":CODE
152 more matches not shown…
Decorative Section Separators197 hits · 694 pts
SeverityFileLineSnippetContext
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py33# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py35# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py90# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py92# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py432# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py434# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py780# =============================================================================COMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/function_signature.py782# =============================================================================COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py126 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py128 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py242 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py244 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py281 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py283 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py411 # ------------------------------------------------------------------COMMENT
MEDIUM…ic_ai_slim/pydantic_ai/capabilities/instrumentation.py413 # ------------------------------------------------------------------COMMENT
MEDIUMtests/test_temporal.py3637# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3639# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3139# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3142# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3185# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3188# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3548# ============================================================================COMMENT
MEDIUMtests/test_temporal.py3550# ============================================================================COMMENT
MEDIUMtests/test_function_signature.py577# =============================================================================STRING
MEDIUMtests/test_function_signature.py579# =============================================================================STRING
MEDIUMtests/test_function_signature.py679# =============================================================================STRING
MEDIUMtests/test_function_signature.py681# =============================================================================STRING
MEDIUMtests/test_function_signature.py1006# =============================================================================STRING
MEDIUMtests/test_function_signature.py1008# =============================================================================STRING
MEDIUMtests/test_streaming_errors.py211# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py213# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py330# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py332# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py439# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py441# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py527# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py529# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py625# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py627# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py721# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py723# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py931# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py933# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py166# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py168# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py757# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py759# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py846# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_streaming_errors.py848# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py113# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py161# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py163# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py952# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py954# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py1017# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py1019# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_thinking.py77# ---------------------------------------------------------------------------COMMENT
137 more matches not shown…
Unused Imports796 hits · 683 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_output.py1CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py14CODE
LOWpydantic_ai_slim/pydantic_ai/_thinking_part.py1CODE
LOWpydantic_ai_slim/pydantic_ai/_uuid.py9CODE
LOWpydantic_ai_slim/pydantic_ai/_enqueue.py7CODE
LOWpydantic_ai_slim/pydantic_ai/run.py1CODE
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py1CODE
LOWpydantic_ai_slim/pydantic_ai/format_prompt.py1CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py1CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py23CODE
LOWpydantic_ai_slim/pydantic_ai/_mcp.py1CODE
LOWpydantic_ai_slim/pydantic_ai/tools.py1CODE
LOWpydantic_ai_slim/pydantic_ai/_deferred_capabilities.py3CODE
LOWpydantic_ai_slim/pydantic_ai/_ssrf.py8CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py8CODE
LOWpydantic_ai_slim/pydantic_ai/concurrency.py3CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py3CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py4CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py15CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py16CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py16CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py17CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py17CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py17CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py17CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py23CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py23CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py23CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py23CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py29CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py47CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
LOWpydantic_ai_slim/pydantic_ai/__init__.py48CODE
736 more matches not shown…
Cross-File Repetition81 hits · 405 pts
SeverityFileLineSnippetContext
HIGHREADME.md0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGH…ai/.agents/skills/building-pydantic-ai-agents/SKILL.md0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGH…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGHdocs/index.md0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGHdocs/gateway.md0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGHdocs/logfire.md0the first known use of "hello, world" was in a 1974 textbook about the c programming language.STRING
HIGHREADME.md0support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false STRING
HIGH…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml0support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false STRING
HIGHdocs/index.md0support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false STRING
HIGHexamples/pydantic_ai_examples/bank_support.py0support_advice='hello john, your current account balance, including pending transactions, is $123.45.' block_card=false STRING
HIGHREADME.md0support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactionsSTRING
HIGH…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml0support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactionsSTRING
HIGHdocs/index.md0support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactionsSTRING
HIGHexamples/pydantic_ai_examples/bank_support.py0support_advice="i'm sorry to hear that, john. we are temporarily blocking your card to prevent unauthorized transactionsSTRING
HIGHpydantic_ai_slim/pydantic_ai/run.py0metadata associated with this agent run, if configured.STRING
HIGHpydantic_ai_slim/pydantic_ai/result.py0metadata associated with this agent run, if configured.STRING
HIGHpydantic_ai_slim/pydantic_ai/_run_context.py0metadata associated with this agent run, if configured.STRING
HIGHpydantic_ai_slim/pydantic_ai/agent/abstract.py0run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools STRING
HIGH…ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py0run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools STRING
HIGH…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py0run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools STRING
HIGH…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py0run the agent with a user prompt in async mode. this method builds an internal agent graph (using system prompts, tools STRING
HIGHpydantic_ai_slim/pydantic_ai/agent/abstract.py0synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.aSTRING
HIGH…ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py0synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.aSTRING
HIGH…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py0synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.aSTRING
HIGH…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py0synchronously run the agent with a user prompt. this is a convenience method that wraps [`self.run`][pydantic_ai.agent.aSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/abstract.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/__init__.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/wrapper.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGH…ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGH…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGH…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py0print(agent_run.result.output) #> the capital of france is paris. ``` args: user_prompt: user input to start/continue thSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/abstract.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/wrapper.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/__init__.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGH…ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGH…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGH…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py0a contextmanager which can be used to iterate over the agent graph's nodes as they are executed. this method builds an iSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/abstract.py0context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an eSTRING
HIGHpydantic_ai_slim/pydantic_ai/agent/wrapper.py0context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an eSTRING
HIGH…ic_ai_slim/pydantic_ai/durable_exec/temporal/_agent.py0context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an eSTRING
HIGH…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py0context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an eSTRING
HIGH…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py0context manager to temporarily override agent configuration. this is particularly useful when testing. you can find an eSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/mistral.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/groq.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/openai.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/huggingface.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/anthropic.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/cohere.py0process a non-streamed response, and prepare a message to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/mistral.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/google.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/groq.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/openai.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/huggingface.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/xai.py0process a streamed response, and prepare a streaming response to return.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/groq.py0initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model toSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/cohere.py0initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model toSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/bedrock.py0initialize a bedrock model. args: model_name: the name of the model to use. model_name: the name of the bedrock model toSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/groq.py0the set of builtin tool types this model can handle.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/openai.py0the set of builtin tool types this model can handle.STRING
HIGHpydantic_ai_slim/pydantic_ai/models/xai.py0the set of builtin tool types this model can handle.STRING
21 more matches not shown…
Magic Placeholder Names62 hits · 322 pts
SeverityFileLineSnippetContext
HIGHpydantic_ai_slim/pydantic_ai/common_tools/exa.py427 toolset = ExaToolset(api_key='your-api-key')STRING
HIGHclai/README.md22export OPENAI_API_KEY='your-api-key-here'CODE
HIGHtests/providers/test_ovhcloud.py32 provider = OVHcloudProvider(api_key='your-api-key')CODE
HIGHtests/providers/test_ovhcloud.py36 assert provider.client.api_key == 'your-api-key'CODE
HIGHtests/providers/test_ovhcloud.py52 openai_client = openai.AsyncOpenAI(api_key='your-api-key')CODE
HIGHtests/providers/test_ovhcloud.py59 provider = OVHcloudProvider(api_key='your-api-key', http_client=http_client)CODE
HIGHtests/providers/test_ovhcloud.py61 assert provider.client.api_key == 'your-api-key'CODE
HIGHtests/providers/test_ovhcloud.py65 provider = OVHcloudProvider(api_key='your-api-key')CODE
HIGHdocs/cli.md38export OPENAI_API_KEY='your-api-key-here'CODE
HIGHdocs/embeddings.md115export OPENAI_API_KEY='your-api-key'CODE
HIGHdocs/embeddings.md187 api_key='your-api-key',CODE
HIGHdocs/embeddings.md221export GOOGLE_API_KEY='your-api-key'CODE
HIGHdocs/embeddings.md342export CO_API_KEY='your-api-key'CODE
HIGHdocs/embeddings.md398export VOYAGE_API_KEY='your-api-key'CODE
HIGHdocs/retries.md297 api_key='your-api-key', # Replace with actual API keyCODE
HIGHdocs/models/xai.md22export XAI_API_KEY='your-api-key'CODE
HIGHdocs/models/xai.md54provider = XaiProvider(api_key='your-api-key')CODE
HIGHdocs/models/xai.md68 api_key='your-api-key',CODE
HIGHdocs/models/xai.md88xai_client = AsyncClient(api_key='your-api-key')CODE
HIGHdocs/models/anthropic.md22export ANTHROPIC_API_KEY='your-api-key'CODE
HIGHdocs/models/anthropic.md60 'claude-sonnet-4-5', provider=AnthropicProvider(api_key='your-api-key')CODE
HIGHdocs/models/anthropic.md80 provider=AnthropicProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/anthropic.md265 api_key='your-api-key',CODE
HIGHdocs/models/groq.md22export GROQ_API_KEY='your-api-key'CODE
HIGHdocs/models/groq.md55 'llama-3.3-70b-versatile', provider=GroqProvider(api_key='your-api-key')CODE
HIGHdocs/models/groq.md73 provider=GroqProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/openai.md20export OPENAI_API_KEY='your-api-key'CODE
HIGHdocs/models/openai.md57model = OpenAIResponsesModel('gpt-5.2', provider=OpenAIProvider(api_key='your-api-key'))CODE
HIGHdocs/models/openai.md92 api_key='your-api-key',CODE
HIGHdocs/models/openai.md357 base_url='https://<openai-compatible-api-endpoint>', api_key='your-api-key'CODE
HIGHdocs/models/openai.md383 base_url='https://<openai-compatible-api-endpoint>.com', api_key='your-api-key'CODE
HIGHdocs/models/openai.md469 provider=AlibabaProvider(api_key='your-api-key'),CODE
HIGHdocs/models/openai.md485 api_key='your-api-key',CODE
HIGHdocs/models/openai.md522 api_key='your-api-key',CODE
HIGHdocs/models/openai.md547 api_key='your-api-key',CODE
HIGHdocs/models/openai.md584 api_key='your-api-key',CODE
HIGHdocs/models/openai.md878 provider=OVHcloudProvider(api_key='your-api-key'),CODE
HIGHdocs/models/openai.md912 provider=SambaNovaProvider(api_key='your-api-key'),CODE
HIGHdocs/models/openai.md932 api_key='your-api-key',CODE
HIGHdocs/models/bedrock.md22export AWS_BEARER_TOKEN_BEDROCK='your-api-key'CODE
HIGHdocs/models/ollama.md25export OLLAMA_API_KEY='your-api-key' # required for Ollama CloudCODE
HIGHdocs/models/cohere.md22export CO_API_KEY='your-api-key'CODE
HIGHdocs/models/cohere.md54model = CohereModel('command-r7b-12-2024', provider=CohereProvider(api_key='your-api-key'))CODE
HIGHdocs/models/cohere.md71 provider=CohereProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/mistral.md22export MISTRAL_API_KEY='your-api-key'CODE
HIGHdocs/models/mistral.md55 'mistral-large-latest', provider=MistralProvider(api_key='your-api-key', base_url='https://<mistral-provider-endpoinCODE
HIGHdocs/models/mistral.md73 provider=MistralProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/cerebras.md22export CEREBRAS_API_KEY='your-api-key'CODE
HIGHdocs/models/cerebras.md55 'llama-3.3-70b', provider=CerebrasProvider(api_key='your-api-key')CODE
HIGHdocs/models/cerebras.md73 provider=CerebrasProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/google.md31export GOOGLE_API_KEY=your-api-keyCODE
HIGHdocs/models/google.md50provider = GoogleProvider(api_key='your-api-key')CODE
HIGHdocs/models/google.md121export GOOGLE_API_KEY=your-api-keyCODE
HIGHdocs/models/google.md140provider = GoogleCloudProvider(api_key='your-api-key')CODE
HIGHdocs/models/google.md253 provider=GoogleProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/models/google.md281 provider=GoogleProvider(api_key='your-api-key', retry_options=retry_options),CODE
HIGHdocs/models/google.md466 provider = GoogleProvider(api_key='your-api-key')CODE
HIGHdocs/models/zai.md22export ZAI_API_KEY='your-api-key'CODE
HIGHdocs/models/zai.md96 provider=ZaiProvider(api_key='your-api-key', http_client=custom_http_client),CODE
HIGHdocs/examples/setup.md30 export OPENAI_API_KEY=your-api-keyCODE
2 more matches not shown…
Docstring Block Structure49 hits · 245 pts
SeverityFileLineSnippetContext
HIGHpydantic_ai_slim/pydantic_ai/_output.py373Execute an output function with error handling, converting `ModelRetry` to `ToolRetryError`. Tracing for output-funSTRING
HIGHpydantic_ai_slim/pydantic_ai/retries.py169Handle an HTTP request with retry logic. Args: request: The HTTP request to handle. ReturnSTRING
HIGHpydantic_ai_slim/pydantic_ai/retries.py266Handle an async HTTP request with retry logic. Args: request: The HTTP request to handle. STRING
HIGHpydantic_ai_slim/pydantic_ai/tool_manager.py468Execute a validated tool call via capability hooks. The Instrumentation capability (if present) creates trace sSTRING
HIGHpydantic_ai_slim/pydantic_ai/tool_manager.py774Handle a tool call by validating the arguments, calling the tool, and handling retries. This is a convenience mSTRING
HIGHpydantic_ai_slim/pydantic_ai/_ssrf.py250Validate that the URL uses an allowed protocol (http or https). Args: url: The URL to validate. ReturnSTRING
HIGHpydantic_ai_slim/pydantic_ai/_ssrf.py333Validate URL and resolve hostname to IP addresses. Performs protocol validation, DNS resolution, and IP validation.STRING
HIGHpydantic_ai_slim/pydantic_ai/_ssrf.py443Download content from a URL with SSRF protection. This function: 1. Validates the URL protocol (only http/httpsSTRING
HIGHpydantic_ai_slim/pydantic_ai/mcp.py1363Read the contents of a specific resource by URI. Args: uri: The URI of the resource to read, or a [STRING
HIGHpydantic_ai_slim/pydantic_ai/mcp.py1603Recursively expand environment variables in a JSON structure. Environment variables can be referenced using `${VAR_STRING
HIGHpydantic_ai_slim/pydantic_ai/mcp.py1647Load `MCPToolset`s from a configuration file. The configuration file uses the same `mcpServers` JSON shape as ClaudSTRING
HIGHpydantic_ai_slim/pydantic_ai/messages.py2935Apply this text delta to an existing `TextPart`. Args: part: The existing model response part, whicSTRING
HIGHpydantic_ai_slim/pydantic_ai/messages.py3000Apply this thinking delta to an existing `ThinkingPart`. Args: part: The existing model response paSTRING
HIGHpydantic_ai_slim/pydantic_ai/messages.py3134Apply this delta to a part or delta, returning a new part or delta with the changes applied. Args: STRING
HIGHpydantic_ai_slim/pydantic_ai/direct.py63Make a non-streamed request to a model. ```py title="model_request_example.py" from pydantic_ai import ModelReqSTRING
HIGHpydantic_ai_slim/pydantic_ai/direct.py116Make a Synchronous, non-streamed request to a model. This is a convenience method that wraps [`model_request`][pydaSTRING
HIGHpydantic_ai_slim/pydantic_ai/direct.py172Make a streamed async request to a model. ```py {title="model_request_stream_example.py"} from pydantic_ai impSTRING
HIGHpydantic_ai_slim/pydantic_ai/direct.py235Make a streamed synchronous request to a model. This is the synchronous version of [`model_request_stream`][pydantiSTRING
HIGHpydantic_ai_slim/pydantic_ai/_parts_manager.py132Handle incoming text content, creating or updating a TextPart in the manager as appropriate. When `vendor_part_STRING
HIGHpydantic_ai_slim/pydantic_ai/_parts_manager.py219Handle incoming thinking content, creating or updating a ThinkingPart in the manager as appropriate. When `vendSTRING
HIGHpydantic_ai_slim/pydantic_ai/_parts_manager.py302Handle or update a tool call, creating or updating a `ToolCallPart`, `NativeToolCallPart`, or `ToolCallPartDelta`. STRING
HIGHpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py88Dump provider metadata from keyword arguments. Args: wrapper_key: The key to wrap the metadata in. DefaultsSTRING
HIGHpydantic_ai_slim/pydantic_ai/embeddings/__init__.py334Count the number of tokens in the given text. Args: text: The text to tokenize and count. STRING
HIGHpydantic_ai_slim/pydantic_ai/embeddings/result.py86Get the embedding for an input by index or by the original input text. Args: item: Either an integeSTRING
HIGHpydantic_ai_slim/pydantic_ai/embeddings/base.py104Count the number of tokens in the given text. Args: text: The text to tokenize and count. STRING
HIGHpydantic_ai_slim/pydantic_ai/models/cerebras.py137Transforms a 'CerebrasModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_settings:STRING
HIGHpydantic_ai_slim/pydantic_ai/models/openrouter.py637Transforms a 'OpenRouterModelSettings' object into an 'OpenAIChatModelSettings' object. Args: model_settingSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/zai.py147Transforms a 'ZaiModelSettings' object into an 'OpenAIChatModelSettings' object. Maps the unified `thinking` settinSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/bedrock.py321Insert a cache point before trailing document/video content. AWS rejects cache points that directly follow documentSTRING
HIGHpydantic_ai_slim/pydantic_ai/models/_tool_choice.py17Resolve user-facing tool_choice into a canonical form for providers. Pydantic AI distinguishes between function tooSTRING
HIGHpydantic_evals/pydantic_evals/generation.py42Use an LLM to generate a dataset of test cases, each consisting of input, expected output, and metadata. This functSTRING
HIGHpydantic_evals/pydantic_evals/dataset.py564Load a dataset from a file. Args: path: Path to the file to load. fmt: Format of the fiSTRING
HIGHpydantic_evals/pydantic_evals/dataset.py607Load a dataset from a string. Args: contents: The string content to parse. fmt: Format STRING
HIGHpydantic_evals/pydantic_evals/dataset.py645Load a dataset from a dictionary. Args: data: Dictionary representation of the dataset. STRING
HIGHpydantic_evals/pydantic_evals/dataset.py879Infer the format to use for a file based on its extension. Args: path: The path to infer the formatSTRING
HIGHpydantic_evals/pydantic_evals/dataset.py951Run a task on a case and return the context for evaluators. Args: task: The task to run. case: The STRING
HIGHpydantic_evals/pydantic_evals/_utils.py50Get the name of a function, unwrapping partials and decorators. Args: func: The function to get the name ofSTRING
HIGH…ntic_evals/pydantic_evals/evaluators/_run_evaluator.py40Run an evaluator and return the results. This function runs an evaluator on the given context and processes the resSTRING
HIGH…ntic_evals/pydantic_evals/evaluators/llm_as_a_judge.py330Judge an output using a G-Eval style chain-of-thought prompt. This is a simplified implementation of G-Eval (Liu etSTRING
HIGHpydantic_graph/pydantic_graph/join.py236Attempt to run the join node. Args: ctx: The graph execution context Returns: STRING
HIGHpydantic_graph/pydantic_graph/step.py185Attempt to run the step node. Args: ctx: The graph execution context Returns: STRING
HIGHpydantic_graph/pydantic_graph/step.py238Execute the wrapped node with the step context. Args: ctx: The step context containing the node insSTRING
HIGHpydantic_graph/pydantic_graph/node.py82Force type variance for proper generic typing. This method exists solely for type checking purposes and should STRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py206Get the parent fork information for a join node. Args: join_id: The ID of the join node ReSTRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py521Get the trace parent for instrumentation. Args: required: Whether to raise an error if no tracepareSTRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py1590Create an edge path from a `BaseNode` class. This method integrates a `BaseNode` subclass into the builder grapSTRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py1644Create edges from a return type hint. This method analyzes return type hints from step functions or node methodSTRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py1712Build the final executable graph from the accumulated nodes and edges. This method performs validation, normaliSTRING
HIGHpydantic_graph/pydantic_graph/graph_builder.py1945Find the dominating fork for each join node in the graph. This function analyzes the graph structure to find the paSTRING
Self-Referential Comments89 hits · 245 pts
SeverityFileLineSnippetContext
MEDIUMpydantic_ai_slim/pydantic_ai/concurrency.py224 # Create a span for observability while waitingCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/_json_schema.py191 # Create a new schema based on the non-null part, mark as nullableCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/_parts_manager.py1"""This module provides functionality to manage and update parts of a model's streamed response.STRING
MEDIUMpydantic_ai_slim/pydantic_ai/providers/gateway.py1"""This module implements the Pydantic AI Gateway provider."""STRING
MEDIUMpydantic_ai_slim/pydantic_ai/models/mistral.py140 # This class is a placeholder for any future mistral-specific settingsCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/models/__init__.py262 # This method is not required, but you need to implement it if you want to support `UsageLimits.count_tokens_befCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/models/__init__.py288 # This method is not required, but you need to implement it if you want to support streamed responsesCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/models/huggingface.py133 # This class is a placeholder for any future huggingface-specific settingsCOMMENT
MEDIUMpydantic_ai_slim/pydantic_ai/models/cohere.py100 # This class is a placeholder for any future cohere-specific settingsCOMMENT
MEDIUM…tic_ai_slim/pydantic_ai/durable_exec/prefect/_agent.py160 # Create a task to handle each eventCOMMENT
MEDIUMtests/test_toolsets.py725 # Create a toolset with tools that can failCOMMENT
MEDIUMtests/test_ui_web.py729 # Create a test HTML fileCOMMENT
MEDIUMtests/test_ui_web.py742 # Create a test HTML fileCOMMENT
MEDIUMtests/test_temporal.py3649# Create a graph with parallel execution using the beta APICOMMENT
MEDIUMtests/test_temporal.py4339 # Create a minimal config without data_converterCOMMENT
MEDIUMtests/test_temporal.py3682# Create a join to collect resultsCOMMENT
MEDIUMtests/test_tenacity.py355 # Create a retry state with no exceptionCOMMENT
MEDIUMtests/test_tenacity.py369 # Create a retry state with a non-HTTP exceptionCOMMENT
MEDIUMtests/test_tenacity.py448 # Create a future date (30 seconds from now)COMMENT
MEDIUMtests/test_tenacity.py474 # Create a past dateCOMMENT
MEDIUMtests/test_tenacity.py499 # Create a future date (120 seconds from now, > max_wait)COMMENT
MEDIUMtests/test_tenacity.py544 # Create a retry state with no exception to trigger fallbackCOMMENT
MEDIUMtests/test_prefect.py1334 # Create a tuple with timestampsCOMMENT
MEDIUMtests/test_prefect.py1496 # Create an agent with a simple toolCOMMENT
MEDIUMtests/test_prefect.py1515 # Create an agent with a toolCOMMENT
MEDIUMtests/test_function_signature.py1030 # Create a function with bare generic annotation (typing.List, not list)STRING
MEDIUMtests/test_usage_limits.py501 # Create a usage with None in details (simulating model response with missing detail)COMMENT
MEDIUMtests/test_json_schema.py60 # Create a schema with $defs that should not be modifiedCOMMENT
MEDIUMtests/evals/test_evaluator_common.py262 # Create a mock GradingOutputCOMMENT
MEDIUMtests/evals/test_evaluator_common.py466 # Create a span tree with a known structureCOMMENT
MEDIUMtests/evals/test_evaluator_context.py22 # Create a mock span treeCOMMENT
MEDIUMtests/evals/test_evaluator_context.py25 # Create a context with all fields populatedCOMMENT
MEDIUMtests/evals/test_evaluators.py563 # Create a span tree with a known structureCOMMENT
MEDIUMtests/evals/test_evaluators.py569 # Create a context with this span treeCOMMENT
MEDIUMtests/evals/test_evaluators.py103 # Create a specCOMMENT
MEDIUMtests/evals/test_evaluators.py182 # Create a context with the correct object typing for IsInstanceCOMMENT
MEDIUMtests/evals/test_evaluators.py205 # Create a context with DifferentOutputCOMMENT
MEDIUMtests/evals/test_reports.py111 # Create a new caseCOMMENT
MEDIUMtests/evals/test_reports.py139 # Create a case aggregateCOMMENT
MEDIUMtests/evals/test_reports.py175 # Create an evaluator outputCOMMENT
MEDIUMtests/evals/test_reports.py183 # Create a caseCOMMENT
MEDIUMtests/evals/test_reports.py201 # Create a report with the error caseCOMMENT
MEDIUMtests/evals/test_dataset.py1625 # This function is tough to test in an interesting way outside an example...COMMENT
MEDIUMtests/evals/test_otel.py569 # Create a simple tree for testing negationCOMMENT
MEDIUMtests/evals/test_otel.py766 # Create a test span treeCOMMENT
MEDIUMtests/evals/test_otel.py801 # Create a tree with varying numbers of childrenCOMMENT
MEDIUMtests/providers/test_litellm.py123 # Create a real AsyncClient for the mockCOMMENT
MEDIUMtests/graph/builder/test_graph_builder.py397 # Create a cycle that doesn't reach the end nodeCOMMENT
MEDIUMtests/models/test_anthropic.py551 # Create a mock model instanceCOMMENT
MEDIUMtests/models/test_anthropic.py557 # Create a list with an unsupported param type (thinking)COMMENT
MEDIUMtests/models/test_anthropic.py531 # Create a UserPromptPart with CachePointCOMMENT
MEDIUMtests/models/test_anthropic.py914 # Create a mock client that looks like standard AsyncAnthropicCOMMENT
MEDIUMtests/models/test_anthropic.py6906 # Create a model instanceSTRING
MEDIUMtests/models/test_anthropic.py6977 # Create a model instanceSTRING
MEDIUMtests/models/test_anthropic.py7018 # Create a model instanceSTRING
MEDIUMtests/models/test_anthropic.py8696 # Create the first mock response with server tool blocksSTRING
MEDIUMtests/models/test_anthropic.py8728 # Create the second mock response that references the historySTRING
MEDIUMtests/models/test_anthropic.py8757 # Create the first mock response with server tool blocksSTRING
MEDIUMtests/models/test_anthropic.py8788 # Create the second mock response that references the historySTRING
MEDIUMtests/models/test_anthropic.py10972 # Create a message history with a container_id in provider_detailsSTRING
29 more matches not shown…
AI Slop Vocabulary70 hits · 234 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_output.py351 # Text output: no real validation, just pass through the textCOMMENT
LOWpydantic_ai_slim/pydantic_ai/_json_schema.py198 # they are both null, so just return one of themCOMMENT
LOWpydantic_ai_slim/pydantic_ai/_utils.py476 # If we already have a buffered item, just return it.COMMENT
MEDIUM…_slim/pydantic_ai/capabilities/process_event_stream.py70 # the observer form returns an awaitable. Introspecting the return is robust forCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/mistral.py758 # It seems that mistral just sends full tool calls, so we just use them directly, rather than buildiCOMMENT
LOW…ntic_ai_slim/pydantic_ai/durable_exec/temporal/_mcp.py61 # so we just return the ToolDefinitions and wrap them in ToolsetTool outside of the activity.COMMENT
LOWpydantic_ai_slim/pydantic_ai/durable_exec/dbos/_mcp.py47 # so we just return the ToolDefinitions and wrap them in ToolsetTool outside of the activity.COMMENT
LOW…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_model.py98 # If not in a workflow (could be in a step), just call the wrapped request_stream method.COMMENT
LOW…tic_ai_slim/pydantic_ai/durable_exec/prefect/_model.py121 # If not in a flow, just call the wrapped request_stream methodCOMMENT
LOWtests/test_dbos.py258 # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly.COMMENT
LOWtests/test_dbos.py723 # DBOSAgent already wraps the `run` function as a DBOS workflow, so we can just call it directly.COMMENT
MEDIUM…/test_anthropic/test_anthropic_mcp_servers_stream.yaml129 data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_CODE
MEDIUM…l_mcp_list_tools_stream_backfills_missing_results.yaml397 data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","oCODE
MEDIUM…l_mcp_list_tools_stream_backfills_missing_results.yaml397 data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","oCODE
MEDIUM…l_mcp_list_tools_stream_backfills_missing_results.yaml397 data: {"type":"response.completed","response":{"id":"resp_034c5e93e2fa45ad006a2c2b74c2e4819dafbd93fcd1b49697","oCODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml79 data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
LOW…antic_evals/pydantic_evals/reporting/render_numbers.py30 # If it's an int, just return its string representation.COMMENT
MEDIUM.github/zizmor.yml45 # `harness-compat.yml` calls a reusable workflow in `pydantic/pydantic-ai-harness`, anCOMMENT
MEDIUM.github/zizmor.yml47 # would force coordinated bumps on every harness change without meaningful security benefitCOMMENT
MEDIUM.github/workflows/harness-compat.yml3# Verifies that pydantic-ai changes don't break the pydantic-ai-harness lint /COMMENT
MEDIUM.github/workflows/harness-compat.yml4# typecheck / test suite. Calls the harness's `compat-test.yml` reusableCOMMENT
MEDIUM.github/workflows/harness-compat.yml11# - Push of `v*` tags: gates a release on harness compatibility.COMMENT
MEDIUM.github/workflows/harness-compat.yml35 # on every harness change without security benefit. Ignore configured in `.github/zizmor.yml`.COMMENT
MEDIUM.github/workflows/ci.yml38 # which imports pydantic-ai-harness. The harness depends on pydantic-ai-slim,COMMENT
MEDIUM.github/workflows/ci.yml52 # re-sync the venv and drop the out-of-band harness install above.COMMENT
MEDIUM.github/scripts/prewarm-pydantic-ai-runner.sh2# Pre-warm the harness's uv script environment on the OPEN network.COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py238 # The harness-backed Read/Write/Edit are contained to the workspace root.COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py248 # The harness requires a unique match; a missing string comes back as an error.COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py257 # Claude's 1-based offset=2 maps to the harness 0-based offset; limit=2.COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py264 # The harness's truncation hint carries its own 0-based offset; this tool'sCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py279 # Passed straight to the harness, `limit=0` reads zero lines and emits aCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py305 # The harness puts its continuation hint at the tail, but the shim's output capCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py313 # Zero-padded line ids (distinct from the harness's space-padded line numbers)COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py330 # The offset bump must target only the harness's own continuation hint, not fileCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py331 # content -- even a line reproducing the *full* hint verbatim. The harness writesCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py343 # `replace_all` has no harness equivalent, so it stays an in-place rewriteCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py353 # `replace_all` does the rewrite by hand rather than through the harness, butCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py372 # The harness *returns* a `[Command timed out ...]` sentinel rather thanCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py389 # grep runs ripgrep through the harness shell capability; the adapter keys offCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py392 # exit-1 ("nothing matched") to the harness's own `No matches found.` sentinel.COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py471 # The harness `list_directory`/`find_files` walkers hide every dot-prefixedCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py1297 # The harness `write_file` requires an existing parent; the Write adapterCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py1308 # harness does NOT convert to `ModelRetry`. It must come back as an `error:`COMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py271 assert 'Use offset=3 to continue reading.' in first # harness emits 2 (0-based); bumped to 3CODE
MEDIUM.github/scripts/test_pydantic_ai_runner.py291 # The harness converts only a fixed set of exceptions to `ModelRetry`; a bareCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py425 # A match set larger than the harness output cap is tail-truncated, whichCOMMENT
MEDIUM.github/scripts/test_pydantic_ai_runner.py560 # TodoWrite maps Claude's todo schema onto the harness `planning` capabilityCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/list_dir.py21 # the enumeration then keeps the dot-prefixed entries the harness drops.COMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/list_dir.py28 # harness, so catch it here rather than let it abort the whole run.COMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/write.py26 # The harness converts its own recoverable errors to `ModelRetry`, butCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/bash.py24 # ModelRetry: the harness blocked the command; the shim's tools have alwaysCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/bash.py27 # workspace cwd does not exist) -- the harness doesn't convert it, so catchCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/bash.py30 # On timeout the harness *returns* a `[Command timed out after Ns]` sentinelCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/__init__.py45# harness-backed tools (`Bash`, `Read`, `Write`, `Edit`, `Grep`, `Glob`, `LS`COMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/__init__.py56# `Task` is async like the harness-backed file/shell tools, but unlike them itsCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/edit.py25 # The harness only converts a fixed set of errors to `ModelRetry`; a bareCOMMENT
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/grep.py38# The harness tail-truncates an oversized body and prepends this marker, whichSTRING
MEDIUM.github/scripts/pydantic_ai_gh_aw_shim/grep.py42# `search_files` (the harness's own content search) returns this on no match;STRING
10 more matches not shown…
Deep Nesting262 hits · 210 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_output.py132CODE
LOWpydantic_ai_slim/pydantic_ai/_output.py1571CODE
LOWpydantic_ai_slim/pydantic_ai/_output.py458CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py312CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py356CODE
LOWpydantic_ai_slim/pydantic_ai/format_prompt.py135CODE
LOWpydantic_ai_slim/pydantic_ai/format_prompt.py187CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py153CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_search.py471CODE
LOWpydantic_ai_slim/pydantic_ai/_mcp.py20CODE
LOWpydantic_ai_slim/pydantic_ai/_mcp.py69CODE
LOWpydantic_ai_slim/pydantic_ai/_deferred_capabilities.py141CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py512CODE
LOWpydantic_ai_slim/pydantic_ai/function_signature.py345CODE
LOWpydantic_ai_slim/pydantic_ai/_function_schema.py103CODE
LOWpydantic_ai_slim/pydantic_ai/_spec.py96CODE
LOWpydantic_ai_slim/pydantic_ai/result.py970CODE
LOWpydantic_ai_slim/pydantic_ai/result.py219CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1402CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1527CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1573CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1408CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_execution.py500CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_execution.py571CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_execution.py759CODE
LOWpydantic_ai_slim/pydantic_ai/_tool_execution.py947CODE
LOWpydantic_ai_slim/pydantic_ai/_json_schema.py58CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2454CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2488CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py659CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py857CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1033CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1269CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py1321CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2372CODE
LOWpydantic_ai_slim/pydantic_ai/messages.py2999CODE
LOWpydantic_ai_slim/pydantic_ai/_parts_manager.py121CODE
LOWpydantic_ai_slim/pydantic_ai/_parts_manager.py292CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py512CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1845CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py309CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py408CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py455CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py646CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1191CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1199CODE
LOWpydantic_ai_slim/pydantic_ai/_utils.py296CODE
LOWpydantic_ai_slim/pydantic_ai/_utils.py735CODE
LOWpydantic_ai_slim/pydantic_ai/_utils.py335CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_event_stream.py139CODE
LOW…ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py359CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py991CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py1112CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py295CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py615CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py641CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py900CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py171CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py215CODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py305CODE
202 more matches not shown…
Modern AI Meta-Vocabulary55 hits · 138 pts
SeverityFileLineSnippetContext
MEDIUM.pre-commit-config.yaml9 # gh-aw compiles *.md agentic workflows into *.lock.yml, and alsoCOMMENT
MEDIUMREADME.md51Enables you to systematically test and [evaluate](https://ai.pydantic.dev/evals) the performance and accuracy of the ageCODE
MEDIUMREADME.md164# Dynamic instructions can make use of dependency injection.COMMENT
MEDIUMCONTRIBUTING.md28Before writing code, ask whether the change needs to live in core at all. Most new agent behaviors belong in [**PydanticCODE
MEDIUMpydantic_ai_slim/pydantic_ai/native_tools/__init__.py149 * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings>STRING
MEDIUMpydantic_ai_slim/pydantic_ai/native_tools/__init__.py161 * Groq, see <https://console.groq.com/docs/agentic-tooling#search-settings>STRING
MEDIUMpydantic_ai_slim/pydantic_ai/providers/deepseek.py58 # Starting from DeepSeek v3.2, DeepSeek requires sending thinking parts for optimal agentic performance.COMMENT
MEDIUM…building-pydantic-ai-agents/references/ARCHITECTURE.md11 - [Choosing a Multi-Agent Pattern](#choosing-a-multi-agent-pattern)CODE
MEDIUM…ai-agents/references/ORCHESTRATION-AND-INTEGRATIONS.md87## Use Embeddings for RAGCOMMENT
MEDIUMtests/test_capabilities.py8107 # First turn: hallucinate a call to the filtered tool. Even though the modelCOMMENT
MEDIUMtests/evals/test_evaluator_common.py557 # An empty steps list would produce a prompt with no chain-of-thought section, defeating the method.COMMENT
MEDIUMtests/models/test_anthropic.py6696dataclass is used to pass data, connections, and logic into the model that will be needed when running[instructions](ageCODE
MEDIUMtests/models/test_anthropic.py6699[instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency injection. DepenCODE
MEDIUMtests/models/test_anthropic.py6767dataclass is used to pass data, connections, and logic into the model that will be needed when running[instructions](ageCODE
MEDIUMtests/models/test_anthropic.py6770[instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency injection. DepenCODE
MEDIUM…/test_anthropic/test_anthropic_mcp_servers_stream.yaml129 data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_CODE
MEDIUM…/test_anthropic/test_anthropic_mcp_servers_stream.yaml129 data: {"type":"content_block_start","index":2,"content_block":{"type":"mcp_tool_result","tool_use_id":"mcptoolu_CODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml188 dataclass is used to pass data, connections, and logic into the model that will be needed when running[iCODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml191 [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency CODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml259 dataclass is used to pass data, connections, and logic into the model that will be needed when running[iCODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml262 [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependency CODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml540 dataclass is used to pass data, connections, and logic into the model that will be needed when runningCODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml543 [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependencCODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml611 dataclass is used to pass data, connections, and logic into the model that will be needed when runningCODE
MEDIUM…ttes/test_anthropic/test_anthropic_web_fetch_tool.yaml614 [instructions](agents/#instructions)can be registered with thedecorator, and can make use of dependencCODE
MEDIUM…st_anthropic/test_anthropic_web_fetch_tool_stream.yaml117 data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srvCODE
MEDIUM…st_anthropic/test_anthropic_web_fetch_tool_stream.yaml117 data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srvCODE
MEDIUM…st_anthropic/test_anthropic_web_fetch_tool_stream.yaml117 data: {"type":"content_block_start","index":2,"content_block":{"type":"web_fetch_tool_result","tool_use_id":"srvCODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml79 data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml79 data: {"type":"response.output_item.done","sequence_number":13,"output_index":2,"item":{"id":"mcp_00b9cc7a23d047CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
MEDIUM…est_openai_responses_model_mcp_server_tool_stream.yaml619 data: {"type":"response.completed","sequence_number":193,"response":{"id":"resp_00b9cc7a23d047270068faa0e2593481CODE
MEDIUMdocs/coding-agent-skills.md5[Agent skills](https://agentskills.io) are packages of instructions and reference material that coding agents load on deCODE
MEDIUMdocs/capabilities.md922[`ReinjectSystemPrompt`][pydantic_ai.capabilities.ReinjectSystemPrompt] ensures the agent's configured [`system_prompt`]CODE
MEDIUMdocs/capabilities.md1808[**Pydantic AI Harness**](https://pydantic.dev/docs/ai/harness/) is the official capability library for Pydantic AI -- sCODE
MEDIUMdocs/extensibility.md45[**Pydantic AI Harness**](https://pydantic.dev/docs/ai/harness/) is the official capability library for Pydantic AI -- sCODE
MEDIUMdocs/multi-agent-applications.md368# Your multi-agent code here...COMMENT
MEDIUMdocs/index.md15Pydantic AI ships the agent loop and a composable [capabilities](capabilities.md) system; [Pydantic AI Harness](https://CODE
MEDIUMdocs/index.md1953. The `SupportDependencies` dataclass is used to pass data, connections, and logic into the model that will be needed wCODE
MEDIUMdocs/index.md1975. Dynamic [instructions](agent.md#instructions) can be registered with the [`@agent.instructions`][pydantic_ai.agent.AgCODE
MEDIUMdocs/contributing.md28Before writing code, ask whether the change needs to live in core at all. Most new agent behaviors belong in [**PydanticCODE
MEDIUMdocs/toolsets.md935[`pydantic-ai-ejentum`](https://pypi.org/project/pydantic-ai-ejentum/) wraps the [Ejentum Reasoning Harness](https://ejeCODE
MEDIUMdocs/evals/evaluators/llm-judge.md237### RAG EvaluationCOMMENT
MEDIUMdocs/evals/evaluators/span-based.md487### RAG System VerificationCOMMENT
MEDIUMdocs/evals/evaluators/standard-quality-metrics.md64## RAG metric rubricsCOMMENT
MEDIUMdocs/evals/evaluators/agentic.md180### RAG agentCOMMENT
MEDIUMdocs/models/anthropic.md189Anthropic's [task budgets](https://platform.claude.com/docs/en/build-with-claude/task-budgets) let you give Claude an adCODE
MEDIUMdocs/models/bedrock.md52configurations](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) and [performance settings](https:/CODE
MEDIUMdocs/examples/rag.md1# RAGCOMMENT
MEDIUMpydantic_evals/pydantic_evals/evaluators/__init__.py43 # agenticCOMMENT
MEDIUM.github/zizmor.yml28 # gh-aw-generated agentic workflow lockfiles (seeCOMMENT
MEDIUM.github/zizmor.yml54 # workflow-dispatch maintenance surface for the agentic workflow set).COMMENT
MEDIUM.github/scripts/pydantic-ai-runner-launch.sh7# It is gh-aw's `engine.command` for every Pydantic AI agentic workflow andCOMMENT
Fake / Example Data108 hits · 126 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/output.py377 #> {'name': 'John Doe', 'age': 30}STRING
LOWtests/test_agent.py229 {'name': 'John Doe'},CODE
LOWtests/test_agent.py242 Person(name='John Doe'),CODE
LOWtests/test_agent.py2290 args_json = '{"name": "John Doe", "age": 30}'STRING
LOWtests/test_agent.py2300 assert result.output == snapshot({'name': 'John Doe', 'age': 30})STRING
LOWtests/import_examples.py14 os.environ.update(OPENAI_API_KEY='fake-key', GEMINI_API_KEY='fake-key', GROQ_API_KEY='fake-key')CODE
LOWtests/test_examples.py586 args={'name': 'John Doe', 'age': 30},CODE
LOWtests/test_examples.py890 tool_name='get_user_by_name', args={'name': 'John Doe'}, tool_call_id='pyd_ai_tool_call_id'CODE
LOWtests/models/test_anthropic.py28852. The use of "John Doe" as a reference to a typical male in various contextsCODE
LOWtests/models/test_anthropic.py28863. The use of variations like "Baby Doe" and numbered "John Doe"s in specific casesCODE
LOWtests/models/test_anthropic.py2868 'This document appears to be a sample PDF file that mainly contains Lorem ipsum text, which is placeholder text CODE
LOWtests/models/test_bedrock.py1035An example text describing the use of "John Doe" as a placeholder name in legal cases, hospitals, and other contexts wheSTRING
LOWtests/models/test_bedrock.py1035An example text describing the use of "John Doe" as a placeholder name in legal cases, hospitals, and other contexts wheSTRING
LOWtests/models/test_google.py852 'The main content of the TXT file is an explanation of the placeholder name "John Doe" (and related variations) STRING
LOWtests/models/test_openai_responses.py873 'The main content of this document is an example of a TXT file type, with an explanation of the use of placeholdSTRING
LOWtests/models/test_openai_responses.py873 'The main content of this document is an example of a TXT file type, with an explanation of the use of placeholdSTRING
LOW…_google/test_google_model_text_document_url_input.yaml25 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childrCODE
LOW…_google/test_google_model_text_document_url_input.yaml25 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childrCODE
LOW…_google/test_google_model_text_document_url_input.yaml29 Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder case in CODE
LOW…_google/test_google_model_text_document_url_input.yaml115 The main content of the TXT file is an explanation of the placeholder name "John Doe" (and related variatiCODE
LOW…/cassettes/test_anthropic/test_document_url_input.yaml45 - text: This document appears to be a sample PDF file that mainly contains Lorem ipsum text, which is placeholder CODE
LOW…/cassettes/test_anthropic/test_document_url_input.yaml47 "This is a simple PDF file. Fun fun fun." The rest of the content consists of several paragraphs of Lorem ipsuCODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml25 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childrCODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml25 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for childrCODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml29 Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder case in CODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml92 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for CODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml92 The names "John Doe" for males, "Jane Doe" or "Jane Roe" for females, or "Jonnie Doe" and "Janie Doe" for CODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml96 Similarly, a child or baby whose identity is unknown may be referred to as Baby Doe. A notorious murder caCODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml131 2. The use of "John Doe" as a reference to a typical male in various contextsCODE
LOW…ettes/test_anthropic/test_text_document_url_input.yaml132 3. The use of variations like "Baby Doe" and numbered "John Doe"s in specific casesCODE
LOW…direct-url_force_download-document-google_vertex].yaml656 The content of the document consists of several paragraphs of **Lorem Ipsum** placeholder text. The layoutCODE
LOW…_matrix[tool_return_content-url-document-mistral].yaml164 3. **Placeholder Text**: The majority of the document consists of **Lorem Ipsum** text, which is commonly usCODE
LOW…ix[tool_return_content-url-document-bedrock_nova].yaml461 of **multiple paragraphs** filled with **Lorem Ipsum placeholder text**. Lorem Ipsum is commonly used as dCODE
LOW…ix[tool_return_content-url-document-bedrock_nova].yaml463 appears to be **standard Lorem Ipsum**, which is typically a scrambled version of sections from \"De FinibCODE
LOW…ix[tool_return_content-url-document-bedrock_nova].yaml475 PDF\"**. It contains **Lorem Ipsum placeholder text** organized into multiple paragraphs. The document is CODE
LOW…ool_return_content-url-document-openai_responses].yaml226 I retrieved a PDF file (labelled in the text as "Sample PDF"). Its extracted text contains a short header liCODE
LOW…ect-url_force_download-document-openai_responses].yaml600 - Content: about a dozen paragraphs of placeholder-style text (a mix of typical "Lorem ipsum" filler and EngCODE
LOW…ix[direct-url_force_download-document-google_2_5].yaml521 simple PDF file. Fun fun fun." The content of the document is placeholder "Lorem Ipsum" text, divided intoCODE
LOW…x[tool_return_content-url-document-google_vertex].yaml297 * **Body Text:** The document contains four paragraphs of "Lorem ipsum" text, which is standard Latin plCOMMENT
LOW…ool_return_matrix[direct-url-document-google_2_5].yaml521 document contains several paragraphs of "Lorem ipsum" placeholder text.CODE
LOW…_matrix[tool_return_content-url-document-xai].xai.yaml121 followed by several paragraphs of standard Lorem Ipsum placeholder textCODE
LOW…atrix[tool_return_content-url-document-anthropic].yaml157 The PDF contains several paragraphs of **Lorem Ipsum** placeholder text - the classic dummy text commonly usedCODE
LOW…atrix[tool_return_content-url-document-anthropic].yaml159 The document appears to be a simple test or sample PDF, likely used for demonstration purposes, testing PDF reCODE
LOW…tool_return_matrix[direct-url-document-anthropic].yaml154 **Content:** The document is a single-page sample PDF that contains Lorem Ipsum placeholder text - the classicCODE
LOW…tool_return_matrix[direct-url-document-anthropic].yaml154 **Content:** The document is a single-page sample PDF that contains Lorem Ipsum placeholder text - the classicCODE
LOW…tool_return_matrix[direct-url-document-anthropic].yaml156 **Purpose:** This appears to be a test or sample PDF document, likely used for demonstration purposes, testingCODE
LOW…rix[tool_return_content-url-document-openai_chat].yaml552 - Title/first lines (from page 1): "Sample PDF" followed by "This is a simple PDF file. Fun fun fun." and thCODE
LOW…rix[tool_return_content-url-document-openai_chat].yaml553 - Content summary: the page is a sample/placeholder document made up of multiple paragraphs of lorem ipsum aCODE
LOW…rn_content-url_force_download-document-anthropic].yaml528 This is a simple sample PDF document with the subtitle "This is a simple PDF file. Fun fun fun." The document CODE
LOW…rn_content-url_force_download-document-anthropic].yaml532 - The main body consists of multiple paragraphs of Latin placeholder text (Lorem Ipsum)CODE
LOW…rn_content-url_force_download-document-anthropic].yaml533 - The text discusses various topics in the traditional Lorem Ipsum style, mentioning things like "dolor sit amCODE
LOW…rn_content-url_force_download-document-anthropic].yaml533 - The text discusses various topics in the traditional Lorem Ipsum style, mentioning things like "dolor sit amCODE
LOW…irect-url_force_download-document-google_gemini3].yaml652 of **\"Lorem ipsum\"** placeholder text, commonly used in publishing and graphic design to demonstrate theCODE
LOW…irect-url_force_download-document-google_gemini3].yaml655 *\"Lorem ipsum dolor sit amet...\"*\n* **Format:** A standard text document layout with clean margins anCOMMENT
LOW…irect-url_force_download-document-google_gemini3].yaml655 *\"Lorem ipsum dolor sit amet...\"*\n* **Format:** A standard text document layout with clean margins anCOMMENT
LOW…ent-url_force_download-document-openai_responses].yaml599 I retrieved a PDF file titled "Sample PDF." It contains only plain text (no images or special formatting) --CODE
LOW…return_matrix[direct-url-document-google_gemini3].yaml662 * **Body Text:** The document contains four paragraphs of "Lorem Ipsum" placeholder text. This is standaCOMMENT
LOW…l_tool_return_matrix[direct-url-document-xai].xai.yaml159 \ PDF file. Fun fun fun.\" followed by extensive Lorem ipsum dummy text\CODE
LOW…l_tool_return_matrix[direct-url-document-xai].xai.yaml163 \ not substantive or meaningful—purely sample/lorem ipsum filler spanning\CODE
LOW…ontent-url_force_download-document-google_vertex].yaml657 contains four paragraphs of \"Lorem ipsum\" placeholder text. \n* **Layout:** It features a clean, minimCODE
48 more matches not shown…
Over-Commented Block124 hits · 121 pts
SeverityFileLineSnippetContext
LOWpyproject.toml321 "ignore:The 'default' attribute with value 'UTC' was provided.*:UserWarning",COMMENT
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py621 # (see `_check_max_retries` below), so when `ToolOutput(max_retries=N)` exceedsCOMMENT
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1021 # Merge possible consecutive trailing `ModelRequest`s into one, with tool call parts before user parts,COMMENT
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1281 if part.content:COMMENT
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1361 # This will raise errors for any tool name conflictsCOMMENT
LOW…antic_ai_slim/pydantic_ai/capabilities/_tool_search.py161COMMENT
LOW…antic_ai_slim/pydantic_ai/capabilities/_tool_search.py181 # without native support can still honor the choice via the local path.COMMENT
LOW…ydantic_ai/capabilities/_deferred_capability_loader.py41 # request, which keeps the provider's prompt-cache prefix warm across loads — the entireCOMMENT
LOWpydantic_ai_slim/pydantic_ai/providers/bedrock.py41 ) from _import_errorCOMMENT
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py1261 run_layers: list[AbstractCapability[AgentDepsT]] = [base_capability, *extra_capabilities]COMMENT
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py1461 )COMMENT
LOWpydantic_ai_slim/pydantic_ai/models/google.py1321 # _after_ the text that was generated using it, so it would show up out of order in the stream,COMMENT
LOWpydantic_ai_slim/pydantic_ai/models/groq.py861 message: strCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/anthropic.py1381 if file.provider_name == self.systemCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/anthropic.py1581 # in parallel with a client `tool_use` and ends the turn beforeCOMMENT
LOW…_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py81 'sniffio',COMMENT
LOWpydantic_ai_slim/pydantic_ai/toolsets/_tool_search.py321 # `_resolve_native_tool_swap`).COMMENT
LOWtests/test_tool_search.py5021 # Dict with `paths` present but of a non-list type.COMMENT
LOWtests/test_tool_search.py5241 # The `search_tools` exchange must NOT also surface as a regular function_call /COMMENT
LOWtests/test_temporal.py1741 ('model_name', 'expected_model_class'),COMMENT
LOWdocs/evals/evaluators/report-evaluators.md741 #> confusion_matrix: Animal ClassificationCOMMENT
LOWpydantic_evals/pydantic_evals/evaluators/agentic.py61# ---------------------------------------------------------------------------COMMENT
LOWscripts/gather-pydantic-ai-review-context.sh1#!/usr/bin/env bashCOMMENT
LOW.github/zizmor.yml41 - pydantic-ai-stale-issues-finder.lock.ymlCOMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml1# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"18d18811c742c3bc1c672f4b8929061a0ec4ee670c1889f253c9152beb5COMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml21# Not all edits will cause changes to this file.COMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml41# - GH_AW_GITHUB_MCP_SERVER_TOKENCOMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml61# - ghcr.io/github/gh-aw-firewall/agent:0.25.49COMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml821 bash "${RUNNER_TEMP}/gh-aw/actions/start_cli_proxy.sh"COMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml841 # - TodoWriteCOMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml861 # - mcp__github__get_pull_request_reviewsCOMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml881 # - mcp__github__list_releasesCOMMENT
LOW.github/workflows/pydantic-ai-pr-review.lock.yml1361 continue-on-error: trueCOMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml1# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51a4657cc514e8339cbb727ae4b134d4795d80d8c59ce682464455be014COMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml21# Not all edits will cause changes to this file.COMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml41# - GH_AW_GITHUB_MCP_SERVER_TOKENCOMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml761 id: agentic_executionCOMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml781 # - Write(/tmp/*)COMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml801 # - mcp__github__get_release_by_tagCOMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml821 # - mcp__github__list_starred_repositoriesCOMMENT
LOW…kflows/pydantic-ai-streaming-resilience-sweep.lock.yml1301 # Allowed tools (sorted):COMMENT
LOW.github/workflows/pydantic-ai-ui-security-review.md1---COMMENT
LOW.github/workflows/pydantic-ai-ui-security-review.md21 # Pause for a maintainer's approval of the `ui-security-review` EnvironmentCOMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml1# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c370af35001ca7e23de70e6b1a8b8cad6d8f644396c583cddc88b2232b4COMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml21# Not all edits will cause changes to this file.COMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml41# - GH_AW_GITHUB_MCP_SERVER_TOKENCOMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml761 id: agentic_executionCOMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml781 # - Write(/tmp/*)COMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml801 # - mcp__github__get_release_by_tagCOMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml821 # - mcp__github__list_starred_repositoriesCOMMENT
LOW…/workflows/pydantic-ai-provider-mapping-sweep.lock.yml1301 # Allowed tools (sorted):COMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml1# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"573f1758123c4b7b1858938f0f275afb31c5e1060a8d969d37ee1c1c3afCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml21# Not all edits will cause changes to this file.COMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml41# - GH_AW_GITHUB_TOKENCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml761 # - BashCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml781 # - mcp__github__get_code_scanning_alertCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml801 # - mcp__github__get_tagCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml821 # - mcp__github__list_workflow_jobsCOMMENT
LOW.github/workflows/pydantic-ai-docs-drift.lock.yml1301 # - BashOutputCOMMENT
LOW.github/workflows/pydantic-ai-bug-hunter.lock.yml1# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3d73d2d0a31a4cabb59bd6ee86aa1dc3db92ed28bc51d06f77cf5a0179bCOMMENT
64 more matches not shown…
AI Structural Patterns133 hits · 116 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/tools.py475CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py811CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_adapter.py403CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_adapter.py498CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_adapter.py561CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py199CODE
LOW…c_ai_slim/pydantic_ai/capabilities/image_generation.py112CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/hooks.py746CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/web_fetch.py43CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/capability.py136CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/capability.py157CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/capability.py206CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/capability.py227CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/mcp.py58CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/mcp.py190CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/web_search.py48CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/x_search.py75CODE
LOWpydantic_ai_slim/pydantic_ai/providers/google_cloud.py28CODE
LOWpydantic_ai_slim/pydantic_ai/providers/bedrock.py562CODE
LOWpydantic_ai_slim/pydantic_ai/providers/bedrock.py575CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py366CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py390CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py413CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py556CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py580CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py603CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py699CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py723CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py747CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py997CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1020CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1042CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1153CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1176CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1200CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1321CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1344CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1368CODE
LOWpydantic_ai_slim/pydantic_ai/agent/abstract.py1487CODE
LOWpydantic_ai_slim/pydantic_ai/agent/wrapper.py113CODE
LOWpydantic_ai_slim/pydantic_ai/agent/wrapper.py136CODE
LOWpydantic_ai_slim/pydantic_ai/agent/wrapper.py159CODE
LOWpydantic_ai_slim/pydantic_ai/agent/wrapper.py292CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py281CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py305CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py328CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py533CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py559CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py585CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py700CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py727CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py754CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py898CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py921CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py944CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py1708CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2097CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2118CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2233CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2254CODE
73 more matches not shown…
Excessive Try-Catch Wrapping80 hits · 82 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_output.py211 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py192 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py289 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/run.py295 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/tool_manager.py329 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py107 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py110 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py136 except Exception: # pragma: no coverCODE
LOWpydantic_ai_slim/pydantic_ai/_instrumentation.py298 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_spec.py234 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_template.py141 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py195 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py761 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py819 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py904 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/_agent_graph.py1680 except Exception:STRING
LOWpydantic_ai_slim/pydantic_ai/usage.py177 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/_utils.py561 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_event_stream.py203 except Exception as exc: # `exc` to avoid shadowing by `async for e in` belowCODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/_utils.py101 except Exception:CODE
LOWpydantic_ai_slim/pydantic_ai/embeddings/instrumented.py149 except Exception as e: # pragma: no coverCODE
LOWpydantic_ai_slim/pydantic_ai/embeddings/instrumented.py191 except Exception: # pragma: no coverCODE
LOWpydantic_ai_slim/pydantic_ai/embeddings/instrumented.py205 except Exception: # pragma: no coverCODE
LOWpydantic_ai_slim/pydantic_ai/embeddings/instrumented.py208 except Exception as e:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/hooks.py938 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/hooks.py998 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/hooks.py1120 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/hooks.py1239 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/combined.py329 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/combined.py399 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/combined.py534 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/combined.py596 except Exception: # pragma: no cover — defensiveCODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/combined.py656 except Exception as new_error:CODE
LOWpydantic_ai_slim/pydantic_ai/models/fallback.py231 except Exception as exc:CODE
LOWpydantic_ai_slim/pydantic_ai/models/fallback.py265 except Exception as exc:CODE
LOWpydantic_ai_slim/pydantic_ai/_cli/web.py92 except Exception as e: # pragma: no coverCODE
MEDIUMpydantic_ai_slim/pydantic_ai/_cli/__init__.py296 console.print(f'Error initializing [magenta]{args.model}[/magenta]:\n[red]{e}[/red]')CODE
LOWpydantic_ai_slim/pydantic_ai/_cli/__init__.py389 except Exception as e: # pragma: no coverCODE
LOWtests/conftest.py854 except Exception: # pragma: no coverCODE
LOWtests/test_agent.py7312 except Exception as e:STRING
LOWtests/test_capabilities.py5683 except Exception as e:CODE
LOWtests/_inline_snapshot.py119 except Exception as e:CODE
MEDIUMdocs/agent.md1229 print('An error occurred:', e)CODE
LOWdocs/toolsets.md616 except Exception as e:CODE
LOWdocs/evals/evaluators/overview.md107 except Exception:CODE
LOWdocs/evals/evaluators/custom.md119 except Exception:CODE
LOWdocs/evals/evaluators/custom.md294 except Exception as e:CODE
LOWdocs/evals/evaluators/custom.md524 except Exception as e:CODE
LOWdocs/evals/evaluators/custom.md619 except Exception:CODE
LOWpydantic_evals/pydantic_evals/online.py690 except Exception: # pragma: no cover - defensiveCODE
LOWpydantic_evals/pydantic_evals/online.py692 except Exception as e:CODE
LOWpydantic_evals/pydantic_evals/online.py764 except Exception: # pragma: no cover - defensiveCODE
LOWpydantic_evals/pydantic_evals/online.py766 except Exception as e:CODE
LOWpydantic_evals/pydantic_evals/online.py818 except Exception: # pragma: no coverCODE
LOWpydantic_evals/pydantic_evals/dataset.py1025 except Exception as e:CODE
LOWpydantic_evals/pydantic_evals/dataset.py1186 except Exception as exc:CODE
LOWpydantic_evals/pydantic_evals/_online.py184 except Exception: # pragma: no coverCODE
LOWpydantic_evals/pydantic_evals/_online.py248 except Exception as exc:CODE
LOWpydantic_evals/pydantic_evals/_online.py255 except Exception:CODE
LOWpydantic_evals/pydantic_evals/_online.py291 except Exception:CODE
20 more matches not shown…
Dead Code41 hits · 75 pts
SeverityFileLineSnippetContext
MEDIUMpydantic_ai_slim/pydantic_ai/_agent_graph.py613CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py426CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py435CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py444CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py452CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py460CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py468CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py476CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py486CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py495CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py505CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py515CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py524CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py536CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py545CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py554CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py563CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py572CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py581CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py590CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py599CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py608CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py617CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py626CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py635CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py644CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py653CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/_event_stream.py662CODE
MEDIUM…ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py161CODE
MEDIUM…ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py276CODE
MEDIUMpydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py132CODE
MEDIUMpydantic_ai_slim/pydantic_ai/agent/abstract.py1483CODE
MEDIUMpydantic_ai_slim/pydantic_ai/agent/abstract.py1523CODE
MEDIUMpydantic_ai_slim/pydantic_ai/models/wrapper.py35CODE
MEDIUMpydantic_ai_slim/pydantic_ai/models/__init__.py292CODE
MEDIUMpydantic_ai_slim/pydantic_ai/models/__init__.py850CODE
MEDIUMpydantic_ai_slim/pydantic_ai/models/mcp_sampling.py86CODE
MEDIUM…dantic_ai_slim/pydantic_ai/durable_exec/dbos/_agent.py882CODE
MEDIUMtests/test_ag_ui.py348CODE
MEDIUMtests/models/test_fallback.py523CODE
MEDIUMpydantic_graph/pydantic_graph/step.py112CODE
Modern Structural Boilerplate63 hits · 63 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/retries.py49__all__ = ['RetryConfig', 'TenacityTransport', 'AsyncTenacityTransport', 'wait_retry_after']CODE
LOWpydantic_ai_slim/pydantic_ai/_ssrf.py20__all__ = ['safe_download']CODE
LOWpydantic_ai_slim/pydantic_ai/mcp.py1049 def set_sampling_model(self, model: models.Model) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/_utils.py678def _update_mapped_json_schema_refs(s: dict[str, Any], name_mapping: dict[str, str]) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_adapter.py47__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/ui/__init__.py12__all__ = [CODE
LOW…ntic_ai_slim/pydantic_ai/ui/vercel_ai/_event_stream.py72__all__ = ['VercelAIEventStream']CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_adapter.py106__all__ = ['VercelAIAdapter']CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/__init__.py13__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/ui/vercel_ai/_utils.py44__all__ = []CODE
LOWpydantic_ai_slim/pydantic_ai/ui/_web/__init__.py6__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/_interrupt.py57__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py73__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/_adapter.py143__all__ = ['AGUIAdapter']CODE
LOWpydantic_ai_slim/pydantic_ai/ui/ag_ui/__init__.py7__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/embeddings/__init__.py22__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/capabilities/__init__.py92__all__ = [CODE
LOW…antic_ai_slim/pydantic_ai/native_tools/_tool_search.py34__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/providers/cerebras.py145 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/moonshotai.py119 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/vercel.py116 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/mistral.py87 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/sambanova.py27__all__ = ['SambaNovaProvider']CODE
LOWpydantic_ai_slim/pydantic_ai/providers/sambanova.py118 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/openrouter.py260 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/azure.py175 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/__init__.py77 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/google.py79 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/zai.py105 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/litellm.py140 def _set_http_client(self, http_client: AsyncHTTPClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/groq.py151 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/heroku.py133 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/openai.py90 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/fireworks.py105 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/deepseek.py104 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/anthropic.py118 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/together.py103 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/alibaba.py103 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/github.py118 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/cohere.py88 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/nebius.py108 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/ollama.py122 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/providers/ovhcloud.py101 def _set_http_client(self, http_client: httpx.AsyncClient) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2659 def set_mcp_sampling_model(self, model: models.Model | models.KnownModelName | str | None = None) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/agent/__init__.py2671 def _set_sampling_model(toolset: AbstractToolset[AgentDepsT]) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/agent/spec.py25__all__ = ['CapabilitySpec'] # re-exported from _specCODE
LOWpydantic_ai_slim/pydantic_ai/models/xai.py955 def _update_response_state(self, response: chat_types.Response) -> None:CODE
LOWpydantic_ai_slim/pydantic_ai/models/fallback.py294 def _set_span_attributes(self, model: Model, model_request_parameters: ModelRequestParameters) -> None:CODE
LOW…_ai_slim/pydantic_ai/durable_exec/temporal/__init__.py22__all__ = [CODE
LOW…ntic_ai_slim/pydantic_ai/durable_exec/dbos/__init__.py7__all__ = ['DBOSAgent', 'DBOSModel', 'DBOSParallelExecutionMode', 'StepConfig']CODE
LOW…c_ai_slim/pydantic_ai/durable_exec/prefect/__init__.py8__all__ = [CODE
LOWpydantic_ai_slim/pydantic_ai/profiles/__init__.py13__all__ = [CODE
LOWtests/test_temporal.py2711 def set_deferred_tool_results(self, results: DeferredToolResults) -> None:CODE
LOWtests/mcp_server.py371async def set_logging_level(level: str) -> None:CODE
LOWtests/graph/builder/test_graph_builder.py228 async def set_counter(ctx: StepContext[SimpleState, None, None]) -> None:CODE
LOWtests/graph/builder/test_graph_builder.py232 async def set_result(ctx: StepContext[SimpleState, None, None]) -> None:CODE
LOWtests/v2/test_google_history_replay.py33def _set_google_api_key(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWpydantic_evals/pydantic_evals/_otel_emit.py217def _set_score_attrs(attrs: dict[str, Any], value: Any) -> None:CODE
LOWpydantic_evals/pydantic_evals/dataset.py1261def set_eval_attribute(name: str, value: Any) -> None:CODE
LOW…ntic_evals/pydantic_evals/evaluators/llm_as_a_judge.py220def set_default_judge_model(model: models.Model | models.KnownModelName) -> None:CODE
3 more matches not shown…
Redundant / Tautological Comments37 hits · 56 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/_ssrf.py349 # Check if hostname is already an IP addressCOMMENT
LOWpydantic_ai_slim/pydantic_ai/_ssrf.py394 # Check if it's an absolute URL (has scheme) or protocol-relative URL (has netloc but no scheme)COMMENT
LOWpydantic_ai_slim/pydantic_ai/_ssrf.py509 # Check if we need to follow a redirectCOMMENT
LOWpydantic_ai_slim/pydantic_ai/function_signature.py673 # Check if this is object with properties + nullCOMMENT
LOWpydantic_ai_slim/pydantic_ai/mcp.py1625 # Check if variable exists in environmentCOMMENT
LOWpydantic_ai_slim/pydantic_ai/providers/litellm.py72 # Check if model name contains a provider prefix (e.g., "anthropic/claude-3")COMMENT
LOWpydantic_ai_slim/pydantic_ai/models/__init__.py381 # Check if output mode is supportedCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/openai.py1334 # Check if thinking came from a custom field from the same providerCOMMENT
LOW…ic_ai_slim/pydantic_ai/durable_exec/temporal/_model.py229 # Check if this model instance is already registeredCOMMENT
LOW…/pydantic_ai/durable_exec/prefect/_function_toolset.py47 # Check if this specific tool has custom config or is disabledCOMMENT
LOW…tic_ai_slim/pydantic_ai/durable_exec/prefect/_model.py118 # Check if we're in a flow contextCOMMENT
LOWpydantic_ai_slim/pydantic_ai/_cli/__init__.py147 # Check if this is a web command - route to web parser if soCOMMENT
LOWpydantic_ai_slim/pydantic_ai/profiles/openai.py295 # Check if the model supports web search (only specific search-preview models)COMMENT
LOWtests/test_capabilities.py5025 # Check if there's already a tool return in messages (i.e., tool was called)COMMENT
LOWtests/test_capabilities.py12327 # Check if we already got a tool return (second call succeeded)COMMENT
LOWtests/test_uuid.py48 # Set counter to max so the next same-ms call overflowsCOMMENT
LOWtests/evals/test_evaluators.py229 # Check if the answer is correct based on expected outputCOMMENT
LOWtests/evals/test_llm_as_a_judge.py210 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/evals/test_llm_as_a_judge.py331 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/evals/test_llm_as_a_judge.py441 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/evals/test_llm_as_a_judge.py477 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/evals/test_llm_as_a_judge.py599 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/evals/test_llm_as_a_judge.py630 # Check if 'model' kwarg is passed, its value will be the default model or NoneCOMMENT
LOWtests/graph/builder/test_graph_iteration.py455 # Check if we're about to execute step2COMMENT
LOWtests/models/test_openai.py5281 # Set profile to use URI encodingCOMMENT
LOWtests/models/test_openai.py5337 # Set profile to use URI encodingCOMMENT
LOWdocs/.hooks/main.py169 # Check if code contains Agent() with a model that should be transformedCOMMENT
LOWdocs/.hooks/main.py180 # Check if model starts with one of the gateway-supported modelsCOMMENT
LOWpydantic_evals/pydantic_evals/evaluators/evaluator.py93 # Check if value matches any of the target types, handling bool as a special caseCOMMENT
LOW.github/workflows/pr-guard.yml319 # Check if the existing PR has the Stale labelCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py771 # Check if this join has any intermediate joins that are also active reducersCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py779 # Check if the intermediate join is also an active reducer with matching fork runCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py782 # Check if they share the same fork run for this join's parent forkCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py234 # Check if this join appears in any other join's intermediate_join_nodesCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py1085 # Check if any of the tasks in the graph have this fork_run_id in their fork_stackCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py1817 # Check if this node has any outgoing edgesCOMMENT
LOWpydantic_graph/pydantic_graph/graph_builder.py2052 # Check if this intermediate node is also a joinCOMMENT
Slop Phrases12 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMtests/typed_deps.py41# Ensure that you can use tools with deps that are supertypes of the agent's depsCOMMENT
MEDIUM…test_tool_search/test_tool_search_eval[anthropic].yaml1462 I apologize, but I don't have access to a flight booking tool. I'm unable to book flights from New York to LonCODE
MEDIUMtests/models/test_groq.py890It's worth noting that the weather in San Francisco can be quite variable, and the temperature can drop significantly atCODE
MEDIUMtests/models/test_groq.py1133It's worth noting that the weather in San Francisco can be quite variable, and the temperature can drop significantly atCODE
MEDIUM…_matrix[tool_return_content-url-document-xai].xai.yaml125 The content appears to be purely for demonstration purposes and lacksCODE
MEDIUM…atrix[tool_return_content-url-document-anthropic].yaml159 The document appears to be a simple test or sample PDF, likely used for demonstration purposes, testing PDF reCODE
MEDIUM…tool_return_matrix[direct-url-document-anthropic].yaml156 **Purpose:** This appears to be a test or sample PDF document, likely used for demonstration purposes, testingCODE
MEDIUM…rn_content-url_force_download-document-anthropic].yaml536 This appears to be a test or sample PDF file, likely used for demonstration purposes, testing PDF readers, or CODE
MEDIUM…rix[direct-url_force_download-document-anthropic].yaml534 **Purpose:** This appears to be a sample or test PDF file, likely used for demonstration purposes given its siCODE
MEDIUM…turn_content-url_force_download-document-mistral].yaml539 This PDF appears to be a template or test file, likely used for demonstration purposes.CODE
MEDIUM…ssettes/test_groq/test_groq_model_web_search_tool.yaml52 it is not expected to significantly impact San Francisco.\n\nIt's worth noting that the weather in San FrancCODE
LOW…s/test_deepseek/test_deepseek_model_thinking_part.yaml67 Oh, and making eye contact with drivers if possible. That's a good point. Also, stay visible, maybe avoid diCODE
Structural Annotation Overuse10 hits · 19 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/models/__init__.py592 # Step 3: user overrideCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/__init__.py603 # Step 4: native tools intersection — profile's allowed tools & model's implemented toolsCOMMENT
LOWtests/test_toolsets.py433 # Step 1: Prefix each FunctionToolset individuallyCOMMENT
LOWtests/test_toolsets.py438 # Step 2: Combine the prefixed toolsetsCOMMENT
LOWtests/test_toolsets.py441 # Step 3: Filter tools based on user role and advanced flag, now using prefixed namesCOMMENT
LOWtests/test_toolsets.py453 # Step 4: Apply prepared toolset to modify descriptions (add user role annotation)COMMENT
LOWtests/test_toolsets.py461 # Step 5: Test the fully composed toolsetCOMMENT
LOW.claude/skills/testing-skill/SKILL.md25### Step 1: Record cassettesCOMMENT
LOW.claude/skills/testing-skill/SKILL.md36### Step 2: Verify recordingsCOMMENT
LOW.claude/skills/testing-skill/SKILL.md43### Step 3: Review snapshotsCOMMENT
Verbosity Indicators7 hits · 14 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/models/__init__.py592 # Step 3: user overrideCOMMENT
LOWpydantic_ai_slim/pydantic_ai/models/__init__.py603 # Step 4: native tools intersection — profile's allowed tools & model's implemented toolsCOMMENT
LOWtests/test_toolsets.py433 # Step 1: Prefix each FunctionToolset individuallyCOMMENT
LOWtests/test_toolsets.py438 # Step 2: Combine the prefixed toolsetsCOMMENT
LOWtests/test_toolsets.py441 # Step 3: Filter tools based on user role and advanced flag, now using prefixed namesCOMMENT
LOWtests/test_toolsets.py453 # Step 4: Apply prepared toolset to modify descriptions (add user role annotation)COMMENT
LOWtests/test_toolsets.py461 # Step 5: Test the fully composed toolsetCOMMENT
Overly Generic Function Names11 hits · 10 pts
SeverityFileLineSnippetContext
LOWpydantic_ai_slim/pydantic_ai/retries.py168 def handle_request(self, request: Request) -> Response:CODE
LOWpydantic_ai_slim/pydantic_ai/retries.py183 def handle_request(req: Request) -> Response:CODE
LOWtests/test_ui.py1627 def do_something(x: int) -> int:CODE
LOWtests/typed_agent.py268 def my_method(self) -> bool:CODE
LOWtests/test_tools.py4164 def do_stuff(x: int) -> None:CODE
LOWtests/test_tools.py4174 def do_stuff(x: int):CODE
LOWtests/graph/builder/test_util.py35 def my_function():CODE
LOWtests/models/test_xai.py735 async def process_data(data: str) -> str:CODE
LOWpydantic_evals/pydantic_evals/online.py22async def my_function(x: int) -> int:STRING
LOWpydantic_evals/pydantic_evals/online.py886 async def my_function(x: int) -> int:STRING
LOWpydantic_evals/pydantic_evals/_task_run.py36def run_task() -> Generator[Callable[[], dict[str, Any]]]:CODE
AI Response Leakage1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHpydantic_evals/pydantic_evals/dataset.py1188 # However, I've added this because it affects the details of the otel span, and passing `escaped=True`COMMENT