numpy>=1.26
pandas>=2.1
scipy>=1.11
statsmodels>=0.14
patsy>=0.5.6

[data]
scikit-learn>=1.3
openpyxl>=3.1
PyYAML>=6.0
pyarrow>=14

[dev]
pytest>=8
pytest-cov>=5
hypothesis>=6
ruff>=0.6
mypy>=1.11
build>=1.2
twine>=6.0

[diagnostic]
scikit-learn>=1.3

[full]
scikit-learn>=1.3
matplotlib>=3.8
Jinja2>=3.1
openpyxl>=3.1
python-docx>=1.1
Pillow>=10
webcolors>=24
PyYAML>=6.0
pyarrow>=14
lifelines>=0.29
scikit-posthocs>=0.9

[plotting]
matplotlib>=3.8

[posthoc]
scikit-posthocs>=0.9

[reporting]
matplotlib>=3.8
Jinja2>=3.1
openpyxl>=3.1
python-docx>=1.1
Pillow>=10
webcolors>=24

[survival]
lifelines>=0.29
