Zero-boilerplate ML data validation and model evaluation.
Project description
FitCheck
Zero-boilerplate ML data validation and model evaluation.
FitCheck validates datasets, evaluates ML models, and detects distribution drift — all with one-line commands that generate shareable HTML reports.
| Package | Release | Stats |
|---|---|---|
| data-fitcheck | pip install data-fitcheck |
Philosophy
- Zero Config — Pass a file path. Get answers. No YAML, no setup.
- Immutability — FitCheck diagnoses, never silently modifies. Fix scripts are transparent and inspectable.
- Shareability — Every check generates a self-contained HTML report ready for Slack, email, or GitHub.
- No Telemetry — Zero outbound network calls. All computation is local.
Installation
pip install data-fitcheck
From source (for development):
git clone https://github.com/neoline361-art/fitcheck.git
cd fitcheck
pip install -e ".[dev]"
Quick Start — 30 Seconds
import fitcheck
# 1. Validate a dataset
issues = fitcheck.check("data.csv", target="label")
# → Opens fitcheck_report.html with issues, stats, preview
# 2. Evaluate a model
metrics = fitcheck.report(model, X_test, y_test)
# → Opens model_report.html with metrics + plots
# 3. Detect drift
results = fitcheck.detect_drift("train.csv", "production.csv")
# → Opens drift_report.html with per-feature drift results
CLI (same thing, no Python needed)
pip install data-fitcheck
fitcheck check data.csv --target label
fitcheck drift train.csv production.csv
fitcheck demo # runs everything in one command
What FitCheck Checks
| Check | Method | Severity |
|---|---|---|
| Missing values | Null ratio >5% / >20% | Warning / Critical |
| Duplicate rows | df.duplicated().sum() |
Warning |
| Constant columns | Single unique value | Warning |
| Class imbalance | Majority class >80% | Warning |
| Outliers | IQR method (1.5×) | Info |
| Numeric drift | KS test (p<0.05) | Critical |
| Categorical drift | Chi-squared (p<0.05) | Critical |
Documentation
| Resource | Description |
|---|---|
| API Reference | Complete API documentation with parameters, returns, and examples |
| Architecture | Module design and design decisions |
| Design Decisions | Why certain technical choices were made |
| FAQ | Frequently asked questions |
| Examples | Runnable usage examples |
| Benchmarks | Performance benchmarks on standard hardware |
Project Maturity
| Aspect | Status |
|---|---|
| Version | v2.0.0 — Semantic Versioning |
| Tests | 30 tests, 82% coverage |
| Type Safety | mypy strict — 11 type-arg warnings (all ndarray, no runtime impact) |
| Linting | ruff clean |
| Security | bandit + pip-audit (pickle warning expected for model loading) |
| License | Apache 2.0 |
| Platforms | Linux, macOS, Windows (Python 3.9–3.13) |
| PyPI | v2.0.0 — pip install data-fitcheck |
Limitations
- Supports only pandas DataFrames (CSV, Parquet)
- Drift: KS test for numeric, Chi-squared for categorical
- Deep learning model evaluation is not implemented
- Datasets must fit in memory
- No streaming or distributed processing
Development
# Setup
pip install -e ".[dev]"
pre-commit install
# Run all quality gates
ruff check fitcheck/
mypy fitcheck/
bandit -r fitcheck/ -x tests
pip-audit
pytest --cov=fitcheck --cov-report=term-missing
# Demo
python demo.py
Versioning
FitCheck follows Semantic Versioning. Given a version MAJOR.MINOR.PATCH:
- MAJOR — Breaking API changes
- MINOR — New features, backward compatible
- PATCH — Bug fixes, backward compatible
See CHANGELOG.md for per-release details.
Contributing
See CONTRIBUTING.md. TL;DR:
- Tests must pass
- Ruff + mypy must be clean
- Add CHANGELOG entry
Security
See SECURITY.md. Report vulnerabilities to neoline361@gmail.com.
License
Apache 2.0 — see LICENSE for details.
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 data_fitcheck-2.0.1.tar.gz.
File metadata
- Download URL: data_fitcheck-2.0.1.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21ed7a6be89fadd3f03523b784b848f91a9c5af699002f7493a71e0008bff544
|
|
| MD5 |
e780e39af846960796545d76efeb1a3c
|
|
| BLAKE2b-256 |
104d03781a0b73a9ddfa1cfa9f001822cbc9a59fc697c597a9e03f2b3d951746
|
File details
Details for the file data_fitcheck-2.0.1-py3-none-any.whl.
File metadata
- Download URL: data_fitcheck-2.0.1-py3-none-any.whl
- Upload date:
- Size: 23.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b409ecb1ffd24f55a6f26fb5ec0bba555da6069cb4b49f7943dac87d5e368e8d
|
|
| MD5 |
085e8bdc033ec51fd2e723768a004ed6
|
|
| BLAKE2b-256 |
79d79e9d0c29da9cfce4cfbc3a94bd35c3c18cc283c634e6db794c44c35a5cb9
|