numpy<2,>=1.26
SimpleITK<3,>=2.2
matplotlib<4,>=3.8
scipy<2,>=1.11
openpyxl<4,>=3.1
pandas<3,>=2.1
tqdm<5,>=4.66
scikit-learn<2,>=1.4
joblib<2,>=1.3
scikit-image<0.27,>=0.23
seaborn<1,>=0.13
PyYAML<7,>=6.0
click<9,>=8.1
chardet<8,>=5.0
pydicom<4,>=3.0
pydantic<3,>=2.7
kneed<1,>=0.8
pyarrow<22,>=15

[all]
pyradiomics<4,>=3.0
xgboost<4,>=2.1
imbalanced-learn<1,>=0.12
mrmr-selection<1,>=0.2.8
statsmodels<1,>=0.14
antspyx<1,>=0.4.2
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
autogluon.tabular[catboost,lightgbm]<2,>=1.2
fastapi>=0.100
uvicorn[standard]>=0.22

[analysis]
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

[gui]
fastapi>=0.100
uvicorn[standard]>=0.22

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

[radiomics]
pyradiomics<4,>=3.0

[registration]
antspyx<1,>=0.4.2

[torch]
torch<3,>=2.4
