dagster-dataframely
Dataframely validates Polars frames against a schema.
Dagster has two built-in places to show a schema: the Columns tab and asset checks.
dagster-dataframely attaches a Dataframely schema to a Dagster asset, so you declare a table once and Dagster shows it in both places.
import dataframely as dy
import polars as pl
import dagster_dataframely as dd
class CustomersSchema(dy.Schema):
"""A storefront customer account."""
customer_id = dy.String(primary_key=True, description="Account identifier.")
email = dy.String(nullable=False, description="Address for receipts.")
lifetime_value = dy.Float64(nullable=False, min=0.0, description="Spend to date.")
@dd.asset(CustomersSchema)
def customers(raw_customers: pl.DataFrame) -> pl.DataFrame:
"""Validate the storefront's customer accounts."""
return raw_customers
That is the whole integration.
From one declaration you get the catalog's Columns tab, one asset check per rule, and a code version derived from the schema.
A row that fails an "error" rule fails the run.
With filter=True, the run writes that row to a separate table instead and writes the other rows to the asset's table.
Get started covers each of those, with screenshots of the demo pipeline.
Installation
uv add dagster-dataframely
You need Python 3.12 or newer.
The dependencies are dagster, dataframely and polars, plus universal-pathlib, which dagster already installs.
This package includes an IO manager only for its examples, dd.data.ParquetIOManager.
In your own project, bind a library one.
dagster-polars writes Polars frames to a filesystem or object store, and dagster-duckdb-polars writes them to a warehouse.
Any IO manager that stores by asset key works.
Pre-1.0. A characterization test covers the public surface, so it never changes by accident. It can still change: a
0.xminor release can include breaking changes. Upgrading has the migration for each one.
Documentation
https://ozanozbeker.com/dagster-dataframely has the guide, the reference and the changelog.
Contributor documentation stays in the repository: CONTEXT.md is the glossary, and docs/pre-1.0.md records the decisions and the measurements the package was built on.
Metadata
Release files for dagster-dataframely 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dagster_dataframely-0.12.0.tar.gz | 47.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dagster_dataframely-0.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.0 kB
Release files / dagster_dataframely-0.12.0.tar.gz
| Download URL | dagster_dataframely-0.12.0.tar.gz |
|---|---|
| Size | 47.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
308e042224321dd9b10632713664588fbbe058b70c72f5773d4aac85686b9d0b
|
|
BLAKE2b-256 checksum How to use checksums |
0ecb3227712cf4ed7da997ed2632f1afe5a4626d0dd04549f5c22b57502415ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / dagster_dataframely-0.12.0-py3-none-any.whl
| Download URL | dagster_dataframely-0.12.0-py3-none-any.whl |
|---|---|
| Size | 59.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7373771f88d8fdea69141a64f29e5f1755021b0f2bde88c9262158c6b6ae8e46
|
|
BLAKE2b-256 checksum How to use checksums |
444960db1a7687e211c13f81a1994fa2fea159c7c74625487e6807049795e31e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for dagster-dataframely 0.12.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for dagster_dataframely-0.12.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.