# We're pinning our tooling, because it's an environment we can strictly control.
# We're not pinning package dependencies, because our tests need to pass with the
# latest version of the packages.

# -----
# BUILD
# -----

maturin
# extra dependency for maturin (linux-only)
patchelf; platform_system == 'Linux'
pip

# ------------
# DEPENDENCIES
# ------------

# Interoperability
# Unpin NumPy when support is implemented in numpy crate:
# https://github.com/pola-rs/polars/issues/16998
numpy<2
numba; python_version < '3.13'  # Numba can lag Python releases
pandas
pyarrow
pydantic>=2.0.0
# Datetime / time zones
backports.zoneinfo; python_version < '3.9'
tzdata; platform_system == 'Windows'
# Database
SQLAlchemy
adbc_driver_manager; python_version >= '3.9' and platform_system != 'Windows'
adbc_driver_sqlite; python_version >= '3.9' and platform_system != 'Windows'
aiosqlite
connectorx
kuzu
# Cloud
cloudpickle
fsspec
s3fs[boto3]
# Spreadsheet
lxml
fastexcel>=0.9
openpyxl
xlsx2csv
XlsxWriter
# Skip deltalake version 0.18.0 due to MacOS issues:
# https://github.com/delta-io/delta-rs/issues/2577
deltalake>=0.15.0; platform_system != 'Darwin'
deltalake>=0.15.0,!=0.18.0; platform_system == 'Darwin'
# Csv
zstandard
# Plotting
hvplot>=0.9.1
matplotlib
# Styling
great-tables>=0.8.0; python_version >= '3.9'
# Other
blake3
gevent
nest_asyncio

# -------
# TOOLING
# -------

hypothesis==6.103.0
pytest==8.2.0
pytest-codspeed==2.2.1
pytest-cov==5.0.0
pytest-xdist==3.6.1

# Need moto.server to mock s3fs - see: https://github.com/aio-libs/aiobotocore/issues/755
moto[s3]==5.0.0
flask
flask-cors

# Stub files
pandas-stubs
boto3-stubs
