avro<2,>=1.11.3
duckdb<2,>=1.3
iterabledata<1.1,>=1.0.21
lz4<5,>=4.3.2
openpyxl<4,>=3.1.2
orjson<4,>=3.9.15
pandas<4,>=2.2.2
pyarrow>=16.0.0
py7zr<2,>=0.20.6
pydantic<3,>=2.5
pymongo<5,>=4.6.3
pyorc<1,>=0.9.0
python-docx<2,>=1.1.0
pyyaml<7,>=6.0.1
pyzstd<1,>=0.16
qddate<2,>=1.0.4
requests<3,>=2.33.0
rich<16,>=13.6.0
typer<1,>=0.26
validators<1,>=0.22.0
xlrd<3,>=2.0.1
xmltodict<2,>=0.13.0
xxhash<5,>=3.0
zstandard<1,>=0.22

[access]
iterabledata[access]

[all]
undatum[access,api,clickhouse,cloud,compression,dask,elastic,extract,frictionless,gis,lakehouse,langchain,mcp,mssql,mysql,phone,plot,polars,postgres,scientific,tui,web]

[api]
fastapi<1,>=0.110
uvicorn<1,>=0.27
httpx<1,>=0.27

[azure]
fsspec>=2024.2
adlfs>=2024.2

[clickhouse]
clickhouse-connect<2,>=0.7

[cloud]
fsspec>=2024.2
s3fs>=2024.2
gcsfs>=2024.2
adlfs>=2024.2

[compression]
iterabledata[compression]

[dask]
dask[dataframe]>=2024.1

[dev]
ruff==0.14.9
mypy==1.19.1
types-PyYAML
types-requests
types-PyMySQL
pytest>=8
pytest-cov>=5
pytest-benchmark>=4
pre-commit>=3.7

[elastic]
elasticsearch<10,>=8

[extract]
pdfplumber<1,>=0.10
pdf2image<2,>=1.16
pytesseract<1,>=0.3.10
textract<3,>=2.0

[frictionless]
frictionless<6,>=5.0

[gcs]
fsspec>=2024.2
gcsfs>=2024.2

[gis]
iterabledata[geospatial]
iterabledata[lidar]

[lakehouse]
iterabledata[lakehouse]

[langchain]
langchain-core<2,>=0.3

[mcp]
mcp<3,>=1.2

[mssql]
pyodbc<6,>=5.0

[mysql]
pymysql<2,>=1.1

[phone]
phonenumbers<10,>=8.13

[plot]
matplotlib<4,>=3.7

[polars]
polars<3,>=1.0

[postgres]
psycopg2-binary<3,>=2.9

[s3]
boto3<2,>=1.28

[scientific]
iterabledata[mat]
iterabledata[geophysical]
iterabledata[hdf5]

[tui]
textual<9,>=0.80

[web]
fastapi<1,>=0.110
uvicorn<1,>=0.27
jinja2<4,>=3.1
python-multipart<1,>=0.0.9
httpx<1,>=0.27
