Skip to content

refactor(scaffold): simplify full.py, fix dependency inversion - #477

Merged
Gabrymi93 merged 3 commits into
mainfrom
refactor/scaffold-simplification
Aug 23, 2026
Merged

refactor(scaffold): simplify full.py, fix dependency inversion#477
Gabrymi93 merged 3 commits into
mainfrom
refactor/scaffold-simplification

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Riepilogo

Refactoring del modulo scaffold per ridurre complessità e eliminare la dependency inversion profile → scaffold.

Cosa cambia

scaffold/full.py (332 → 247 righe, -26%)

  • YAML generation da yml_lines.append() (stringhe) a config dict + yaml_dumps()
  • Aggiunti _build_sources() e helper per ogni tipo fonte (ckan, sdmx, sparql, html, file)
  • Aggiunti suggest_validation() e suggest_mart_sql() (prima inline o duplicati)

cli/cmd_scout.py (861 → 662 righe, -23%)

  • 5 funzioni _scaffold_* unificate: SPARQL/SDMX da ~150 righe di YAML manuale a ~10 righe
  • Estratto _profile_sample() helper riusabile
  • Eliminati _scaffold_minimal_ckan() e _fmt_years() duplicato

scaffold/clean.py (547 → 464 righe, -15%)

  • _suggest_dateformat + _try_strptime spostati in profile/raw.py
  • Eliminata la dependency inversion: profile/ non importa più da scaffold/

profile/raw.py

  • Aggiunta suggest_dateformat() localmente (prima importata da scaffold/clean)

Test

  • 72 test passano (54 esistenti + 18 nuovi per test_scaffold_full.py)
  • Nessun test fallente pre-esistente è stato toccato

Numeri

Totale scaffold+CLI: 1905 → 1538 righe (-367, -19%)
profile → scaffold: 1 import eliminato (dependency inversion fixata)

…inversion

full.py: replace manual YAML generation with config dict + yaml_dumps()

cmd_scout.py: unify 5 _scaffold_* via generate_full_scaffold()

clean.py: move _suggest_dateformat to profile/raw.py (fix dependency inversion)

Net: -367 lines, 72 tests passing.
… stub

suggest_validation now returns all normalized columns (was capped at 5)

propose read_mode: robust when profile has CSV parsing errors
@Gabrymi93
Gabrymi93 merged commit 8a829c1 into main Aug 23, 2026
3 checks passed
@Gabrymi93
Gabrymi93 deleted the refactor/scaffold-simplification branch August 23, 2026 22:08
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