numpy<3,>=1.26
SimpleITK<3,>=2.2
scipy<2,>=1.11
pandas<3,>=2.1
scikit-learn<2,>=1.4
pydantic!=2.11.*,<3,>=2.7
PyYAML<7,>=6.0
click<9,>=8.1
tqdm<5,>=4.66
joblib<2,>=1.3
kneed<1,>=0.8

[all]
habitat-analysis[analysis,automl,dicom,ml,registration,slic,tables,viz]

[analysis]
habitat-analysis[tables,viz]
krippendorff<1,>=0.8
shap<1,>=0.45
plotly<7,>=5.20
pingouin<1,>=0.5.4
lifelines<1,>=0.28
scikit-survival<1,>=0.23

[automl]
autogluon.tabular[catboost,lightgbm]<2,>=1.2

[dicom]
pydicom<4,>=3.0

[full]
habitat-analysis[all]

[ml]
habitat-analysis[tables,viz]
xgboost<4,>=2.1
imbalanced-learn<1,>=0.12
mrmr-selection<1,>=0.2.8
statsmodels<1,>=0.14

[radiomics]

[registration]
antspyx<1,>=0.4.2

[slic]
scikit-image<0.27,>=0.23

[tables]
openpyxl<4,>=3.1

[tables:python_version < "3.14"]
pyarrow<22,>=15

[tables:python_version >= "3.14"]
pyarrow<23,>=22

[torch]
torch<3,>=2.4

[view]
napari[pyqt5]<0.8,>=0.4.19
npe2>=0.8.2
pydantic!=2.11.*,<3,>=2.8

[viz]
matplotlib<4,>=3.8
seaborn<1,>=0.13
