Skip to content

Fase 1: report unificato — validazione in memoria, non più file su disco - #436

Merged
Gabrymi93 merged 6 commits into
mainfrom
refactor/unified-validation-report
Jul 30, 2026
Merged

Fase 1: report unificato — validazione in memoria, non più file su disco#436
Gabrymi93 merged 6 commits into
mainfrom
refactor/unified-validation-report

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sintesi

I 3 file di validazione intermedi (raw_validation.json, _validate/clean_validation.json, _validate/mart_validation.json) non vengono più scritti su disco. Le validazioni restano in memoria durante il run e vengono incluse nel run record finale (_runs/{dataset}/{year}/{run_id}.json).

Cosa cambia

  • Refactor / performance

Dettaglio

Prima Dopo
RAW → scrive raw_validation.json RAW → validazione in memoria
CLEAN → scrive clean_validation.json CLEAN → validazione in memoria
MART → scrive mart_validation.json MART → validazione in memoria
run_raw() chiamava validate + write (duplicato) run_raw() fa solo fetch — validazione delegata a run_raw_validation()
merge_layer_manifest() con 8 parametri merge_layer_manifest() con 3 parametri (solo outputs)
build_run_report() rileggeva 3 file da disco build_run_report() riceve validazioni da memoria
run record SENZA validazioni run record CON validazioni (passed, errors, warnings, stats, sections)

Impatto su contratti pubblici

Nessuno. I 3 file di validazione intermedi NON erano contratti pubblici.

  • dataset-incubator: usa push_archive.py (legge run record, non validation files) ✅

Verifica

Testato end-to-end su dipendenti-pubblici (40.521 righe reali):

RAW   ✅ 0 errori, qualità 100
CLEAN ✅ 40.521 righe, PAQA 95, 2 warning
MART  ✅ 5 tabelle, 581 righe aggregate
  • ruff check . passa
  • Test su candidato reale dataset-incubator

Note

  • I vecchi file di validazione (da run precedenti) restano su disco — non vengono cancellati. Semplicemente non vengono più scritti.
  • inspect summary continua a funzionare: legge dal run record per i nuovi run, fallback ai file su disco per i vecchi.
  • merge_layer_manifest() non accetta più validation_path, ok, errors_count, warnings_count.

- Rimosse _read_validation(), _get_warnings(), _get_errors() da report.py
- Puliti import validation costanti non piu' necessari
- Aggiunto campo row_count a RawProfile
- Calcolato in profile_raw() tramite DuckDB COUNT(*)
- Già correttamente letto da clean validation e run record
(raw_rows=40521, raw_cols=23 nel run reale)
@Gabrymi93
Gabrymi93 merged commit 85410dd into main Jul 30, 2026
3 checks passed
@Gabrymi93
Gabrymi93 deleted the refactor/unified-validation-report branch July 30, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant