Skip to content

Commit fce8be4

Browse files
chore: prepare v1.0.0 stabilization
1 parent df1b48c commit fce8be4

14 files changed

Lines changed: 139 additions & 50 deletions

‎CHANGELOG.md‎

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,26 @@ https://semver.org/
1212

1313
## [Unreleased]
1414

15-
### Planned for v0.6.0
15+
---
16+
17+
### v1.0.0 release candidate
18+
19+
### Added
1620

17-
- Controlled, auditable cleaning with configurable missing-value markers,
18-
column-level rules, dry-run previews, and structured change logs.
19-
- A unified deterministic `edf.run(...)` workflow for profile, assessment,
20-
cleaning, and EDA.
21+
- Controlled, auditable cleaning with configurable missing markers,
22+
column rules, dry-run previews, and structured change records.
23+
- Preparation controls and reports for reliable type/date conversion, text
24+
normalization, duplicates, and IQR outliers.
25+
- Schema inference, expected-schema contracts, reusable quality rules, and
26+
JSON-ready pass/fail validation reports.
27+
- The `edf` CLI with JSON/YAML configuration, batch input processing,
28+
structured logs, exit codes, and lightweight workflow extensions.
2129

22-
### Planned release milestones
30+
### Stability
2331

24-
- v0.7.0: preparation and feature readiness.
25-
- v0.8.0: validation, schema inference, and data contracts.
26-
- v0.9.0: CLI, configuration, batch processing, structured logs, and extensions.
27-
- v1.0.0: stable public API, migration support, compatibility, and hardening.
32+
- Stable public exports, formal package-level errors, compatibility coverage,
33+
and a v1 migration guide.
34+
- Existing v0.5.0 public APIs remain supported and deterministic.
2835

2936
---
3037

‎MIGRATION_GUIDE.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# EazyDataFix 1.0 Migration Guide
2+
3+
All public APIs available in v0.5.0 remain available in v1.0.0, including
4+
profiling, assessment, cleaning, preparation, deterministic and Agentic EDA,
5+
reports, approval checkpoints, notebook export, and grounded narratives.
6+
7+
## New stable workflows
8+
9+
- `edf.run(...)` composes profile, assessment, cleaning, and EDA.
10+
- `edf.fix(..., FixConfig(dry_run=True))` previews auditable cleaning.
11+
- `edf.prepare_with_report(...)` returns preparation diagnostics.
12+
- `edf.infer_schema(...)` and `edf.validate_contract(...)` support pipeline
13+
contracts and explicit pass/fail results.
14+
- The `edf` CLI supports JSON/YAML-configured batch processing.
15+
16+
Catch `EazyDataFixError` for stable package-level failures. The historical
17+
`EasyDataFixError` spelling remains available for compatibility. No migration
18+
is required for existing v0.5.0 calls.

‎README.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ visualisation recommendations.
292292
| `edf.generate_agentic_eda_narrative(...)` | Generate a cited optional AI narrative from deterministic workflow evidence. |
293293
| `edf.fix(...)` | Apply controlled, configurable cleaning with optional dry-run audit records. |
294294
| `edf.run(...)` | Run profile → assess → fix → EDA as one deterministic workflow. |
295+
| `edf.prepare_with_report(...)` | Prepare data with deterministic change and readiness details. |
296+
| `edf.infer_schema(...)` / `edf.validate_contract(...)` | Infer and enforce pipeline data contracts. |
295297
| `edf.prepare(...)` | Prepare types and columns for downstream analysis. |
296298
| `edf.analysis_ready(...)` | Clean and prepare a dataset in one workflow. |
297299

@@ -313,6 +315,7 @@ Detailed API documentation is maintained on the
313315
## Project status
314316

315317
- Current stable version: v0.5.0
318+
- Development release candidate: v1.0.0
316319
- Development status: Beta
317320
- Python support: 3.10–3.13
318321
- Licence: MIT
@@ -328,7 +331,7 @@ The public API may continue evolving before v1.0.
328331
- **v0.7.0 — Data Preparation and Feature Readiness — Planned**
329332
- **v0.8.0 — Data Validation and Contracts — Planned**
330333
- **v0.9.0 — Production Workflow — Planned**
331-
- **v1.0.0 — Stable Production API — Goal**
334+
- **v1.0.0 — Stable Production API — Release candidate**
332335

