click<9,>=8.1
numpy<3,>=2.2
pandas<3,>=2.3
polars<2,>=1.0
requests<3,>=2.32
ruamel.yaml<0.19,>=0.18
scikit-learn<2,>=1.6
tqdm<5,>=4.67
typing_extensions<5,>=4.12

[:python_version < "3.11"]
tomli<3,>=2.0

[all]
lightgbm<5,>=4.6
pyarrow<24,>=23.0.1
scipy<2,>=1.15
statsmodels<0.15,>=0.14
ta-lib<0.7,>=0.6
tabpfn<7,>=6
xgboost<4,>=2.1

[boosting]
lightgbm<5,>=4.6
xgboost<4,>=2.1

[data]
pyarrow<24,>=23.0.1

[dev]
build<2,>=1
check-manifest<1,>=0.50
check-wheel-contents<1,>=0.6
coverage[toml]<8,>=7
cyclonedx-bom<8,>=5
pandas-stubs<2.4,>=2.3
pip-audit<3,>=2.9
pip-licenses<6,>=5
pyright<1.1.409,>=1.1.408
pyroma<6,>=5
pytest<10,>=8
ruff<0.15.22,>=0.15.21
scipy-stubs<1.16,>=1.15
tomli<3,>=2.0
twine<7,>=6

[indicators]
ta-lib<0.7,>=0.6

[release]
anthropic<1,>=0.54

[stats]
scipy<2,>=1.15
statsmodels<0.15,>=0.14

[tabpfn]
tabpfn<7,>=6

[test]
coverage[toml]<8,>=7
hypothesis<7,>=6
pytest<10,>=8
