# --- Web API ---
fastapi>=0.103,<1.0          # FastAPI supports Pydantic v2 in these versions. See docs. 
uvicorn[standard]>=0.22,<1.0  # ASGI server for FastAPI

# --- Settings / validation (Pydantic v2) ---
pydantic>=2.7,<3.0            # Pydantic v2 (v1->v2 migration notes below)
pydantic-settings>=2,<3  # BaseSettings moved here in v2; loads .env files
python-dotenv>=1.0,<2.0

# --- Database (PostgreSQL via SQLAlchemy 2.x) ---
SQLAlchemy>=2.0,<3.0          # ORM/core (2.x line)
psycopg2-binary>=2.9,<3.0     # PostgreSQL driver (easy install on Windows)

# --- InfluxDB 2.x client ---
influxdb-client>=1.41,<2.0    # Official Python client for InfluxDB 2.x

# --- File watching & utilities ---
watchdog>=3.0,<6.0            # File system watcher
requests>=2.31,<3.0           # HTTP calls from watcher to ingestion API

# --- Numerical stack ---
numpy>=1.24,<3.0
pandas>=2.0,<3.0
scipy>=1.10,<2.0              # For signal processing (butter, filtfilt)
tzdata>=2023.3,<2026.0  # Timezone data for pandas

# --- Management UI / Service-to-service calls ---
httpx>=0.27,<1.0
jinja2>=3.1,<4.0
python-multipart>=0.0.9,<1.0

# --- Queue / event bus ---
redis>=5.0,<6.0

# --- Plots (manual validation UI) ---
matplotlib>=3.8,<4.0


# --- Interactive plotting (UI manual page) ---
plotly>=5.0,<6.0
