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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions