psycopg[binary]>=3.3.4
PyYAML>=6.0
requests>=2.34.2
python-dotenv>=1.2.2
psycopg2-binary>=2.9.12
redis>=8.0.0
pika>=1.4.1
paramiko>=5.0.0
# API
fastapi>=0.136.3
uvicorn[standard]>=0.48.0
pydantic>=2.13.4
python-multipart>=0.0.20
# Auth (M3: opaque bearer tokens + bcrypt password hashing per ADR 0001)
bcrypt>=4.0
# email-validator is required for pydantic.EmailStr in api/auth_routes.py.
# pydantic[email] pulls in the same dep; pinning it explicitly here so the
# login endpoint's request validation works without an extra install step.
email-validator>=2.2.0
# MF enrichment (Phase 3): local LLM classification plus optional
# Playwright/HTML fallback for deep metadata sources.
openai>=2.10.0
# CAS import image-first LLM extraction renders PDF pages to PNG data URLs.
PyMuPDF>=1.27.2
openpyxl>=3.1.5,<4
beautifulsoup4>=4.12.3
lxml>=5.3.0
playwright>=1.49.0
# Tax config validation (M7: api_rebalance.md §5, scripts/validate_tax_config.py).
jsonschema>=4.0
# Tests
pytest>=8.2.0
httpx>=0.27.0
# Data downloads
numpy>=2.4.6
pandas>=3.0,<4
scipy>=1.17.1
yfinance>=1.4.0
# Chart generation
matplotlib>=3.10.9
seaborn>=0.13.2
pillow>=12.2.0
