cuallee
Python library for data validation on DataFrame APIs including Snowflake/Snowpark, Apache/PySpark and Pandas/DataFrame.
What it is and what it does
Cuallee is a data quality validation framework designed to work across multiple dataframe libraries—PySpark, Snowpark, DuckDB, Polars, Daft, and BigQuery—without requiring a separate implementation for each. It was built as a pure-Python alternative to pydeequ, addressing usability and performance concerns with that framework. The library lets you define checks for data integrity (completeness, uniqueness, patterns, ranges, statistical anomalies) and run them against your dataframe, returning pass/fail results with detailed metrics.
The package depends on toolz and requests, keeping its footprint minimal. It supports checks across multiple data types and includes specialized validators for dates, membership tests, regular expressions, and workflow sequences (process mining). You can compose checks into a fluent API, run them individually or as controls across entire dataframes, and get results as either detailed validation reports or simple boolean assertions.
Use it for:
- Validate completeness and uniqueness on PySpark DataFrames before loading data into a warehouse.
- Run date range and continuity checks (e.g., is_daily) on time-series data in Snowpark or DuckDB.
- Test that categorical columns conform to an allowed set of values using is_contained_in across multiple dataframe backends.
- Detect statistical anomalies (e.g., interquartile range outliers) in numeric columns without writing custom aggregation logic.
- Verify business process workflows (e.g., Order-to-Cash sequences) using has_workflow to ensure event ordering and state transitions.
- Apply completeness checks across all columns in a dataframe using Control.completeness for quick data profiling.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Cuallee provides a dataframe-agnostic API to define and run data quality checks across PySpark, pandas, Snowpark, DuckDB, Polars, Daft, and BigQuery, replacing pydeequ with a pure-Python implementation.
Yes, with conditions. Cuallee is worth installing if you work with multiple dataframe libraries and need a unified data quality API. The low install friction (pure Python, two dependencies), permissive Apache 2.0 license, and broad dataframe support make it accessible. However, the aging maintenance status (311 days since last release, last commit 2026-02-05) means you should verify that the specific dataframe versions you use are still supported in 0.15.4 before committing to production use. No known security vulnerabilities.
Install
cuallee on PyPI
pip
pip install cualleeuv
uv add cualleepoetry
poetry add cualleeInstalling cuallee
Before you install
Low friction: pure Python wheel with only two runtime dependencies (toolz, requests). Maintenance status is aging—last release was 311 days ago and the last commit on 2026-02-05, though the repo remains active with 248 stars and is not archived.
License in practice
Apache License 2.0 is permissive; you may use, modify, and distribute cuallee freely in commercial and private projects, provided you include a copy of the license and note any changes you make.
Quickstart
pip install cuallee
from cuallee import Check, CheckLevel
check = Check(CheckLevel.WARNING, "Completeness")
check.is_complete("id").is_unique("id").validate(df)
Requires Python 3.10 or later. The package is dataframe-agnostic but each target dataframe library (PySpark, Snowpark, etc.) must be installed separately.
Verify before relying
- Whether all supported dataframe providers (PySpark 4.0.1, Snowpark 1.11.1, pandas 2.0.2, DuckDB 1.4.0, Polars 1.34.0, Daft 0.2.24) are tested and maintained in the current 0.15.4 release.
- Current performance characteristics relative to pydeequ—the description cites a benchmark but does not specify the test dataset size or hardware used.
- Status of the 'new version of validate output' mentioned as under construction in the documentation.
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — toolz, requests |
| Maintenance | aging — 311 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 116,975/month — #12,186 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cuallee-0.15.4-py3-none-any.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
pydeequPyDeequ is a Python API for Apache Spark-based…
permissive · top 5,000 on PyPI
pyspark-testProvides a testing utility to assert equality…
permissive · top 15,000 on PyPI
databricks-labs-dqxDQX provides rule-based data quality checking…
unclear · top 5,000 on PyPI
quinnQuinn provides helper methods for PySpark…
permissive · top 15,000 on PyPI
pyddqPyDDQ is a Python API for running data quality…
permissive · top 15,000 on PyPI
chispaProvides assertion methods for testing PySpark…
permissive · top 5,000 on PyPI
narwhalsNarwhals provides a lightweight compatibility…
permissive · top 1,000 on PyPI
panderaPandera provides a flexible API for validating…
permissive · top 5,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
pyspark-pandasProvides tools for distributing Pandas…
unclear · top 5,000 on PyPI