numpy>=1.24.0
pandas>=2.0.0
scipy>=1.10.0
numba>=0.57.0
statsmodels>=0.14.0
matplotlib>=3.7.0
plotly>=5.14.0
jinja2>=3.1.0
pyyaml>=6.0.0
requests>=2.28.0
joblib>=1.2.0

[data]
pyarrow>=12.0.0

[dev]
pytest>=8.0.0
pytest-cov>=5.0.0
pytest-xdist>=3.5.0
pytest-timeout>=2.3.0
pytest-benchmark>=4.0.0
hypothesis>=6.100.0
threadpoolctl>=3.1.0
scikit-learn>=1.3.0
pyarrow>=12.0.0
openpyxl>=3.1
ruff>=0.15.0
pyright==1.1.408
interrogate>=1.7.0
bandit>=1.7.0
radon>=6.0.0
pre-commit>=3.5.0
nbmake>=1.5.0

[dev:python_version >= "3.11"]
pandas-stubs==3.0.0.260204

[docs]
mkdocs>=1.6.0
mkdocs-material>=9.5.0
mkdocstrings>=0.25.0
mkdocstrings-python>=1.10.0
mkdocs-jupyter>=0.24.0

[excel]
openpyxl>=3.1

[r]
rpy2>=3.5.0

[test]
pytest>=8.0.0
pytest-cov>=5.0.0
pytest-xdist>=3.5.0
pytest-timeout>=2.3.0
pytest-benchmark>=4.0.0
hypothesis>=6.100.0
threadpoolctl>=3.1.0
scikit-learn>=1.3.0
pyarrow>=12.0.0
openpyxl>=3.1
