Registry / data / dataframely

dataframely

JSON →
library2.10.1pypypi✓ verified 90d ago

A declarative, Polars-native data frame validation library for Python 3.10+. Current version 2.9.1, released April 2026. Active development with monthly releases.

pip install dataframely
INSTALL
IMPORT
SIG · DATAFRAMELY
D
dataframely
datapythonv2.10.1
Install
5.8s avg
Import
942ms
Disk
326MB
Pass rate
4/ 10
Env Coverage4 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v2.10.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✕ build_error
✓ 6.4s
py 3.11
✕ build_error
✓ 5.8s
py 3.12
✕ build_error
✓ 5.6s
py 3.13
✕ build_error
✓ 5.6s
py 3.9
✕ build_error
✕ build_error
326MB installed
● package 326MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

dy
✓ import dataframely as dy
✗ from dataframely import *
Top-level API uses `dy` prefix; wildcard imports pollute namespace and may conflict with `infer_schema` (removed from __all__ in v2.9.1)
Column
✓ from dataframely import Column
✗ from dataframely.column import Column
Column is re-exported at top-level; internal module paths are private and may change
Schema
✓ from dataframely import Schema
✗ from dataframely.schema import Schema
Schema is re-exported at top-level; internal module paths are private and may change

Quickstart: define a schema and validate a Polars DataFrame.

import polars as pl import dataframely as dy # Define a schema schema = dy.Schema({ "name": dy.String(), "age": dy.Int32(), "email": dy.String().email(), }) # Validate a DataFrame df = pl.DataFrame({ "name": ["Alice", "Bob"], "age": [30, 25], "email": ["alice@example.com", "bob@example.com"], }) result = schema.validate(df) print(result.valid) # True print(result.errors) # []
Debug
Known issues
breakingInfer_schema was removed from top-level __all__ in v2.9.1. If you imported `infer_schema` via `from dataframely import *`, it will no longer be available. Use `dy.infer_schema` explicitly.
fix
Replace `from dataframely import *` with `import dataframely as dy` and use `dy.infer_schema`.
affects: >=2.9.1
gotcha`validate` and `filter` remove columns not in the schema by default. If your DataFrame has extra columns, they will be silently dropped.
fix
Use `strict=False` parameter to keep extra columns, or define them in the schema.
affects: all
deprecatedThe `dy.Decimal` type constraint only accepts integers in some versions (fixed in v2.7.0). If you used float values, upgrade to >=2.7.0.
fix
Upgrade to v2.7.0+ or use integer values for Decimal constraints.
affects: <2.7.0
Errors
Common errors & fixes
AttributeError: module 'dataframely' has no attribute 'infer_schema'
`infer_schema` was removed from the top-level module's `__all__` in v2.9.1.
fix
Use `dy.infer_schema` instead of relying on wildcard import. Ensure you have `import dataframely as dy`.
PolarsSchemaValidationError: Column 'email' not found in DataFrame
`validate` removes columns not in the schema unless `strict=False` is passed.
fix
Add missing columns to schema or pass `strict=False` to keep extra columns.
TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
Using float values for Decimal type constraints before v2.7.0.
fix
Upgrade to dataframely >=2.7.0 or use integer values for Decimal constraints.
Upgrade
Version history
2.10.1latest on PyPI · released May 27, 2026
Audit
Dependencies
polarsrequiredCore dependency — dataframely validates Polars DataFrames
Agent activity
9 hits · last 30 days
node
8
OpenAI (training)
1
Resources
dataframely — pip install dataframely · libregistry