pandas<3.0.0,>=2.0.0
numpy>=1.24.0
scikit-learn<2.0.0,>=1.7.0
joblib>=1.3.0
polars>=1.43.2
pyarrow>=21.0.0
pydantic>=2.0.0
scipy>=1.10.0
statsmodels>=0.14.0

[all]
matplotlib>=3.7.0
rich>=13.0.0
vaderSentiment>=3.3.2
causal-learn>=0.1.3.0
optuna>=3.0.0
Mako>=1.4.2
optuna-integration>=3.0.0
cmaes>=0.10.0
imbalanced-learn>=0.13.0
sklearn-compat==0.1.5
xgboost>=2.1.4
lightgbm>=4.0.0
sentence-transformers<7.0.0,>=6.0.0
fsspec>=2026.6.0
shap<1.0.0,>=0.46.0
mlflow<4.0,>=3.10
PyYAML<7,>=6.0.3
Werkzeug>=3.1.9

[delta]
delta-spark<4.1.0,>=4.0.0
pyspark<4.1.0,>=4.0.3

[dev]
pytest
pytest-cov<5.0.0,>=4.1.0
twine
build
lizard>=1.17.0
hypothesis>=6.100
syrupy>=4.0.0
pytest-benchmark<6.0.0,>=5.0.0
jsonschema<5.0.0,>=4.0.0

[eda]
vaderSentiment>=3.3.2
causal-learn>=0.1.3.0

[explainability]
shap<1.0.0,>=0.46.0

[feature-store]
databricks-feature-engineering<1.0,>=0.18.1

[geo]
geopandas<1.2.0,>=0.14.0
shapely<2.2.0,>=2.0.2
pyproj<3.8.0,>=3.6.0
rtree<2.0.0,>=1.3.0
libpysal<5.0.0,>=4.10.0
esda<3.0.0,>=2.5.0
h3<5.0.0,>=4.0.0

[mlflow]
mlflow<4.0,>=3.10
Mako>=1.4.2
Werkzeug>=3.1.9
PyYAML<7,>=6.0.3

[modeling-lightgbm]
lightgbm>=4.0.0

[modeling-xgboost]
xgboost>=2.1.4

[nlp]
sentence-transformers<7.0.0,>=6.0.0
fsspec>=2026.6.0

[preprocessing-imbalanced]
imbalanced-learn>=0.13.0
sklearn-compat==0.1.5

[spark]
pyspark<4.1.0,>=4.0.3
pandas<3.0.0,>=2.0.0

[text]
vaderSentiment>=3.3.2

[tuning]
optuna>=3.0.0
Mako>=1.4.2
optuna-integration>=3.0.0
cmaes>=0.10.0

[viz]
matplotlib>=3.7.0
rich>=13.0.0
