Metadata-Version: 2.4
Name: dbt-polars
Version: 0.0.1
Summary: A dbt adapter for running models with Polars
Author-email: Jonas Crevecoeur <jonas.crevecoeur@dataminded.com>
Maintainer-email: Jonas Crevecoeur <jonas.crevecoeur@dataminded.com>
License: Apache-2.0
Keywords: dbt,polars,adapter,data
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Database
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
Requires-Dist: dbt-adapters>=1.0.0
Requires-Dist: dbt-common>=1.0.0
Requires-Dist: dbt-core>=1.11.2
Requires-Dist: polars[deltalake,pyarrow]!=1.43.0,>=1.0.0
Requires-Dist: sqlglot>=1.0.0
Provides-Extra: iceberg
Requires-Dist: pyiceberg[adlfs,sql-sqlite]<=0.11.1,>=0.11.0; extra == "iceberg"
Provides-Extra: s3
Requires-Dist: boto3>=1.20.0; extra == "s3"
Provides-Extra: azure
Requires-Dist: azure-storage-file-datalake>=12.0.0; extra == "azure"
Requires-Dist: azure-identity>=1.0.0; extra == "azure"

# dbt-polars

A [dbt](https://www.getdbt.com/) adapter that runs models locally using [Polars](https://pola.rs/). Instead of connecting to a database, dbt-polars reads and writes files — on your local filesystem, Azure Blob Storage, AWS S3, or an Iceberg catalog.

## Installation

```bash
pip install dbt-polars
```

Extra dependencies are required for cloud and Iceberg backends:

```bash
pip install 'dbt-polars[azure]'    # Azure Blob Storage
pip install 'dbt-polars[s3]'       # AWS S3
pip install 'dbt-polars[iceberg]'  # Apache Iceberg (SQLite, REST, Databricks, …)
```

## Catalogs

dbt-polars uses **catalogs** to define where data is stored. Each catalog maps to a storage backend. You can configure multiple catalogs in a single profile and reference them from your models.

| Catalog | Backend | Status |
|---|---|---|
| `local` | Local filesystem | Usable |
| `iceberg` with SQLite | Iceberg + SQLite metastore | Usable |
| `iceberg` with REST + Databricks | Iceberg REST API (Unity Catalog) | Experimental |
| `iceberg` with other backends | Any pyiceberg-supported backend | Experimental |
| `azure` | Azure Blob Storage / ADLS Gen2 | Experimental |

## Quick start

A minimal `profiles.yml` for local development:

```yaml
my_project:
  target: dev
  outputs:
    dev:
      type: polars
      schema: dev
      catalogs:
        - name: my_catalog
          type: local
          root: ./data
```

## Documentation

- [Catalog overview and profile reference](docs/index.md)
- [Local catalog](docs/catalogs/local.md)
- [Azure catalog](docs/catalogs/azure.md)
- [Iceberg catalog](docs/catalogs/iceberg.md)
- [Python models and tests](docs/python-models.md)
- [Roadmap and known limitations](docs/roadmap.md)
