pydantic>=2.0
typer>=0.9
pyyaml>=6.0
markdown>=3.5
httpx>=0.24.0
psycopg[binary]>=3.2
psycopg-pool>=3.2
sqlalchemy>=2.0
alembic>=1.14
slowapi>=0.1.9
faker>=20.0
bleach>=6.0
itsdangerous>=2.1
PyJWT>=2.8.0
fastapi>=0.100.0

[aws]
aioboto3>=13.0
boto3>=1.35

[aws-test]
boto3>=1.35
moto[s3]>=5.0

[compliance]
weasyprint>=60.0
markdown>=3.5

[dev]
pytest>=7.4
httpx2>=2.12.0
pytest-asyncio>=0.23
pytest-cov>=4.1
pytest-xdist>=3.3
pytest-timeout>=2.2
hypothesis>=6.82
syrupy>=4.0
mypy>=1.5
ruff>=0.1
radon>=6.0
import-linter>=2.0
z3-solver>=4.13
pyyaml>=6.0
types-PyYAML>=6.0
requests>=2.31
mutmut>=2.4
fastapi>=0.100.0
uvicorn[standard]>=0.24.0
httpx>=0.24.0

[e2e]
playwright>=1.40

[events]
psycopg[binary]>=3.2

[graph]
networkx>=3.0

[llm]
anthropic>=0.21.0
openai>=1.0.0
google-genai>=1.0.0

[mcp]
mcp<3,>=2

[mobile_full]
PyJWT>=2.8.0
cryptography>=50.0.0
google-auth>=2.25.0
httpx>=0.25.0

[observability]
opentelemetry-exporter-otlp-proto-http<2,>=1.27

[perf]
opentelemetry-api<2,>=1.27
opentelemetry-sdk<2,>=1.27
opentelemetry-instrumentation-fastapi<1,>=0.48b0
opentelemetry-instrumentation-psycopg<1,>=0.48b0
opentelemetry-instrumentation-asyncio<1,>=0.48b0

[postgres]

[proof]
z3-solver>=4.13

[redis]
redis>=5.0

[serve]
fastapi>=0.100.0
uvicorn[standard]>=0.24.0
httpx>=0.24.0
python-multipart>=0.0.6

[signing]
fpdf2>=2.8.0
pyhanko>=0.25.0
Pillow>=12.3.0
cryptography>=50.0.0

[social_auth]
google-auth>=2.25.0
httpx>=0.25.0

[sso]
authlib<2,>=1.3.0
dnspython>=2.0

[temporal]
temporalio>=1.4.0

[test-full]
dazzle-dsl[aws,graph,observability,signing]

[viewport]
Pillow>=12.3.0
