Skip to main content

Installation

Python 3.10, 3.11, and 3.12 are supported. We recommend Python 3.11.

The [all] extra installs every optional data-source dependency. To keep the install small, replace it with just the extras you need.

The preferred way to install is uv:

uv tool install --python python3.11 --upgrade 'datacontract-cli[all]'
datacontract --version

uvx (run without installing)

If you have uv installed, you can run the CLI directly without installing it:

uv run --with 'datacontract-cli[all]' datacontract --version

pip

python3 -m pip install 'datacontract-cli[all]'
datacontract --version

pip with venv

Typically it's better to install into a virtual environment for your project:

cd my-project
python3.11 -m venv venv
source venv/bin/activate
pip install 'datacontract-cli[all]'
datacontract --version

pipx

pipx installs into an isolated environment:

pipx install 'datacontract-cli[all]'
datacontract --version

Docker

Use the Docker image to run the CLI without a local Python install — convenient for CI/CD:

docker pull datacontract/cli
docker run --rm -v "${PWD}:/home/datacontract" datacontract/cli

Create an alias to make it easier to use:

alias datacontract='docker run --rm -v "${PWD}:/home/datacontract" datacontract/cli:latest'
note

The output of Docker command line messages is limited to 80 columns and may include line breaks. Don't pipe Docker output to files if you want to export code — use the --output option instead.

Optional dependencies (extras)

The CLI defines several optional dependencies (extras) for specific server types. With all, every server dependency is included.

uv tool install --python python3.11 --upgrade 'datacontract-cli[all]'

Available extras:

DependencyInstallation command
Amazon Athenapip install datacontract-cli[athena]
Avro supportpip install datacontract-cli[avro]
Azure integrationpip install datacontract-cli[azure]
Google BigQuerypip install datacontract-cli[bigquery]
CSVpip install datacontract-cli[csv]
Databricks integrationpip install datacontract-cli[databricks]
DBMLpip install datacontract-cli[dbml]
DuckDB (local/S3/GCS/Azure file testing)pip install datacontract-cli[duckdb]
Excelpip install datacontract-cli[excel]
GCS integrationpip install datacontract-cli[gcs]
Icebergpip install datacontract-cli[iceberg]
Impalapip install datacontract-cli[impala]
Kafka integrationpip install datacontract-cli[kafka]
MySQL integrationpip install datacontract-cli[mysql]
Oraclepip install datacontract-cli[oracle]
Parquetpip install datacontract-cli[parquet]
PostgreSQL integrationpip install datacontract-cli[postgres]
protobufpip install datacontract-cli[protobuf]
RDFpip install datacontract-cli[rdf]
Amazon Redshiftpip install datacontract-cli[redshift]
S3 integrationpip install datacontract-cli[s3]
Snowflake integrationpip install datacontract-cli[snowflake]
Microsoft SQL Serverpip install datacontract-cli[sqlserver]
Trinopip install datacontract-cli[trino]
API (run as web server)pip install datacontract-cli[api]

Each data source lists the extra it needs.