pandas<3,>=2.2.3
numpy<3,>=1.23
matplotlib<4,>=3.6
seaborn<1,>=0.12
scipy<2,>=1.9
openpyxl<4,>=3.1.5
XlsxWriter<4,>=3.2.9
reportlab<5,>=4.4.9

[:python_version < "3.11"]
scikit-learn<1.7,>=1.6.1

[:python_version >= "3.10"]
Pillow<13,>=12.3

[:python_version >= "3.11"]
scikit-learn<2,>=1.9.1

[advanced]
statsmodels<1,>=0.13

[all]
xlrd<3,>=2.0.1
pyarrow<25,>=10
statsmodels<1,>=0.13
SQLAlchemy<3,>=1.4
duckdb<2,>=0.9
plotly<7,>=5.18
streamlit<2,>=1.30
psycopg[binary]<4,>=3.1
PyMySQL<2,>=1.1

[connectors]
SQLAlchemy<3,>=1.4

[dashboard]
streamlit<2,>=1.30
plotly<7,>=5.18

[dev]
pytest<10,>=7
hypothesis<7,>=6.100
build<2,>=1
twine<7,>=4
pypdf<7,>=5

[duckdb]
duckdb<2,>=0.9

[forecasting]
statsmodels<1,>=0.13

[large-data]
duckdb<2,>=0.9
pyarrow<25,>=10

[mysql]
SQLAlchemy<3,>=1.4
PyMySQL<2,>=1.1

[postgres]
SQLAlchemy<3,>=1.4
psycopg[binary]<4,>=3.1

[visual]
plotly<7,>=5.18
