Show 307 more MEDIUM findings
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:21
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:31
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:36
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:38
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:65
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:68
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...lery\repos\pydantic-ai\.github\set_docs_pr_preview_url.py:71
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...s\warden\gallery\repos\pydantic-ai\docs\.hooks\algolia.py:153
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...s\warden\gallery\repos\pydantic-ai\docs\.hooks\algolia.py:156
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...s\warden\gallery\repos\pydantic-ai\docs\.hooks\algolia.py:160
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...s\warden\gallery\repos\pydantic-ai\docs\.hooks\algolia.py:184
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pydantic-ai\examples\pydantic_ai_examples\bank_support.py:92
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pydantic-ai\examples\pydantic_ai_examples\bank_support.py:98
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pydantic-ai\examples\pydantic_ai_examples\data_analyst.py:107
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\flight_booking.py:201
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\flight_booking.py:205
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\flight_booking.py:235
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\flight_booking.py:240
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\pydantic_model.py:26
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\pydantic_model.py:31
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\pydantic_model.py:32
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:101
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:115
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:137
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:139
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:140
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:143
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:156
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\question_graph.py:168
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...ry\repos\pydantic-ai\examples\pydantic_ai_examples\rag.py:96
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...ry\repos\pydantic-ai\examples\pydantic_ai_examples\rag.py:255
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\roulette_wheel.py:57
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...dantic-ai\examples\pydantic_ai_examples\roulette_wheel.py:63
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...ydantic-ai\examples\pydantic_ai_examples\weather_agent.py:101
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pos\pydantic-ai\examples\pydantic_ai_examples\__main__.py:42
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pos\pydantic-ai\examples\pydantic_ai_examples\__main__.py:51
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...pos\pydantic-ai\examples\pydantic_ai_examples\__main__.py:63
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...les\pydantic_ai_examples\evals\example_03_unit_testing.py:30
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D12
Hardcoded model name: 'Acquire a slot, waiting if necessary.
Args:
source: Identifier for observability (e.g., 'model:gpt-4o').
' — no routing/fallback
...s\pydantic-ai\pydantic_ai_slim\pydantic_ai\concurrency.py:52
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Acquire a slot, creating a span if waiting is required.
Args:
source: Identifier for the source of this acquisition (e.g., 'agent:my-agent' or 'model:gpt-4').
' — no routing/fallback
...s\pydantic-ai\pydantic_ai_slim\pydantic_ai\concurrency.py:172
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Get an async context manager for the concurrency limiter.
If limiter is None, returns a no-op context manager.
Args:
limiter: The AbstractConcurrencyLimiter or None.
source: Identifier for the source of this acquisition (e.g., 'agent:my-agent' or 'model:gpt-4').
Returns:
An async context manager.
' — no routing/fallback
...s\pydantic-ai\pydantic_ai_slim\pydantic_ai\concurrency.py:260
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-5-sonnet-20241022-v2:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:144
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-5-sonnet-20241022-v2:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:145
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-5-haiku-20241022-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:146
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-5-haiku-20241022-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:147
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-sonnet-20240229-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:151
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-sonnet-20240229-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:152
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-haiku-20240307-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:153
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-haiku-20240307-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:154
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-opus-20240229-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:155
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-opus-20240229-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:156
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-5-sonnet-20240620-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:157
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-5-sonnet-20240620-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:158
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic.claude-3-7-sonnet-20250219-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:159
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'us.anthropic.claude-3-7-sonnet-20250219-v1:0' — no routing/fallback
...ydantic-ai\pydantic_ai_slim\pydantic_ai\models\bedrock.py:160
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'A model wrapper that limits concurrent requests to the underlying model.
This wrapper applies concurrency limiting at the model level, ensuring that
the number of concurrent requests to the model does not exceed the configured
limit. This is useful for:
- Respecting API rate limits
- Managing resource usage
- Sharing a concurrency pool across multiple models
Example usage:
```python
from pydantic_ai import Agent
from pydantic_ai.models.concurrency import ConcurrencyLimitedModel
# Limit to 5 concurrent requests
model = ConcurrencyLimitedModel('openai:gpt-4o', limiter=5)
agent = Agent(model)
# Or share a limiter across multiple models
from pydantic_ai import ConcurrencyLimiter # noqa E402
shared_limiter = ConcurrencyLimiter(max_running=10, name='openai-pool')
model1 = ConcurrencyLimitedModel('openai:gpt-4o', limiter=shared_limiter)
model2 = ConcurrencyLimitedModel('openai:gpt-4o-mini', limiter=shared_limiter)
```
' — no routing/fallback
...tic-ai\pydantic_ai_slim\pydantic_ai\models\concurrency.py:28
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Wrap a model with concurrency limiting.
This is a convenience function to wrap a model with concurrency limiting.
If the limiter is None, the model is returned unchanged.
Args:
model: The model to wrap.
limiter: The concurrency limit configuration.
Returns:
The wrapped model with concurrency limiting, or the original model if limiter is None.
Example:
```python
from pydantic_ai.models.concurrency import limit_model_concurrency
model = limit_model_concurrency('openai:gpt-4o', limiter=5)
```
' — no routing/fallback
...tic-ai\pydantic_ai_slim\pydantic_ai\models\concurrency.py:118
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'chatgpt-4o-latest' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:168
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-0125-preview' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:172
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-1106-preview' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:173
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-turbo-preview' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:174
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-32k' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:176
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-32k-0314' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:177
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-32k-0613' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:178
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4-vision-preview' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:179
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gpt-4o-audio-preview-2024-10-01' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:181
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Compaction capability for OpenAI Responses API.
Calls the `responses.compact` endpoint via a `before_model_request` hook
when the trigger condition is met. The compacted history replaces the
original messages, keeping conversation context within manageable limits.
Example usage::
from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAICompaction
agent = Agent(
'openai-responses:gpt-4o',
capabilities=[OpenAICompaction(message_count_threshold=10)],
)
' — no routing/fallback
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\openai.py:3151
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-5-haiku-20241022' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:68
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-5-haiku-latest' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:69
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-7-sonnet-20250219' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:70
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-7-sonnet-latest' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:71
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-haiku-20240307' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:72
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-opus-20240229' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:73
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'anthropic:claude-3-opus-latest' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:74
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-5-haiku-20241022-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:93
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:94
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-5-sonnet-20241022-v2:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:95
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-7-sonnet-20250219-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:96
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-haiku-20240307-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:97
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-opus-20240229-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:98
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:anthropic.claude-3-sonnet-20240229-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:99
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:130
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-5-sonnet-20240620-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:131
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-5-sonnet-20241022-v2:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:132
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-7-sonnet-20250219-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:133
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-haiku-20240307-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:134
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-opus-20240229-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:135
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'bedrock:us.anthropic.claude-3-sonnet-20240229-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:136
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/anthropic:claude-3-haiku-20240307' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:161
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:177
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/bedrock:anthropic.claude-3-haiku-20240307-v1:0' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:178
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-3.5-turbo-0125' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:201
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-3.5-turbo-1106' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:202
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-3.5-turbo-16k' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:203
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-3.5-turbo' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:204
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4-0613' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:205
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4-turbo-2024-04-09' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:206
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4-turbo' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:207
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:208
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1-mini-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:209
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1-mini' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:210
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1-nano-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:211
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1-nano' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:212
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4.1' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:213
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:214
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-2024-05-13' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:215
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-2024-08-06' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:216
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-2024-11-20' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:217
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-mini-2024-07-18' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:218
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-mini-search-preview-2025-03-11' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:219
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-mini-search-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:220
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-mini' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:221
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-search-preview-2025-03-11' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:222
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o-search-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:223
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'gateway/openai:gpt-4o' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:224
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'heroku:claude-3-5-haiku' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:336
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'heroku:claude-3-5-sonnet-latest' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:337
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'heroku:claude-3-7-sonnet' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:338
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'heroku:claude-3-haiku' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:339
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-0125' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:382
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-0301' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:383
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-0613' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:384
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-1106' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:385
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-16k-0613' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:386
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo-16k' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:387
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-3.5-turbo' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:388
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4-0314' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:389
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4-0613' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:390
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4-turbo-2024-04-09' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:391
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4-turbo' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:392
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:393
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1-mini-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:394
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1-mini' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:395
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1-nano-2025-04-14' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:396
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1-nano' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:397
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4.1' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:398
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:399
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-2024-05-13' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:400
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-2024-08-06' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:401
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-2024-11-20' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:402
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-audio-preview-2024-12-17' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:403
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-audio-preview-2025-06-03' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:404
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-audio-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:405
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini-2024-07-18' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:406
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini-audio-preview-2024-12-17' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:407
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini-audio-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:408
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini-search-preview-2025-03-11' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:409
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini-search-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:410
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-mini' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:411
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-search-preview-2025-03-11' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:412
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o-search-preview' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:413
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'openai:gpt-4o' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:414
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Backward compat: allows prefix-only model names like `gpt-4` without `provider:`.' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:1171
Use model routing or configuration instead of hardcoded names
MEDIUM
D12
Hardcoded model name: 'Parse a model id string into its provider and model name components.
Handles both the modern `provider:model` format and legacy model names
that start with known prefixes (e.g., `gpt-4`, `claude-3`).
Emits a `DeprecationWarning` when a legacy prefix-based model name is used.
Args:
model: A model identifier string, either `provider:model_name` or a legacy
prefix-based name.
Returns:
A tuple of `(provider_name, model_name)`. If the provider can't be inferred,
returns `(None, model)` so callers can decide how to handle unknown providers.
' — no routing/fallback
...dantic-ai\pydantic_ai_slim\pydantic_ai\models\__init__.py:1175
Use model routing or configuration instead of hardcoded names
MEDIUM
D5
print() used instead of structured logging
...s\pydantic-ai\pydantic_evals\pydantic_evals\generation.py:84
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:115
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:118
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:120
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:123
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:132
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:141
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:145
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:146
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:149
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:150
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:152
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:153
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:154
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:155
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...rden\gallery\repos\pydantic-ai\scripts\check_cassettes.py:158
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...arden\gallery\repos\pydantic-ai\scripts\scrub_cassette.py:25
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...arden\gallery\repos\pydantic-ai\scripts\scrub_cassette.py:27
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:25
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:31
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:41
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:45
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:60
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:66
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:86
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:106
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:129
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:136
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\upload_test_files.py:150
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:17
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:18
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:19
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:20
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:23
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:29
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:31
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:33
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:36
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:37
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:51
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:53
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:56
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:57
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:94
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...allery\repos\pydantic-ai\scripts\verify_bedrock_access.py:96
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\verify_vertex_gcs.py:52
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\verify_vertex_gcs.py:54
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\verify_vertex_gcs.py:58
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\verify_vertex_gcs.py:59
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...en\gallery\repos\pydantic-ai\scripts\verify_vertex_gcs.py:60
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...\repos\pydantic-ai\scripts\verify_vertex_gcs_all_types.py:64
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...\repos\pydantic-ai\scripts\verify_vertex_gcs_all_types.py:66
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...\repos\pydantic-ai\scripts\verify_vertex_gcs_all_types.py:70
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...\repos\pydantic-ai\scripts\verify_vertex_gcs_all_types.py:71
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...\repos\pydantic-ai\scripts\verify_vertex_gcs_all_types.py:72
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...epos\pydantic-ai\scripts\verify_vertex_gcs_tool_result.py:62
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...epos\pydantic-ai\scripts\verify_vertex_gcs_tool_result.py:64
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...epos\pydantic-ai\scripts\verify_vertex_gcs_tool_result.py:91
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
print() used instead of structured logging
...epos\pydantic-ai\scripts\verify_vertex_gcs_tool_result.py:93
Use logging.* or structlog.* for structured, searchable logs
MEDIUM
D5
JavaScript: Console logging with potential sensitive data
...pos\pydantic-ai\examples\pydantic_ai_examples\chat_app.ts:31
Use structured logging and redact sensitive fields
MEDIUM
D4
Exposed Generic Secret: api...-key
...Projects\warden\gallery\repos\pydantic-ai\docs\retries.md:297
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:120
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:142
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:238
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:256
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: tok...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:278
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: tok...v...
...Projects\warden\gallery\repos\pydantic-ai\docs\gateway.md:297
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...jects\warden\gallery\repos\pydantic-ai\docs\embeddings.md:157
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...jects\warden\gallery\repos\pydantic-ai\docs\embeddings.md:171
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...\warden\gallery\repos\pydantic-ai\docs\models\cerebras.md:55
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...\warden\gallery\repos\pydantic-ai\docs\models\cerebras.md:73
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...s\warden\gallery\repos\pydantic-ai\docs\models\mistral.md:55
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...s\warden\gallery\repos\pydantic-ai\docs\models\mistral.md:73
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...warden\gallery\repos\pydantic-ai\docs\models\anthropic.md:55
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...warden\gallery\repos\pydantic-ai\docs\models\anthropic.md:75
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...warden\gallery\repos\pydantic-ai\docs\models\anthropic.md:139
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\cohere.md:54
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\cohere.md:71
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ects\warden\gallery\repos\pydantic-ai\docs\models\groq.md:55
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ects\warden\gallery\repos\pydantic-ai\docs\models\groq.md:73
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:55
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:90
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:251
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:277
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:309
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:328
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:355
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:371
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:448
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:503
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:531
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...oken
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:559
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:581
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:610
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:638
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:666
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...key>
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:689
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:724
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:758
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:792
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\openai.md:812
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...oken
...rden\gallery\repos\pydantic-ai\docs\models\huggingface.md:64
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...oken
...rden\gallery\repos\pydantic-ai\docs\models\huggingface.md:85
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\google.md:45
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\google.md:135
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...ts\warden\gallery\repos\pydantic-ai\docs\models\google.md:216
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...jects\warden\gallery\repos\pydantic-ai\docs\models\xai.md:54
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...jects\warden\gallery\repos\pydantic-ai\docs\models\xai.md:69
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...arden\gallery\repos\pydantic-ai\docs\models\openrouter.md:33
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...arden\gallery\repos\pydantic-ai\docs\models\openrouter.md:49
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-key
...antic-ai\pydantic_ai_slim\pydantic_ai\common_tools\exa.py:417
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D4
Exposed Generic Secret: api...-set
...antic-ai\pydantic_ai_slim\pydantic_ai\providers\openai.py:75
Move to secrets manager or .env file (excluded from VCS)
EU AI Act Article 15OWASP LLM09
MEDIUM
D8
Agent class 'WrapperAgent' has no defined lifecycle states
...pydantic-ai\pydantic_ai_slim\pydantic_ai\agent\wrapper.py:32
Add state machine (ACTIVE/SUSPENDED/RETIRED) for agent lifecycle
MEDIUM
D8
Agent class 'DBOSAgent' has no defined lifecycle states
...\pydantic_ai_slim\pydantic_ai\durable_exec\dbos\_agent.py:53
Add state machine (ACTIVE/SUSPENDED/RETIRED) for agent lifecycle
MEDIUM
D8
Agent class 'PrefectAgent' has no defined lifecycle states
...dantic_ai_slim\pydantic_ai\durable_exec\prefect\_agent.py:46
Add state machine (ACTIVE/SUSPENDED/RETIRED) for agent lifecycle
MEDIUM
D8
Agent class 'TemporalAgent' has no defined lifecycle states
...antic_ai_slim\pydantic_ai\durable_exec\temporal\_agent.py:58
Add state machine (ACTIVE/SUSPENDED/RETIRED) for agent lifecycle
MEDIUM
D3
No concurrency block — parallel deployments possible
...\gallery\repos\pydantic-ai\.github\workflows\after-ci.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D3
No concurrency block — parallel deployments possible
...gallery\repos\pydantic-ai\.github\workflows\at-claude.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D14
Push trigger without branch protection guard
...gallery\repos\pydantic-ai\.github\workflows\at-claude.yml:1
Add if: github.ref == 'refs/heads/main' or restrict push trigger branches
MEDIUM
D3
No concurrency block — parallel deployments possible
...warden\gallery\repos\pydantic-ai\.github\workflows\ci.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D14
Push trigger without branch protection guard
...warden\gallery\repos\pydantic-ai\.github\workflows\ci.yml:1
Add if: github.ref == 'refs/heads/main' or restrict push trigger branches
MEDIUM
D3
No concurrency block — parallel deployments possible
...os\pydantic-ai\.github\workflows\gateway-model-health.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D3
No concurrency block — parallel deployments possible
...os\pydantic-ai\.github\workflows\manually-deploy-docs.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D3
No concurrency block — parallel deployments possible
...den\gallery\repos\pydantic-ai\.github\workflows\stale.yml:1
Add concurrency: group with cancel-in-progress to prevent parallel deploys
MEDIUM
D3
No .github/CODEOWNERS file — no code ownership enforcement
Add CODEOWNERS to enforce review requirements per path
EU AI Act Article 9
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...pydantic-ai\pydantic_ai_slim\pydantic_ai\models\google.py:924
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...c-ai\pydantic_ai_slim\pydantic_ai\providers\google_gla.py:25
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...ects\warden\gallery\repos\pydantic-ai\tests\test_agent.py:6450
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...jects\warden\gallery\repos\pydantic-ai\tests\test_dbos.py:1197
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...warden\gallery\repos\pydantic-ai\tests\test_embeddings.py:100
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...s\warden\gallery\repos\pydantic-ai\tests\test_examples.py:200
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...ojects\warden\gallery\repos\pydantic-ai\tests\test_mcp.py:367
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...s\warden\gallery\repos\pydantic-ai\tests\test_messages.py:845
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...\gallery\repos\pydantic-ai\tests\test_streaming_errors.py:241
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...s\warden\gallery\repos\pydantic-ai\tests\test_temporal.py:2216
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...den\gallery\repos\pydantic-ai\tests\models\mock_openai.py:34
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...\gallery\repos\pydantic-ai\tests\models\test_anthropic.py:139
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...en\gallery\repos\pydantic-ai\tests\models\test_bedrock.py:132
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...den\gallery\repos\pydantic-ai\tests\models\test_cohere.py:571
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...den\gallery\repos\pydantic-ai\tests\models\test_gemini.py:572
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...den\gallery\repos\pydantic-ai\tests\models\test_google.py:142
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...llery\repos\pydantic-ai\tests\models\test_instrumented.py:138
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...en\gallery\repos\pydantic-ai\tests\models\test_mistral.py:2445
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...\pydantic-ai\tests\models\test_multimodal_tool_returns.py:326
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...den\gallery\repos\pydantic-ai\tests\models\test_openai.py:111
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...y\repos\pydantic-ai\tests\models\test_openai_responses.py:110
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...llery\repos\pydantic-ai\tests\providers\test_anthropic.py:19
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...n\gallery\repos\pydantic-ai\tests\providers\test_azure.py:36
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...gallery\repos\pydantic-ai\tests\providers\test_bedrock.py:39
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D1
Cloud AI endpoint URL hardcoded in source — hinders environment portability
...lery\repos\pydantic-ai\tests\providers\test_google_gla.py:20
Move AI service endpoints to environment variables or configuration files
OWASP LLM06
MEDIUM
D17
No adversarial testing evidence — no red team, no prompt injection tests
Implement adversarial testing for agent systems
MEDIUM
D17
No tool-call attack simulation — agent tool calls not tested against adversarial inputs
Implement adversarial testing for agent systems
MEDIUM
D17
No multi-agent chaos engineering — agent swarms not stress tested
Implement adversarial testing for agent systems