numpy>=1.20
pandas>=1.4

[all]
optuna>=3.0
xgboost>=1.6
scikit-learn>=1.1
joblib>=1.2
matplotlib>=3.5
shap>=0.41
contextily>=1.3
pynndescent>=0.5
torch-geometric>=2.3
glum<3.0,>=2.7
tabmat>=3.1

[all:python_version < "3.10"]
torch>=1.13.1
pyarrow<21,>=20

[all:python_version >= "3.10"]
torch<2.9,>=2.8
pyarrow<22,>=21

[bayesopt]
optuna>=3.0
xgboost>=1.6
scikit-learn>=1.1
joblib>=1.2
matplotlib>=3.5
glum<3.0,>=2.7
tabmat>=3.1

[bayesopt-glm]
optuna>=3.0
scikit-learn>=1.1
joblib>=1.2
matplotlib>=3.5
glum<3.0,>=2.7
tabmat>=3.1

[bayesopt-glm:python_version < "3.10"]
pyarrow<21,>=20

[bayesopt-glm:python_version >= "3.10"]
pyarrow<22,>=21

[bayesopt-torch]
optuna>=3.0
scikit-learn>=1.1
joblib>=1.2
matplotlib>=3.5

[bayesopt-torch:python_version < "3.10"]
torch>=1.13.1
pyarrow<21,>=20

[bayesopt-torch:python_version >= "3.10"]
torch<2.9,>=2.8
pyarrow<22,>=21

[bayesopt-xgb]
optuna>=3.0
xgboost>=1.6
scikit-learn>=1.1
joblib>=1.2
matplotlib>=3.5

[bayesopt-xgb:python_version < "3.10"]
pyarrow<21,>=20

[bayesopt-xgb:python_version >= "3.10"]
pyarrow<22,>=21

[bayesopt:python_version < "3.10"]
torch>=1.13.1
pyarrow<21,>=20

[bayesopt:python_version >= "3.10"]
torch<2.9,>=2.8
pyarrow<22,>=21

[dev]
build>=1.0
twine>=4.0
ruff<1,>=0.15
mypy<2,>=1.19
pip-audit<3,>=2.9

[dev:python_version < "3.10"]
pytest<9,>=8.4

[dev:python_version < "3.11"]
tomli>=2.0

[dev:python_version >= "3.10"]
pytest<9,>=8.4

[explain]
shap>=0.41
scikit-learn>=1.1

[explain:python_version < "3.10"]
torch>=1.13.1

[explain:python_version >= "3.10"]
torch<2.9,>=2.8

[geo]
contextily>=1.3
matplotlib>=3.5

[gnn]
pynndescent>=0.5
torch-geometric>=2.3

[gnn:python_version < "3.10"]
torch>=1.13.1

[gnn:python_version >= "3.10"]
torch<2.9,>=2.8

[multi]

[multi-all]
torch>=1.13.1
optuna>=3.0
ray>=2.9
dask[distributed]>=2024.1
pyspark>=3.5

[multi-dask]
dask[distributed]>=2024.1

[multi-ray]
ray>=2.9

[multi-spark]
pyspark>=3.5

[multi-torch]
torch>=1.13.1
optuna>=3.0

[plotting]
matplotlib>=3.5
scikit-learn>=1.1

[release]
cyclonedx-bom<8,>=7.3

[workflows]

[workflows:python_version < "3.10"]
pyarrow<21,>=20

[workflows:python_version >= "3.10"]
pyarrow<22,>=21
