# =============================================================================
# Hugging Face Pipeline Starter – Python dependencies
# =============================================================================
# Core requirements.  Version pins are "pinned-ish" (major.minor) to allow
# patch-level updates while preventing breaking changes.
#
# Extra deps by task family (install only what you need):
#   Vision : Pillow>=10.0
#   Audio  : librosa>=0.10, soundfile>=0.12, ffmpeg (system package)
#   Tokenizer extras (some models need sentencepiece):
#              sentencepiece>=0.1.99
#   Sentence embeddings: sentence-transformers>=2.7
#   Datasets: datasets>=2.18
# =============================================================================

# ---------------------------------------------------------------------------
# Core – always required
# ---------------------------------------------------------------------------
transformers>=4.40,<5.0
torch>=2.2,<3.0           # CPU build is fine; GPU users: install torch with CUDA extras
huggingface-hub>=0.22,<1.0
tokenizers>=0.19,<1.0
PyYAML>=6.0,<7.0
python-dotenv>=1.0,<2.0
accelerate>=0.29,<2.0     # optional but recommended for multi-device / mixed precision

# ---------------------------------------------------------------------------
# API service
# ---------------------------------------------------------------------------
fastapi>=0.111,<1.0
uvicorn[standard]>=0.29,<1.0
pydantic>=2.7,<3.0
httpx>=0.27,<1.0           # needed by FastAPI TestClient

# ---------------------------------------------------------------------------
# UI
# ---------------------------------------------------------------------------
gradio>=4.30,<5.0

# ---------------------------------------------------------------------------
# Testing
# ---------------------------------------------------------------------------
pytest>=8.0,<9.0
pytest-asyncio>=0.23,<1.0

# ---------------------------------------------------------------------------
# Optional – uncomment as needed
# ---------------------------------------------------------------------------
# sentencepiece>=0.1.99    # required by T5, XLNet, mBART and others
# sentence-transformers>=2.7,<3.0
# datasets>=2.18,<3.0
# Pillow>=10.0,<11.0       # vision tasks
# librosa>=0.10,<1.0       # audio tasks
# soundfile>=0.12,<1.0     # audio tasks
