Skip to main content

Installation

uv tool install undatum
# or
pipx install undatum

Using pip

pip install --upgrade pip setuptools
pip install undatum

Dependencies are declared in pyproject.toml and will be installed automatically by modern versions of pip (23+), including pyarrow for Parquet. If you see missing-module errors after installation, upgrade pip and retry.

macOS

Preferred paths:

brew install pipx && pipx install undatum
# or
uv tool install undatum

A Homebrew formula is not published from this repository. Use pipx or uv on macOS.

Release tags publish PyInstaller single-file binaries (Linux, macOS, Windows) on the GitHub Releases page (Actions artifacts on the tag workflow). These are ops-oriented; pipx/uv remain the supported install paths for most users.

A man page ships with the package (man undatum after install, or make man to regenerate man/undatum.1).

Optional extras

Some features require optional dependencies, installed as extras. This is the canonical list; feature sections elsewhere in the docs link back here.

ExtraEnables
apiData API server (undatum api, FastAPI + uvicorn + httpx)
extractDocument extraction (undatum extract, PDF/DOC/DOCX tables and text)
plotPlotting (undatum plot, matplotlib)
tuiInteractive terminal UI (undatum tui, Textual)
webLocal web UI (undatum web, FastAPI + Jinja2)
mcpMCP server for AI agents (undatum mcp serve)
langchainLangChain agent tools
polars, daskDataFrame interop from the Dataset SDK
s3S3 cloud storage support (boto3)
gcsGoogle Cloud Storage (gs:// / gcs://, gcsfs)
azureAzure Blob / ADLS (az:// / abfs://, adlfs)
cloudMulti-cloud storage via fsspec (S3 + GCS + Azure)
postgres, mysql, mssql, clickhouseDatabase connectors
frictionlessFull Frictionless Data Package validation
lakehouseDelta / Iceberg / Lance / DuckLake / Hudi via iterabledata
gisGeospatial and LiDAR formats
scientificMATLAB, geophysical, and HDF5 formats
accessMicrosoft Access (.mdb / .accdb)
compressionExtra codecs (snappy, brotli, lzo)
pip install "undatum[api]"
pip install "undatum[extract]"
pip install "undatum[plot]"
pip install "undatum[tui]"
pip install "undatum[web]"
pip install "undatum[mcp]"
pip install "undatum[langchain]"
pip install "undatum[polars]"
pip install "undatum[dask]"
pip install "undatum[s3]"
pip install "undatum[gcs]"
pip install "undatum[azure]"
pip install "undatum[cloud]"
pip install "undatum[postgres]"
pip install "undatum[mysql]"
pip install "undatum[mssql]"
pip install "undatum[clickhouse]"
pip install "undatum[frictionless]"
pip install "undatum[lakehouse]"
pip install "undatum[gis]"
pip install "undatum[scientific]"
pip install "undatum[access]"
pip install "undatum[compression]"

# Combine extras in one install
pip install "undatum[extract,api]"

After installation both undatum and the shorter data command are available:

undatum --version
undatum headers data.csv
data headers data.csv # same thing

Shell completion

Typer provides built-in shell completion. Install it for your shell:

# Bash
undatum --install-completion bash

# Zsh
undatum --install-completion zsh

# Fish
undatum --install-completion fish

To preview completion scripts without installing:

undatum --show-completion bash

Requirements

  • Python 3.9 or greater (CI tests 3.9–3.13)

Install from source

python -m pip install --upgrade pip setuptools wheel
python -m pip install .
# or build distributables
python -m pip install build && python -m build

# Contributors
make install-dev
# or: pip install -e ".[dev]"

Next steps