# Зависимости проекта с зафиксированными версиями.
#
# Установка:
#   pip install -r requirements.txt
# Для инференса на CPU (меньше образ, без CUDA-колёс):
#   pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
#
# Состав разбит на две части:
#   1) рабочие зависимости — используются приложением и обучением;
#   2) устаревшие модули — код старых сегментаторов, не подключённый к
#      действующему API (src/model/segmentator.py, src/quality/medical_quality.py,
#      src/core/orchestrator.py). Для контейнера инференса они не нужны:
#      эти модули не импортируются ни из src/main.py, ни из src/dxa/*.

# --- Веб-слой ---
fastapi==0.128.8
starlette==0.49.3
uvicorn==0.39.0
python-multipart==0.0.20
pydantic==2.13.4

# --- Глубокое обучение ---
torch==2.8.0
torchvision==0.23.0

# --- DICOM и изображения ---
pydicom==2.4.4
Pillow==11.3.0
opencv-python-headless==4.11.0.86

# --- Данные, метрики, таблицы ---
numpy==1.26.4
pandas==2.3.3
openpyxl==3.1.5
scikit-learn==1.6.1
scipy==1.13.1

# --- Утилиты ---
tqdm==4.70.0

# --- Тесты ---
pytest==8.4.2

# --- Устаревшие модули (не используются действующим API) ---
# TotalSegmentator при первом запуске скачивает собственные веса из сети,
# поэтому в офлайн-контейнер инференса его включать не следует.
# monai==1.5.2
# TotalSegmentator==2.18.0
# nibabel==5.3.3
# simpleitk==2.5.6
# pydicom-seg==0.4.1
# timm==1.0.29

# --- Сборка презентации (приложению не нужна) ---
# tools/build_deck.py собирает docs/deck.pptx из шаблона организаторов.
# В образ инференса эту зависимость ставить не нужно.
# python-pptx==1.0.2
