# Shared use-case requirements. Used by all use-case base images.
psutil==7.0.0
azure-servicebus==7.14.3
# azure-servicebus imports this at connect() for TransportType.AmqpOverWebsocket
# (core/interfaces/service_bus.py, core/observability/batch_flops.py) but doesn't declare
# it; it used to arrive transitively via the kubernetes pin. Keep it explicit.
websocket-client==1.9.0
# ONE cv2, the headless build (backend#3456, RFC-0087 W2). albumentations 2.0.5
# requires `opencv-python-headless>=4.9.0.80`, so pinning the GUI build here put
# TWO cv2 distributions in every image, unpacked into one `cv2/` (63 + 61 MB
# compressed, 251 MB on disk). This pin satisfies albumentations, needs no libGL,
# and is what let the CPU Dockerfiles drop apt `python3-opencv`.
opencv-python-headless==4.11.0.86
pandas==2.3.0
mysql-connector-python==9.3.0
numpy==2.1.3
pillow==13.0.0
torch==2.14.1
torchvision==0.29.1
torchmetrics==1.9.0
albumentations==2.0.5
tracebloc-telemetry==0.1.0    # RFC-BACKEND-1872 D2 — the shared contract emitter
# Kept: a training pod on a customer cluster has no other route off it until
# the edge collector ships (backend#1905/#1906, RFC-1872 D10).
opencensus==0.11.4
opencensus-context==0.1.3
opencensus-ext-azure==1.1.15
timm==1.0.26
transformers==5.16.1
einops==0.8.2
# SEC-03 (RFC 0004): weight I/O reads/writes SafeTensors via core/contracts/safetensors_io.py.
# Floor (not an exact pin) kept identical across the three mirrors (SDK / engine / averaging-service);
# left unpinned so transformers' resolver still governs the exact build.
safetensors>=0.4.3
scikit-learn==1.8.0
# CPU build. `xgboost` declares `nvidia-nccl-cu12` on Linux (342 MB compressed,
# 476 MB on disk) that no CPU image can use. Same version, same `import xgboost`;
# the CUDA files keep `xgboost` (backend#3456).
xgboost-cpu==3.2.0
lightgbm==4.6.0
catboost==1.2.10
lifelines==0.30.3
scikit-survival==0.27.0
peft==0.19.1
torchao==0.17.0
pycocotools==2.0.8
pyarrow==23.0.1
# `interpret` is a META-package: `interpret-core[aplr,dash,debug,linear,notebook,
# plotly,sensitivity,shap]`, ~300 MB on disk of dashboard/notebook extras. The
# zoo's two EBM templates import `interpret.glassbox` only, which interpret-core
# alone provides (hard requirements: numpy, pandas, scikit-learn, joblib).
# `core/tests/utils/test_interpret_arm64_pin.py` holds the version floor
# (backend#3456).
interpret-core==0.6.10
pytorch-forecasting==1.4.0
pycox==0.3.0
