Semantic diffing for mission-critical data pipelines.
Project description
Veridelta
Semantic diffing for data pipelines. Define expected variance, validate intentional changes, and detect regressions with confidence.
Veridelta is a declarative data comparison engine powered by Polars. It applies semantic and mathematical rules to filter out expected pipeline noise, such as floating-point drift or formatting changes, and programmatically isolates true data regressions at scale.
Installation
uv add veridelta
Usage
Veridelta supports configuration-driven CLI execution and programmatic Python API integration.
CLI Configuration (YAML)
Declare comparison rules and tolerances via YAML:
# veridelta.yaml
primary_keys: ["transaction_id"]
schema_mode: "intersection"
source:
path: "legacy_system.parquet"
format: "parquet"
target:
path: "modern_system.parquet"
format: "parquet"
rules:
- column_names: ["grand_total"]
relative_tolerance: 0.01
- column_names: ["contact_number"]
regex_replace: {"[^0-9]": ""}
Execute the comparison:
veridelta run --config veridelta.yaml
Python API
Integrate directly into programmatic workflows (e.g., Airflow, Databricks). The DiffEngine natively consumes Polars LazyFrame objects for memory-safe, big-data execution.
import polars as pl
from veridelta import DiffConfig, DiffRule, DiffEngine
source_lazy = pl.scan_parquet("legacy_data.parquet")
target_lazy = pl.scan_parquet("modern_data.parquet")
config = DiffConfig(
primary_keys=["user_id"],
default_treat_null_as_equal=True,
rules=[
DiffRule(
pattern="^AMT_.*",
absolute_tolerance=0.05
)
]
)
engine = DiffEngine(config, source_lazy, target_lazy)
summary = engine.run()
if not summary.is_match:
print(f"Regression detected: {summary.changed_count} rows differ.")
Core Capabilities
- Structural Alignment: Map legacy column names to modern schemas automatically.
- Semantic Normalization: Coerce string markers to nulls, standardize whitespace, and cast types dynamically before mathematical comparison.
- Discrepancy Artifacts: Export isolated Parquet files detailing
added,removed, andchangedrecords for downstream auditing.
Roadmap
Upcoming enterprise integrations:
- Warehouse Pushdown: Direct SQL execution for Snowflake and Databricks.
- Lakehouse Native: First-class support for Delta Lake and Apache Iceberg.
- Advanced Heuristics: Fuzzy string matching and ML-driven schema mapping.
- Reporting: Interactive HTML diff dashboards and CI/CD status checks.
License
Distributed under the Apache 2.0 License.
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 veridelta-0.2.0.tar.gz.
File metadata
- Download URL: veridelta-0.2.0.tar.gz
- Upload date:
- Size: 212.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
ca39cbbc8c0b79080a2a149930e5b3560d9c58af55cb53cd9f7051df73a3fbf3
|
|
| MD5 |
ecf12aa9202e0655fe204e2c8556aca6
|
|
| BLAKE2b-256 |
b3ac128c707fe16fc1708f87b94afa28ef79529e24afada80f01913b6d5d8473
|
File details
Details for the file veridelta-0.2.0-py3-none-any.whl.
File metadata
- Download URL: veridelta-0.2.0-py3-none-any.whl
- Upload date:
- Size: 24.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
864483ffeefec2fe6b2a19c39511cd67f232db1bed87db5ef69c2b7c4043b944
|
|
| MD5 |
77ebcc2033f59df4165337279b2aad64
|
|
| BLAKE2b-256 |
2e138e89fc1e14c6dae9e7427d415f6badb2d15f23a73d31ec0f9870dfcdca82
|