pandas<3.0,>=2.2
alembic>=0.7.7
bcolz-zipline>=1.2.6
bottleneck>=1.0.0
click>=4.0.0
empyrical-reloaded>=0.5.7
h5py>=2.7.1
intervaltree>=3
iso3166>=2.1.1
iso4217>=1.6.20180829
lru-dict>=1.1.4
multipledispatch>=0.6.0
networkx>=2.0
numexpr>=2.6.1
patsy>=0.4.0
python-dateutil>=2.4.2
python-interface>=1.5.3
pytz>=2018.5
requests>=2.9.1
scipy>=1.15
six>=1.10.0
sqlalchemy>=2
statsmodels>=0.6.1
tables>=3.4.3
toolz>=0.8.2
exchange-calendars>=4.10

[:python_version < "3.12"]
numpy>=1.23.5

[:python_version >= "3.12"]
numpy>=1.26.0

[dev]
flake8>=7
black[jupyter]>=25
pre-commit>=4.2
cython>=3
ruff

[docs]
cython
sphinx>=1.3.2
numpydoc>=0.5.0
sphinx-autobuild>=0.6.0
pydata-sphinx-theme
sphinx_markdown_tables
m2r2

[test]
tox
pytest>=8
pytest-cov>=3.0.0
pytest-xdist>=3.6
pytest-timeout>=2
parameterized>=0.8
testfixtures>=4.1.2
flake8>=3.9.1
matplotlib>=1.5.3
responses>=0.9.0
pandas-datareader>=0.2.1
click
coverage
pytest-rerunfailures
