# cascadeflow Development Requirements
# Everything needed for development, testing, and contributing

# ============================================================================
# CORE DEPENDENCIES
# ============================================================================

-r requirements.txt


# ============================================================================
# PROVIDER SDKs (For Testing All Providers)
# ============================================================================

# API-based providers (require API keys)
openai>=1.0.0
anthropic>=0.8.0
groq>=0.4.0
huggingface-hub>=0.19.0
together>=0.2.0

# Local inference (optional - can also use HTTP)
# Security note: patched vLLM releases currently require Python >=3.10.
vllm>=0.14.1; python_version >= "3.10" and python_version < "3.14"

# Note: Ollama doesn't need a Python package - uses HTTP


# ============================================================================
# TESTING
# ============================================================================

pytest>=7.4.0
pytest-asyncio>=0.21.0
pytest-cov>=4.1.0
pytest-mock>=3.12.0

# Environment variable management for tests
python-dotenv>=1.0.0


# ============================================================================
# CODE QUALITY
# ============================================================================

# Formatting
black>=23.0.0
isort>=5.12.0

# Linting
ruff>=0.1.0

# Type checking
mypy>=1.5.0

# Pre-commit hooks
pre-commit>=3.5.0


# ============================================================================
# SECURITY SCANNING
# ============================================================================

# Python security linter
bandit>=1.7.0

# Check for known vulnerabilities in dependencies
safety>=2.3.0

# Audit Python packages for known vulnerabilities
pip-audit>=2.4.0


# ============================================================================
# DEVELOPMENT UTILITIES
# ============================================================================

# Rich terminal output (for development/debugging)
rich>=13.0.0

# Web framework for API examples
fastapi>=0.104.0
uvicorn>=0.24.0

# HTTP client (for health checks in examples)
httpx>=0.25.0

# Type stubs
types-requests>=2.31.0


# ============================================================================
# DOCUMENTATION (Optional)
# ============================================================================

# Uncomment if building docs:
# mkdocs>=1.5.0
# mkdocs-material>=9.4.0
# mkdocstrings[python]>=0.23.0


# ============================================================================
# SEMANTIC FEATURES (For ML-based functionality)
# ============================================================================

# Lightweight embedding model for semantic quality checks
# Note: This is optional but required for semantic quality tests
fastembed>=0.2.0

# Transitive security floors (keep dev installs on patched versions)
filelock>=3.20.3
pillow>=12.1.1
marshmallow>=4.1.2


# ============================================================================
# INSTALLATION
# ============================================================================

# Install everything for development:
#   pip install -r requirements-dev.txt
#
# Or install in editable mode:
#   pip install -e ".[dev]"
#
# Run security checks:
#   bandit -r cascadeflow/
#   safety check
#   pip-audit
