EazyDataFix 1.0.0

The stable production release: controlled cleaning, preparation reports, data contracts, unified Python workflows and a pipeline-safe CLI.

Released 8 August 2026Python 3.10โ€“3.13MIT

Unified workflow

Profile, assess, clean and explore a dataset through one stable edf.run() call.

Controlled cleaning

Preview proposed fixes and apply typed rules at dataset or column level.

Preparation reports

Inspect transformations, warnings, shapes and data types before and after preparation.

Data contracts

Infer expected schemas and enforce explicit, reusable quality rules.

Production CLI

Run batch workflows with configuration files, structured logs and deterministic exit codes.

Stable compatibility

Every public v0.5 workflow remains available in v1.0.0.

One stable workflow

edf.run() composes the four stages most data projects repeat: profiling, quality assessment, controlled cleaning and deterministic EDA. The returned RunResult keeps each stage separate, so applications can inspect exactly what happened.

unified_workflow.py
1import eazydatafix as edf23result = edf.run("employees.csv")45print(result.profile)6print(result.assessment.quality.score)7print(result.fix_result.applied_fixes)8print(result.eda_result.observations)

Controlled, auditable cleaning

Cleaning is no longer an all-or-nothing operation. A dry run keeps the source dataset unchanged, exposes the proposed dataset separately and records structured before/after changes. Column rules override the dataset-wide strategy only where needed.

cleaning_preview.py
1import eazydatafix as edf23config = edf.FixConfig(4    dry_run=True,5    column_rules={6        "salary": edf.ColumnCleaningRule(7            missing_value_strategy="mean"8        ),9        "notes": edf.ColumnCleaningRule(10            trim_whitespace=False11        ),12    },13)1415preview = edf.fix("employees.csv", config)16print(preview.change_log)17print(preview.proposed_dataset.head())

Preparation with evidence

edf.prepare_with_report() returns the prepared DataFrame together with applied changes, warnings, before/after shapes and data types. Thresholds control numeric and date conversion, while outliers can be left unchanged, capped or dropped.

prepare_with_report.py
1import eazydatafix as edf23config = edf.PrepareConfig(4    numeric_conversion_threshold=0.95,5    date_parsing_threshold=0.80,6    outlier_action="cap",7    normalize_text=True,8)910report = edf.prepare_with_report("employees.csv", config)11print(report.changes)12print(report.warnings)13prepared_df = report.dataset

Data contracts and quality rules

Infer a contract from a trusted dataset, then validate future inputs against expected fields and types. Add explicit not_null, unique, minand max rules for pipeline decisions.

data_contract.py
1import eazydatafix as edf23contract = edf.infer_schema("baseline.csv")4rules = (5    edf.QualityRule("id_unique", "employee_id", "unique"),6    edf.QualityRule("salary_non_negative", "salary", "min", 0),7)89report = edf.validate_contract("incoming.csv", contract, rules)10print(report.passed)11print(report.to_dict())

Production command-line workflows

The edf command runs profile, assess, fix, prepare, EDA, Agentic EDA or the complete workflow. It accepts direct file paths or JSON/YAML configuration, writes JSON summaries and JSONL events, and returns exit code 0, 1 or 2 for success, processing failure or configuration failure.

terminal
1edf employees.csv23edf sales.csv customers.csv \4  --config workflow.yaml \5  --output batch-results.json \6  --log-file workflow-events.jsonl

Compatibility and migration

No migration is required for existing v0.5 calls. Profiling, assessment, cleaning, preparation, deterministic and Agentic EDA, reports, approval checkpoints, notebook export and grounded narratives remain available. Applications can now catch the stable package-level EazyDataFixError; the historical spelling remains available for compatibility.

Upgrade in place

Install v1.0.0 and keep current v0.5 workflows. Adopt the new APIs when they add value to your pipeline.

Install

terminal
pip install eazydatafix==1.0.0