Skip to content

refactor: estrarre _write_reports() da run_full() in report_ops.py #391

Description

@Gabrymi93

Problema

run_full() in cmd_run.py (1201 righe) ha un blocco inline di ~75 righe per la generazione dei report (righe 994-1069) che:

  • Importa lazy build_run_report, write_run_report, write_dataset_readme dentro la funzione
  • Ha logica di raccolta support info, report per anno, generazione README
  • Ha un try/except Exception generico che silenzia errori con un warning
  • Non è testabile separatamente

Soluzione proposta

Estrarre il blocco in una funzione _write_run_reports() in toolkit/cli/inspect/report_ops.py con firma:

def write_run_reports(
    config: str,
    cfg: ToolkitConfig,
    selected_years: list[int],
    results: dict[str, Any],
    candidate_blocked: bool,
    run_mode: str,
    dry_flag: bool,
    logger,
) -> None:

run_full() perde ~75 righe, la funzione è testabile, il try/except può essere più specifico.

Contesto

Emerso dalla sessione di refactoring validazione (PR #390). Gli altri 4 gap sono stati chiusi, questo è rimasto come follow-up.

Criteri di accettazione

  • run_full() chiama _write_run_reports() invece del blocco inline
  • Test minimo: report generato anche con candidate bloccato
  • Nessun cambiamento nell'output visibile all'utente

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions