Metadata-Version: 2.4
Name: quickclean
Version: 0.1.0
Summary: One-line intelligent data cleaning for pandas DataFrames
Project-URL: Homepage, https://github.com/alphariz/quickclean
Project-URL: Documentation, https://quickclean.readthedocs.io
Project-URL: Repository, https://github.com/alphariz/quickclean
Project-URL: Bug Tracker, https://github.com/alphariz/quickclean/issues
Project-URL: Changelog, https://github.com/alphariz/quickclean/blob/main/CHANGELOG.md
Author-email: Nama Kamu <kamu@email.com>
License: MIT
Keywords: automation,data-cleaning,ml,pandas
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: numpy>=1.21.0
Requires-Dist: pandas>=1.5.0
Provides-Extra: dates
Requires-Dist: dateparser>=1.1.0; extra == 'dates'
Provides-Extra: dev
Requires-Dist: pre-commit>=3.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Requires-Dist: twine>=5.0.0; extra == 'dev'
Provides-Extra: full
Requires-Dist: dateparser>=1.1.0; extra == 'full'
Requires-Dist: rapidfuzz>=3.0.0; extra == 'full'
Requires-Dist: scikit-learn>=1.3.0; extra == 'full'
Requires-Dist: tqdm>=4.60.0; extra == 'full'
Provides-Extra: fuzzy
Requires-Dist: rapidfuzz>=3.0.0; extra == 'fuzzy'
Provides-Extra: smart
Requires-Dist: scikit-learn>=1.3.0; extra == 'smart'
Requires-Dist: tqdm>=4.60.0; extra == 'smart'
Description-Content-Type: text/markdown

# QuickClean

> One-line intelligent data cleaning for pandas DataFrames.

```python
import quickclean as qc
df_clean = qc.clean(df)
```

*Lighter than pyjanitor. Smarter than pandas manual.*

![Tests](https://github.com/alphariz/quickclean/actions/workflows/ci.yml/badge.svg)
![Coverage](https://img.shields.io/badge/coverage-89%25-brightgreen)
![PyPI](https://img.shields.io/pypi/v/quickclean)

## Why QuickClean?

| | QuickClean | pandas manual |
|---|---|---|
| Lines of code | **2** | 30 |
| Time (100K rows) | 0.26s | 0.14s |
| Missing % left | **0.0%** | 0.0% |
| Outliers handled | **yes** | manual |
| Auto dtype fix | **yes** | manual |

## Installation

```bash
pip install quickclean

# With ML-powered imputation
pip install quickclean[smart]

# Everything
pip install quickclean[full]
```

## Usage

```python
import quickclean as qc

# One line
df_clean = qc.clean(df)

# With options
df_clean = qc.clean(
    df,
    strategy="smart",       # 'fast' | 'smart' | 'aggressive'
    aggressiveness=0.5,     # 0.0–1.0
    verbose=True,           # print cleaning report
    preview=False,          # return analysis dict only
)
```

## What gets cleaned automatically

- Missing values — smart imputation (median/mode/KNN/iterative)
- Outliers — adaptive detection + cap/remove/impute
- Duplicates — global + subset aware
- Data types — inference & auto-correction
- Formatting — snake_case columns, string normalization,
  date parsing, numeric string conversion
- Categories — fuzzy harmonization ("Jakarta" = "JAKARTA")

## Performance

| Rows | Time | Throughput |
|---|---|---|
| 10K | 0.04s | 273K rows/s |
| 100K | 0.24s | 412K rows/s |
| 1M | 2.40s | **416K rows/s** |

## Requirements

- Python >= 3.10
- pandas >= 1.5.0
- numpy >= 1.21.0

Optional: `scikit-learn` (smart imputation),
`rapidfuzz` (fuzzy matching), `dateparser` (date parsing)