numpy>=1.24
scipy>=1.10
pillow>=10.0
pandas>=2.0
scikit-learn>=1.3
catboost>=1.2
lightgbm>=4.0
optuna>=3.5
psutil>=5.9
jinja2>=3.1
plotly>=5.20
joblib>=1.3
tqdm>=4.65
threadpoolctl>=3.2

[all]
xgboost>=2.0
shap>=0.44
kaleido>=1.0
nvidia-ml-py>=12.0
openpyxl>=3.1
pyarrow>=14.0
soundfile>=0.12
opencv-python-headless>=4.8

[audio]
soundfile>=0.12

[audio-deep]
soundfile>=0.12
torch>=2.2
torchaudio>=2.2

[deep]
torch>=2.2
torchvision>=0.17
torchaudio>=2.2
timm>=1.0
sentence-transformers>=3.0

[dev]
pytest>=8.0
pytest-cov>=5.0
build>=1.2
twine>=5.0
ruff>=0.5
mypy>=1.10
types-psutil>=5.9

[ensemble-xgb]
xgboost>=2.0

[excel]
openpyxl>=3.1

[gpu]
nvidia-ml-py>=12.0

[multimodal]
soundfile>=0.12
opencv-python-headless>=4.8

[multimodal-deep]
soundfile>=0.12
opencv-python-headless>=4.8
torch>=2.2
torchvision>=0.17
torchaudio>=2.2
timm>=1.0
sentence-transformers>=3.0

[parquet]
pyarrow>=14.0

[report-static]
kaleido>=1.0

[shap]
shap>=0.44

[text-deep]
torch>=2.2
sentence-transformers>=3.0

[video]
opencv-python-headless>=4.8

[vision-deep]
torch>=2.2
torchvision>=0.17
timm>=1.0
