An adaptive data quality engine that detects anomalies and suggests fixes.
Project description
Sift: Adaptive Data Quality Engine (DQE)
Sift is a deterministic, explainable engine designed to detect, rank, and suggest fixes for data quality issues in tabular datasets.
Unlike "black box" AI tools that hallucinate fixes, Sift uses a transparent 3-Layer Architecture to provide statistically backed remediation strategies without requiring labeled training data.
🚀 Key Capabilities
- Layer 1: Structural Profiling - Infers types, cardinality, and missingness patterns using Polars.
- Layer 2: Semantic Inference - Uses Isolation Forest (Anomaly Detection) and String Clustering to find logic errors and fuzzy duplicates.
- Layer 3: Impact Ranking - Prioritizes issues by severity (0-1 score) so you fix system-breaking errors first.
📦 Installation
pip install sift-dqe
⚡ Quick Start
Sift installs a global CLI tool that you can use immediately.
1. Run the Demo
See Sift in action against an internally generated dataset. The engine will spin up, inject random errors (via Chaos Monkey), and attempt to detect them live.
sift demo
2. Verify Reliability (The Benchmark)
Don't trust the tool? Audit it. Run the Reliability Scorecard to stress-test the engine against 20 cycles of synthetic data corruption.
sift benchmark
3. Analyze Your Own Data
Sift supports CSV and Parquet files out of the box.
sift analyze path/to/your/file.csv
🧠 How It Works
Sift operates on the Bounded Intelligence principle—it avoids guessing semantics and instead measures statistical deviation.
- Ingest: Loads data into Polars for high-performance processing.
- Profile: Calculates column statistics (Mode, Mean, Null%).
- Infer: Runs unsupervised ML (Isolation Forest) to detect row-level anomalies.
- Rank: Synthesizes all findings into a prioritized JSON report or Terminal Dashboard.
🛡️ Known Limitations
Sift is a statistical engine, not a semantic oracle.
- Small Data: Datasets with <50 rows may trigger false positives in anomaly detection due to sparse density.
- Context: Sift detects outliers (e.g., Age=150), but cannot verify if they are impossible (e.g., humans don't live to 150).
For a full list of failure modes, please visit the GitHub Repository.
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 sift_dqe-0.1.1.tar.gz.
File metadata
- Download URL: sift_dqe-0.1.1.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.4 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4e6e1565ac0e50d3eb052699429b8cee0e0e0bad8ddafa3bacefc13b244dedd
|
|
| MD5 |
312126ff8b970ad65deed0d211d151b2
|
|
| BLAKE2b-256 |
44b7a1ed3e192c14087794328a3ec164d4d5d652aa9fe5a331217536286c7b8b
|
File details
Details for the file sift_dqe-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sift_dqe-0.1.1-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.4 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12d8cac3a02b7447a72a703fe1a1c096689da2880081110c09cfe12bbc6e5974
|
|
| MD5 |
b5b2f92a02dfa4aaee82e57cb966c785
|
|
| BLAKE2b-256 |
4bbb4bd2c5aa1e787f00a634e87ebe8214de6fb278d0ad1944e8c4b4cf126cf0
|