dataframely
A declarative, polars-native data frame validation library
Decision gist · record as of 2026-08-14
Yes, with conditions. Dataframely is actively maintained, has no known vulnerabilities, and solves a real problem for Polars users who need declarative schema validation. However, verify the license before use in proprietary work, and be aware that the package is relatively new (first release March 2025)—test it in non-critical pipelines first if you require battle-tested stability.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later and Polars as a runtime dependency.
- Medium install friction due to compiled wheels (cp310-abi3 binaries for multiple platforms).
- Active maintenance with a release 14 days ago and 610 repository stars suggest ongoing development and community use.
License · maintenance · safety
(unclear) — License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before adopting in proprietary or restricted environments.
last release 2026-07-31 (14 days) · last repo commit 2026-08-04 · 610 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 297,366 downloads/mo, #7,886 on PyPI
Alternatives
Verify before relying
pip install dataframely
import dataframely as dy
import polars as pl
class MySchema(dy.Schema):
column_name = dy.String(nullable=False)
df = pl.DataFrame({"column_name": ["value"]})
validated = MySchema.validate(df, cast=True)- Whether the package is suitable for production pipelines given its recent first release (2025-03-14).
- Exact license terms and any restrictions on commercial use.
- Performance characteristics when validating large data frames.
What it is and what it does
Dataframely is a Python validation library designed specifically for Polars data frames. It lets you define schemas as Python classes with typed fields and optional constraints (nullable, min_length, etc.), then validate and cast data frames against those schemas in a single call. The library supports both field-level validation and cross-field rules written as Polars expressions, making it possible to enforce complex business logic (e.g., ratio constraints between columns) declaratively.
The package depends on numpy, polars, and typing-extensions. It targets modern Python versions (3.10+) and ships as compiled wheels for multiple platforms (macOS, Linux, Windows). Validation is typically used in data pipelines to catch schema mismatches early and ensure data quality before downstream processing.
Use it for
- Validate incoming CSV or database exports against an expected schema before processing in a data pipeline.
- Enforce business rules (e.g., price > 0, bedroom-to-bathroom ratios) on data frame columns using declarative cross-field rules.
- Add type hints to data frames in notebooks or scripts so that IDE and type checkers understand the structure of validated data.
- Catch and report schema violations (missing columns, wrong types, null values) early in ETL workflows.
- Define reusable schemas for repeated validation tasks across multiple data sources or team members.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
Dataframely is actively maintained, has no known vulnerabilities, and solves a real problem for Polars users who need declarative schema validation. However, verify the license before use in proprietary work, and be aware that the package is relatively new (first release March 2025)—test it in non-critical pipelines first if you require battle-tested stability.
Install
dataframely on PyPI
Before you install
Medium install friction due to compiled wheels (cp310-abi3 binaries for multiple platforms). Active maintenance with a release 14 days ago and 610 repository stars suggest ongoing development and community use.
Requires Python 3.10 or later and Polars as a runtime dependency.
License in practice
License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before adopting in proprietary or restricted environments.
Quickstart
pip install dataframely
import dataframely as dy
import polars as pl
class MySchema(dy.Schema):
column_name = dy.String(nullable=False)
df = pl.DataFrame({"column_name": ["value"]})
validated = MySchema.validate(df, cast=True)
Verify before relying
- Whether the package is suitable for production pipelines given its recent first release (2025-03-14).
- Exact license terms and any restrictions on commercial use.
- Performance characteristics when validating large data frames.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 3 packagesnumpypolarstyping-extensions |
| Maintenance | Actively maintained 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 297,366 / month, #7,886 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: dataframely-3.0.0-cp310-abi3-macosx_10_12_x86_64.whl; dataframely-3.0.0-cp310-abi3-macosx_11_0_arm64.whl; dataframely-3.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; dataframely-3.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; dataframely-3.0.0-cp310-abi3-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “declarative schema constraints”
- dataframelyDataframely validates the schema and content of Polars data frames…
- zope.schemaDefines structured data schemas for Python objects using…
- dagster-panderaIntegrates Pandera data validation with Dagster's asset…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also patito · polars · grizz · polars-runtime-compat · polars-ds · polars-runtime-32 · janaf · polars-lts-cpu · polars-runtime-64 · polars-cloud