# MES Dashboard Dependencies
# ===========================
#
# Version Strategy:
#   Use bounded version ranges (>=,<) to avoid accidental major-version breaks.
#   For reproducible builds, generate a lock file: pip freeze > requirements.lock
#
# Python Version: >=3.9 (recommended: 3.11)

# Core Framework
flask>=3.0.0,<4.0.0

# Database
oracledb>=2.0.0,<4.0.0
sqlalchemy>=2.0.0,<3.0.0

# Data Processing
pandas==2.3.3       # pandas 3.x removed DBAPI2 flow used by current pd.read_sql + SQLAlchemy usage
pyarrow>=17.0.0,<20.0.0   # Parquet serialization for Redis DataFrame cache
openpyxl>=3.0.0            # Excel file support

# Cache (Redis)
redis>=5.0.0,<6.0.0
hiredis>=2.0.0,<4.0.0      # C parser for better Redis performance

# Task Queue (async trace jobs)
rq>=1.16.0,<2.0.0

# HTTP Client
requests>=2.28.0,<3.0.0

# Configuration
python-dotenv>=1.0.0,<2.0.0

# WSGI Server
gunicorn>=21.2.0,<25.0.0   # Linux/macOS production server
waitress>=2.1.2,<4.0.0; platform_system=="Windows"  # Windows alternative

# System Monitoring
psutil>=5.9.0,<7.0.0       # Process and system utilities
