# =============================================================================
# Python Dependencies for DPDPA Code Templates
# =============================================================================
# Install with: pip install -r requirements.txt
# Recommended: Use a virtual environment (venv or conda)
# =============================================================================

# -----------------------------------------------------------------------------
# Core Dependencies (Required for all templates)
# -----------------------------------------------------------------------------
pydantic>=2.5.0              # Data validation and settings management
pyyaml>=6.0.1                # YAML parsing for data_inventory_schema.yaml

# -----------------------------------------------------------------------------
# Data Subject Rights Service (data_subject_rights_service.py)
# -----------------------------------------------------------------------------
fastapi>=0.109.0             # REST API framework
uvicorn[standard]>=0.27.0    # ASGI server for FastAPI
sqlalchemy>=2.0.25           # Database ORM (if using DB backend)
psycopg2-binary>=2.9.9       # PostgreSQL driver (if using PostgreSQL)
# OR for MySQL: mysqlclient>=2.2.0
celery>=5.3.4                # Async task queue for long-running operations
redis>=5.0.1                 # Message broker for Celery
python-multipart>=0.0.6      # File upload support for identity verification

# -----------------------------------------------------------------------------
# Governance Configuration (governance_config.py)
# -----------------------------------------------------------------------------
# No additional dependencies beyond core

# -----------------------------------------------------------------------------
# Optional: Production Deployment
# -----------------------------------------------------------------------------
gunicorn>=21.2.0             # Production WSGI server
prometheus-client>=0.19.0    # Metrics and monitoring
sentry-sdk>=1.40.0           # Error tracking

# -----------------------------------------------------------------------------
# Optional: Testing
# -----------------------------------------------------------------------------
pytest>=7.4.4                # Testing framework
pytest-asyncio>=0.23.3       # Async test support
httpx>=0.26.0                # HTTP client for API testing
faker>=22.0.0                # Generate test data

# -----------------------------------------------------------------------------
# Optional: Development
# -----------------------------------------------------------------------------
black>=23.12.1               # Code formatter
ruff>=0.1.11                 # Fast linter
mypy>=1.8.0                  # Type checking

# =============================================================================
# Compatibility Notes
# =============================================================================
# - Requires Python 3.9+ (for type hints and dataclasses)
# - Python 3.12+ recommended (datetime.now(timezone.utc) used throughout)
# - Tested on Python 3.12.1
#
# For production deployment:
#   - Pin exact versions in production (remove >= constraints)
#   - Use pip freeze > requirements-lock.txt
#   - Review security advisories before upgrading
# =============================================================================
