A developer-first Python toolkit for data quality profiling, validation, and interactive HTML reports.
Project description
pydqkit
pydqkit is a lightweight, developer-first Python toolkit for data quality profiling, data validation, sanity check and interactive HTML visualization.
It helps data engineers and analysts quickly understand the structure, completeness, and patterns of tabular datasets, without requiring any external platforms or services.
Features
- Column-level data profiling
- Null and non-null statistics
- Distinct and duplicate counts
- Length analysis (minimum, maximum, average)
- Pattern discovery for string, datetime, and boolean columns
- Type inference (numeric, string, boolean, datetime)
- Interactive, self-contained HTML profiling reports
- Designed for exploratory analysis and debugging workflows
Installation
pip install pydqkit
Quick Start
import pandas as pd
from pydqkit.profiling import profile_dataframe
from pydqkit.viz import profile_to_html
df = pd.DataFrame({
"id": ["AB123456", "CD654321", None, "EF000001"],
"age": [25, 30, None, 40],
"score": [88.5, 92.0, 79.5, 85.0],
"date": ["2025-01-01", "2025-01-02", None, "2025-01-04"],
"flag": [True, True, False, True],
})
profile = profile_dataframe(df, dataset_name="demo")
html = profile_to_html(profile)
with open("profile_report.html", "w", encoding="utf-8") as f:
f.write(html)
Open profile_report.html in your browser to explore the interactive profiling report.
What the Profiling Report Shows
For each column, the report includes:
Completeness
- Proportion of non-null and null values (visual bar and percentages)
Value Statistics
- Distinct count and duplicate count
Type Information
- Inferred profile type and suggested logical type
Length Metrics
- Minimum length (reported as 0 if missing values exist)
- Maximum and average length
Pattern Summary
- Common structural patterns inferred from values
Top Values
- Most frequent values with counts and percentages
The report is designed to be readable at a glance while still exposing enough detail for debugging and validation.
Design Philosophy
pydqkit is intentionally:
Developer-first
Optimized for notebooks, scripts, and local inspection.
Platform-independent
No cloud services, no accounts, no metadata dependencies.
Explainable
Metrics and visual elements are designed to be interpretable rather than opaque.
The project follows conventions commonly used in enterprise data quality tools, but is implemented as a standalone Python library.
License
This project is released under the MIT License.
See the LICENSE file for details.
The author reserves the right to relicense future versions.
Disclaimer
This project is an independent open-source toolkit and is not affiliated with, endorsed by, or associated with Informatica or any other commercial data quality platform.
Contributing
Contributions are welcome.
By submitting a pull request, you agree that your contributions will be licensed under the same license as this project.
See CONTRIBUTING.md for details.
Roadmap (Tentative)
- Rule-based data quality checks
- Column-level and cell-level validation
- Support for multiple rule definitions:
- Regular expressions
- SQL-based rules
- Plain-language rule specifications
- Data engineering quality checks (schema, type, and pipeline sanity)
- Machine learning data sanity checks (distribution drift, outliers)
- Column comparison across datasets
- Cell level data quality check
- Export profiling reports to multiple formats (HTML, PDF, Excel)
- Configurable thresholds and validation summaries
Author
Niki Zheng, Luqun Li
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 pydqkit-0.0.1.tar.gz.
File metadata
- Download URL: pydqkit-0.0.1.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d5d9fec67e7efd8882f7c35acb863a9e64970736e3cb1678d64e7a7f9c9f455
|
|
| MD5 |
8ef5988691d2e15ab15558d52c132c8d
|
|
| BLAKE2b-256 |
082176993f70b5c3d9dd7f8f698689ea0ffba21f1263b13288e258ad9d68bfdc
|
File details
Details for the file pydqkit-0.0.1-py3-none-any.whl.
File metadata
- Download URL: pydqkit-0.0.1-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c41695a54063475ba35fde64ee18a97c0aca78c548f9647c56b10056bc197d95
|
|
| MD5 |
3daaa0a65bdcc673bc465d572282ec7d
|
|
| BLAKE2b-256 |
630bc2e9cc3587d0d74f18cbf3c8709f97bb8f83ead798156a3c9b4934bb80e7
|