333336
See the [full roadmap](ROADMAP.md) for milestone details.
334337

‎RELEASE_NOTES.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
# EazyDataFix 1.0.0 Release Notes
2+
3+
EazyDataFix 1.0.0 stabilizes the public API while preserving every v0.5.0
4+
workflow. It adds controlled cleaning, feature-readiness reports, data
5+
contracts, and a production CLI without introducing an LLM requirement.
6+
7+
## Stable workflows
8+
9+
- `edf.run(...)` composes profile, assessment, controlled cleaning, and EDA.
10+
- Dry-run cleaning, column rules, and before/after change records make fixes
11+
auditable.
12+
- `edf.prepare_with_report(...)` provides deterministic preparation details.
13+
- `edf.infer_schema(...)` and `edf.validate_contract(...)` give pipelines
14+
explicit schema and quality pass/fail results.
15+
- The `edf` CLI supports JSON/YAML configuration, batch processing, logs, and
16+
deterministic exit codes.
17+
18+
See [MIGRATION_GUIDE.md](MIGRATION_GUIDE.md) for compatibility guidance.
19+
20+
---
21+
122
# EazyDataFix 0.5.0 Release Notes
223

324
EazyDataFix 0.5.0 adds optional, evidence-cited AI narratives to completed

‎ROADMAP.md‎

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,31 +42,31 @@
4242
### Milestone 7: Grounded Presentation — Released in v0.5.0
4343
- [x] Optional LLM narratives grounded exclusively in deterministic metrics
4444

45-
### Milestone 8: Controlled, Auditable Cleaning — Planned for v0.6.0
46-
- [ ] Configurable missing-value marker detection
47-
- [ ] Column-level cleaning rules and dry-run previews
48-
- [ ] Structured before/after cleaning change logs
49-
- [ ] Unified profile → assess → fix → EDA workflow
50-
51-
### Milestone 9: Preparation and Feature Readiness — Planned for v0.7.0
52-
- [ ] Reliable type and date conversion controls
53-
- [ ] Duplicate, outlier, text, and category preparation controls
54-
- [ ] Structured preparation reports
55-
56-
### Milestone 10: Validation and Contracts — Planned for v0.8.0
57-
- [ ] Schema inference and expected-schema validation
58-
- [ ] Reusable quality rules with explicit pass/fail reports
59-
- [ ] Pipeline-friendly validation contracts
60-
61-
### Milestone 11: Production Workflows — Planned for v0.9.0
62-
- [ ] `edf` command-line interface with JSON/YAML configuration
63-
- [ ] Batch and multi-file processing with structured logs and exit codes
64-
- [ ] Lightweight extension interface for supported custom steps
65-
66-
### Milestone 12: Stable API — Planned for v1.0.0
67-
- [ ] Consolidated public API, formal result/report objects, and errors
68-
- [ ] Compatibility test suite and migration guidance for necessary breaks
69-
- [ ] Complete tutorials, reliability hardening, and release verification
45+
### Milestone 8: Controlled, Auditable Cleaning — Ready for v1.0.0
46+
- [x] Configurable missing-value marker detection
47+
- [x] Column-level cleaning rules and dry-run previews
48+
- [x] Structured before/after cleaning change logs
49+
- [x] Unified profile → assess → fix → EDA workflow
50+
51+
### Milestone 9: Preparation and Feature Readiness — Ready for v1.0.0
52+
- [x] Reliable type and date conversion controls
53+
- [x] Duplicate, outlier, text, and category preparation controls
54+
- [x] Structured preparation reports
55+
56+
### Milestone 10: Validation and Contracts — Ready for v1.0.0
57+
- [x] Schema inference and expected-schema validation
58+
- [x] Reusable quality rules with explicit pass/fail reports
59+
- [x] Pipeline-friendly validation contracts
60+
61+
### Milestone 11: Production Workflows — Ready for v1.0.0
62+
- [x] `edf` command-line interface with JSON/YAML configuration
63+
- [x] Batch and multi-file processing with structured logs and exit codes
64+
- [x] Lightweight extension interface for supported custom steps
65+
66+
### Milestone 12: Stable API — Ready for v1.0.0
67+
- [x] Consolidated public API, formal result/report objects, and errors
68+
- [x] Compatibility test suite and migration guidance for necessary breaks
69+
- [x] Complete release verification
7070

