# 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.

--prefer-binary

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

# Interoperability
numpy
pandas
pyarrow
pydantic >= 2.0.0, <2.4.0  # 2.4.0 breaks pyiceberg interop
# Datetime / time zones
backports.zoneinfo; python_version < '3.9'
tzdata; platform_system == 'Windows'
# Database
SQLAlchemy
adbc_driver_sqlite; python_version >= '3.9' and platform_system != 'Windows'
connectorx
# Cloud
cloudpickle
fsspec
s3fs[boto3]
# Spreadsheet
ezodf
lxml
openpyxl
pyxlsb
xlsx2csv
XlsxWriter
# Deltalake
# note: pinning deltalake until issues with pyarrow 13 resolved
# https://github.com/delta-io/delta-rs/pull/1602
deltalake == 0.10.1
# Dataframe interchange protocol
dataframe-api-compat >= 0.1.6
pyiceberg >= 0.5.0
# Other
matplotlib
gevent

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

hypothesis==6.82.6
maturin==1.2.3
patchelf; platform_system == 'Linux'  # Extra dependency for maturin, only for Linux
pytest==7.4.0
pytest-cov==4.1.0
pytest-xdist==3.3.1

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

# Stub files
pandas-stubs
boto3-stubs
