# ===============================================================================
# Path of Exile 2 Build Optimizer MCP Server - Requirements
# ===============================================================================
# Requires Python 3.9 or higher
# Install: pip install -r requirements.txt
#
# For minimal installation (basic MCP server only):
#   pip install mcp fastapi uvicorn pydantic sqlalchemy aiosqlite httpx anthropic python-dotenv
# ===============================================================================

# MCP Protocol (REQUIRED)
mcp>=0.9.0

# Web Framework (REQUIRED)
fastapi>=0.104.0
uvicorn[standard]>=0.24.0

# Data Validation (REQUIRED)
pydantic>=2.5.0
pydantic-settings>=2.1.0

# Database (REQUIRED)
sqlalchemy>=2.0.0
alembic>=1.12.0
aiosqlite>=0.19.0

# HTTP & API Clients (REQUIRED)
httpx>=0.25.0
aiohttp>=3.9.0
requests>=2.31.0

# AI Integration (REQUIRED for AI-powered features)
anthropic>=0.8.0
openai>=1.6.0  # Optional alternative to Anthropic

# Web Scraping (REQUIRED for data seeding)
beautifulsoup4>=4.12.0
lxml>=4.9.3

# Trade Authentication (OPTIONAL - only for search_trade_items MCP tool)
# Install with: pip install playwright && playwright install chromium
# See docs/guides/TRADE_AUTH_QUICK_START.md for setup
playwright>=1.40.0  # Includes ~150MB browser download

# Configuration & Environment (REQUIRED)
python-dotenv>=1.0.0
pyyaml>=6.0.1

# Logging & Utilities (REQUIRED)
loguru>=0.7.2
tenacity>=8.2.3
cachetools>=5.3.2

# Rate Limiting (REQUIRED)
ratelimit>=2.2.1
slowapi>=0.1.9

# Date/Time (REQUIRED)
python-dateutil>=2.8.2
pytz>=2023.3

# XML/JSON Processing (REQUIRED for Path of Building integration)
xmltodict>=0.13.0
defusedxml>=0.7.1

# Validation (REQUIRED)
validators>=0.22.0
email-validator>=2.1.0

# Async File Operations (REQUIRED)
aiofiles>=23.2.1

# Performance (REQUIRED)
orjson>=3.9.10
msgpack>=1.0.7

# Web Interface (REQUIRED for future web API)
jinja2>=3.1.2
python-multipart>=0.0.6

# Security (REQUIRED)
# Reserved for future web API authentication
# Note: Previously included cryptography, python-jose, and passlib
# Removed due to CVE-2024-23342 (Minerva timing attack on python-ecdsa via python-jose)
# These dependencies were unused and can be added back when authentication is implemented

# Windows-specific (REQUIRED on Windows)
pywin32>=306; platform_system == "Windows"

# ===============================================================================
# OPTIONAL - Development & Testing Dependencies
# ===============================================================================
# Install separately when needed:
#   pip install pytest pytest-asyncio pytest-cov pytest-mock
#   pip install black flake8 mypy isort
#   pip install ipython jupyter
#
# Testing:
#   pytest>=7.4.0
#   pytest-asyncio>=0.21.0
#   pytest-cov>=4.1.0
#   pytest-mock>=3.12.0
#
# Code Quality:
#   black>=23.11.0
#   flake8>=6.1.0
#   mypy>=1.7.0
#   isort>=5.12.0
#
# Documentation:
#   mkdocs>=1.5.0
#   mkdocs-material>=9.4.0
#
# Development:
#   ipython>=8.17.0
#   jupyter>=1.0.0
#
# Monitoring (production):
#   prometheus-client>=0.19.0
#   sentry-sdk>=1.38.0
#
# Advanced Analytics:
#   pandas>=2.1.0
#   numpy>=1.26.0
#
# Caching (Redis):
#   redis>=5.0.0
#   aioredis>=2.0.0
