# Python 3.12 recommended — facenet-pytorch has compatibility issues on 3.13+
# conda create -n drl python=3.12  (or equivalent venv)

# ── Deep learning ─────────────────────────────────────────────────────────────
torch>=2.0.0
torchvision>=0.15.0

# ── Image processing ──────────────────────────────────────────────────────────
pillow>=10.0.0

# ── Data / evaluation ─────────────────────────────────────────────────────────
numpy>=1.24.0
scikit-learn>=1.3.0       # roc_auc_score, confusion_matrix, train_test_split
tqdm>=4.65.0              # progress bars during training and data loading
torchmetrics>=0.11.0      # metrics for training and evaluation
torch-fidelity>=0.3.0     # required by torchmetrics FrechetInceptionDistance

# ── Visualisation ─────────────────────────────────────────────────────────────
matplotlib>=3.7.0
seaborn>=0.12.0           # heatmaps and statistical plots in notebooks

# ── Notebooks ─────────────────────────────────────────────────────────────────
jupyter>=1.0.0

# ── Dataset download ──────────────────────────────────────────────────────────
huggingface-hub>=0.20.0   # tools/download_data.py pulls DFF from HuggingFace

# ── Face detection (optional) ─────────────────────────────────────────────────
# Required only for the face-crop preprocessing tools:
#   classifier/tools/facecrop.py  (bbox crop -> cropped/classifier/)
#   generator/tools/facecrop.py   (landmark alignment -> cropped/generator/)
# Skip if you don't run these — saves ~200 MB and avoids the
# pytorch-lightning transitive dependency.
facenet-pytorch>=2.5.0
scikit-image>=0.21.0      # similarity-transform alignment in generator/tools/facecrop.py