# GroundTruther – Python dependencies
#
# DO NOT install these with any system Python.
# Use setup_windows.ps1 (Windows) or setup_wsl.sh (Linux/WSL2) which
# target the correct Python interpreter for your QGIS installation.
#
# osgeo / gdal / PyQt5 / qgis are intentionally absent – they ship
# with QGIS and must NOT be installed via pip.

# ---- Core data handling ----
numpy
pandas
pyarrow

# ---- Image I/O and computer vision ----
scikit-image
scipy

# ---- Video support ----
# Use the headless variant to avoid bundling a second copy of Qt that would
# conflict with QGIS's own Qt libraries.
# GPU/CUDA decode requires a CUDA-enabled build — see notes below.
opencv-python-headless>=4.8

# PyAV — preferred video decode backend. Unlike OpenCV's FFmpeg path it
# deinterlaces interlaced sources (yadif), which FFmpeg 7/8 swscale otherwise
# refuses to convert to BGR ("Cannot convert interlaced to progressive frames").
# The player falls back to OpenCV when PyAV is unavailable.
av>=11

# ---- Plotting / visualisation ----
pyqtgraph
PyOpenGL
matplotlib
plotnine

# ---- Geospatial ----
pyproj
simplekml
requests
geojson

# ---- Config & templating ----
PyYAML
# pydantic – config_model.py validates correctly under both v1 and v2;
# configure.py imports ValidationError with a v1→v2 fallback.
pydantic>=1.9
starlette
Jinja2

# ---- JIT acceleration ----
# Required: the BS Query Builder imports pip_cpu (numba) unconditionally.
# On Windows this needs an LLVM toolchain.
numba
