# ── Core Hugging Face stack ───────────────────────────────────
transformers>=4.40.0
datasets>=2.19.0
tokenizers>=0.19.0
accelerate>=0.29.0          # required by Trainer for multi-GPU / mixed-precision
evaluate>=0.4.1             # metrics (accuracy, f1, etc.)
huggingface-hub>=0.22.0     # model/dataset download utilities

# ── Numerics & data ───────────────────────────────────────────
numpy>=1.26.0
pandas>=2.1.0
scikit-learn>=1.4.0         # classification_report, label encoding

# ── Configuration ─────────────────────────────────────────────
pyyaml>=6.0.1
python-dotenv>=1.0.0

# ── API ───────────────────────────────────────────────────────
fastapi>=0.110.0
uvicorn[standard]>=0.29.0
pydantic>=2.6.0

# ── UI ────────────────────────────────────────────────────────
gradio>=4.28.0              # lightweight demo UI (no heavy Streamlit overhead for NLP)

# ── Visualisation ─────────────────────────────────────────────
matplotlib>=3.8.0
seaborn>=0.13.0

# ── CLI ───────────────────────────────────────────────────────
click>=8.1.7

# ── Testing ───────────────────────────────────────────────────
pytest>=8.1.0
httpx>=0.27.0               # async test client for FastAPI

# ── Optional extras (uncomment if needed) ─────────────────────
# sentencepiece>=0.2.0      # required by T5, XLM-RoBERTa and other multilingual models
# protobuf>=4.25.0          # needed by some sentencepiece backends
# torch>=2.1.0              # Trainer uses PyTorch by default; install separately or via:
#   pip install torch --index-url https://download.pytorch.org/whl/cpu