7171
## Version 0.1
7272

‎eazydatafix/__init__.py‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@
1212
from .assessment.engine import AssessmentEngine
1313
from .assessment.profiler import DatasetProfiler
1414
from .console_report import Report
15+
from .exceptions import (
16+
ConfigurationError,
17+
DatasetNotFoundError,
18+
EazyDataFixError,
19+
InvalidDatasetError,
20+
WorkflowError,
21+
)
1522
from .fix.engine import FixEngine
1623
from .models.agentic_eda_approval_checkpoint import (
1724
AgenticEDAApprovalCheckpoint,
@@ -88,10 +95,12 @@
8895
"AssessmentReport",
8996
"CleaningChange",
9097
"ColumnCleaningRule",
98+
"ConfigurationError",
9199
"ContractCheckResult",
92100
"ContractEngine",
93101
"ContractValidationReport",
94102
"DataContract",
103+
"DatasetNotFoundError",
95104
"DatasetProfiler",
96105
"DatasetProfile",
97106
"EDAEngine",
@@ -102,6 +111,7 @@
102111
"EDAPlanner",
103112
"EDAPlanStep",
104113
"EDAResult",
114+
"EazyDataFixError",
105115
"FixConfig",
106116
"FixEngine",
107117
"FixResult",
@@ -116,13 +126,15 @@
116126
"NarrativeClaim",
117127
"NarrativeEvidence",
118128
"NarrativeProvider",
129+
"InvalidDatasetError",
119130
"ReadyResult",
120131
"Report",
121132
"RunResult",
122133
"SkippedVisualisation",
123134
"SchemaField",
124135
"UnresolvedQuestion",
125136
"VisualisationRecommendation",
137+
"WorkflowError",
126138
"analysis_ready",
127139
"approve_agentic_eda_plan",
128140
"assess_ai_readiness",

‎eazydatafix/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""Package version for EazyDataFix."""
22

3-
__version__ = "0.5.0"
3+
__version__ = "1.0.0"

‎eazydatafix/exceptions.py‎

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
1-
class EasyDataFixError(Exception):
1+
class EazyDataFixError(Exception):
22
"""
33
Base exception for EazyDataFix.
44
"""
55

66

7-
class DatasetNotFoundError(EasyDataFixError):
7+
class EasyDataFixError(EazyDataFixError):
8+
"""Backward-compatible spelling for :class:`EazyDataFixError`."""
9+
10+
11+
class DatasetNotFoundError(EazyDataFixError):
812
"""
913
Raised when the dataset file cannot be found.
1014
"""
1115

1216

13-
class InvalidDatasetError(EasyDataFixError):
17+
class InvalidDatasetError(EazyDataFixError):
1418
"""
1519
Raised when the dataset cannot be loaded.
1620
"""
21+
22+
23+
class ConfigurationError(EazyDataFixError):
24+
"""Raised when a public configuration is invalid."""
25+
26+
27+
class WorkflowError(EazyDataFixError):
28+
"""Raised when a deterministic workflow cannot complete safely."""

‎tests/test_agentic_eda_orchestrator.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def execute(
3232

3333

3434
def test_run_agentic_eda_is_public_and_preserves_version() -> None:
35-
assert edf.__version__ == "0.5.0"
35+
assert edf.__version__ == "1.0.0"
3636
assert callable(edf.run_agentic_eda)
3737
assert "run_agentic_eda" in edf.__all__
3838
assert edf.AgenticEDAResult is AgenticEDAResult

‎tests/test_agentic_eda_reporting.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def generate(
5656

5757

5858
def test_export_agentic_eda_report_is_public() -> None:
59-
assert edf.__version__ == "0.5.0"
59+
assert edf.__version__ == "1.0.0"
6060
assert callable(edf.export_agentic_eda_report)
6161
assert "export_agentic_eda_report" in edf.__all__
6262
assert edf.AgenticEDAReportResult is AgenticEDAReportResult

0 commit comments

Comments
 (0)