Polars-first data-quality and data-validation toolkit.
Project description
Aqualisys
Polars-first data-quality toolkit delivering deterministic validation, structured logging, and a composable rule registry.
Why Aqualisys?
- Declarative rules: ship reusable expectations such as not-null, uniqueness, accepted-values, and referential checks.
- Deterministic logging: every run is persisted to SQLite (JSON-friendly) for audits and debugging.
- Pipeline-ready: run from Python code or via
aqualisys validate configs/orders.ymlin CI.
Quick Start
python -m venv .venv && source .venv/bin/activate
pip install -e .[dev]
pytest
aqualisys validate configs/orders.yml
Usage Example
import polars as pl
from aqualisys import DataQualityChecker, NotNullRule, UniqueRule, SQLiteRunLogger
df = pl.DataFrame({"order_id": [1, 2, 3], "status": ["pending", "shipped", "shipped"]})
checker = DataQualityChecker(
rules=[NotNullRule("order_id"), UniqueRule("order_id")],
logger=SQLiteRunLogger("artifacts/example_runs.db"),
)
report = checker.run(df, dataset_name="orders")
assert report.passed
Project Structure
src/aqualisys/: library source (rules, checker, logging, CLI).tests/: pytest suites (unit + integration).configs/: sample validation suite definitions.docs/: roadmap and design notes.
See docs/PUBLISHING.md for uv-based build and release steps once you are ready to publish a new version.
See docs/ROADMAP.md for the multi-week implementation plan inspired by the Start Data Engineering guide.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aqualisys-0.1.0.tar.gz.
File metadata
- Download URL: aqualisys-0.1.0.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b55e259f86975ec0c2fa14de09dfbd4b42756cb2ec345988df667bb4bddce6c6
|
|
| MD5 |
e330323da3864ff381b09ce76165d92e
|
|
| BLAKE2b-256 |
44d1cda49dab3e8b342867323b02d9f23c0a34eba5450f9f3e7eba8caa1bf1fd
|
File details
Details for the file aqualisys-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aqualisys-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ae25568b377bf33ab08331ea50b5a3c73930d367464a10d877a6e2647090fa0
|
|
| MD5 |
d6ff3283faf7c2bd0f8f2d91cb6597f2
|
|
| BLAKE2b-256 |
00cc5c28709e4e29668d69da8bea4d345e3c93f04e43b28004e488797c33822d
|