Metadata-Version: 2.5
Name: turbine-data
Version: 1.0.0
Summary: Official Turbine extension: formats, check types, datasources, and lint rules
Requires-Python: >=3.12
Requires-Dist: cronsim>=2.7
Requires-Dist: docstring-parser>=0.18.0
Requires-Dist: interegular>=0.3.3
Requires-Dist: jinja2>=3.1.6
Requires-Dist: open-data-contract-standard>=3.1.2
Requires-Dist: portion>=2.6.3
Requires-Dist: pydantic-core>=2.46.4
Requires-Dist: pydantic>=2.13.4
Requires-Dist: sqlglot>=30.17.0
Requires-Dist: turbine-core[editor]==1.0.0
Provides-Extra: duckdb
Requires-Dist: adbc-driver-manager>=1.12.0; extra == 'duckdb'
Requires-Dist: duckdb>=1.5.5; extra == 'duckdb'
Requires-Dist: pyarrow>=25.0.1; extra == 'duckdb'
Provides-Extra: geo
Requires-Dist: geopandas>=1.1; extra == 'geo'
Requires-Dist: pandas>=2.3; extra == 'geo'
Requires-Dist: shapely>=2.1; extra == 'geo'
Provides-Extra: pandas
Requires-Dist: pandas>=2.3; extra == 'pandas'
Provides-Extra: polars
Requires-Dist: polars>=1.30; extra == 'polars'
Provides-Extra: postgres
Requires-Dist: adbc-driver-postgresql>=1.12.0; extra == 'postgres'
Requires-Dist: pyarrow>=25.0.1; extra == 'postgres'
Provides-Extra: snowflake
Requires-Dist: adbc-driver-snowflake>=1.11.0; extra == 'snowflake'
Requires-Dist: pyarrow>=25.0.1; extra == 'snowflake'
Description-Content-Type: text/markdown

# turbine-data

Turbine checks that your data agrees with its Data Contract. `turbine-data` is the official
Turbine Extension. It adds these parts to `turbine-core`:

- the formats: ODCS Data Contracts, Quality Specs, and Datasource documents
- 27 built-in Check Types, such as `row-count`, `missing-value`, and `freshness`
- the Datasource Types for DuckDB, PostgreSQL, and Snowflake
- the lint rules

## Install

Select the extra of your database:

```console
uv add "turbine-data[duckdb]"
uv add "turbine-data[postgres]"
uv add "turbine-data[snowflake]"
```

Then make a Project and run the checks:

```console
uv run turbine init
uv run turbine new contract
uv run turbine check
```

The extras `pandas`, `polars`, and `geo` let a Check Type in Python read a table as a data frame.
