Skip to content

refactor: rimuovi residui deprecato/backward-compat morti + fix test ODS/network smoke - #507

Merged
Gabrymi93 merged 3 commits into
mainfrom
cleanup/deprecated-residues
Oct 13, 2026
Merged

Gabrymi93 merged 3 commits into
mainfrom
cleanup/deprecated-residues

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sintesi

Pulizia residui deprecato/backward-compat morti rimasti dopo le migrazioni #311, #439, #468 e #503, più due fix ai test scoperti in locale (skip ODS senza odfpy, gating network smoke).

Contesto collegato

Nessuna issue — audit interno dei residui legacy. Verifica consumer esterni fatta con rg su tutta l'org (SO usa direttamente lab_connectors, non gli alias rimossi).

Cosa cambia

  • Refactor / performance
  • Documentazione
  • Bug fix
    • Nuova funzionalità del motore
    • Nuovo plugin sorgente
    • Modifica contratto pubblico (dataset.yml, path output, schema parquet)
    • Dipendenze o CI

Impatto su contratti pubblici

  • API pubblica del toolkit (firma funzione, classe, eccezione)
    • cmd_run.run_full() rimosso (DeprecationWarning da feat: config auto-detect, run default, inspect unificato #439, 30/07 — ~2.5 mesi di preavviso; unico consumer era un test interno, migrato a _execute_pipeline)
    • scout.sparql.discover_named_graphs/infer_graph_schema rimosso (alias morti: SO usa lab_connectors.http.sparql direttamente, verificato con rg sull'org)
    • scout.link_extractor._extract_* rimosso (alias privati orfani, nessun consumer)
    • registry.reader._section_count ora tipizzato su Registry (branch raw-dict serviva solo un test)
  • Struttura dataset.yml
  • Path output
  • Schema parquet
  • CLI o MCP tool

Se segnato, hai aggiornato downstream? [x] dataset-incubator — [x] docs/ (nessun downstream consuma i simboli rimossi, verificato)

Cosa rimuove/allinea (per commit)

2e15f03 — refactor residui:

  • run_full() deprecato rimosso da cmd_run.py (−23 LOC); test regression test_run_validation_gate migrato a _execute_pipeline
  • scout/sparql.py: alias discover_named_graphs/infer_graph_schema rimossi (−33 LOC); resta fetch_sparql_count (logica propria)
  • scout/link_extractor.py: alias orfani _extract_* rimossi (−6 LOC)
  • registry/reader._section_count: branch raw-dict rimosso, firma Registry; test aggiornato
  • Doc stale allineati: profile_ops (cmd_profile non esiste più), cmd_scout (inspect url già rimosso), README/__init__/builders registry (fallback legacy rimosso da feat(registry): ordine canonico, comando build unico, drop legacy reader #468)

2aaa29e — fix test:

  • 3 test ODS: importorskip("odf") — fallivano in env senza extra pandas (erano verdi in CI solo perché la matrix installa [dev,pandas])
  • test_smoke_scout.py: 4 test con URL reali (finanze.gov.it, consip.it) dietro RUN_NETWORK_SMOKE=1 (stesso pattern di RUN_S3_SMOKE) — lo step smoke CI (-m smoke) li includeva nonostante il docstring dicesse il contrario

Verifica

pytest tests/ -q                 # 1323 pass, 7 skip, 0 fail
pytest -m core -q                # 222 pass
pytest tests/ -m smoke --collect-only   # solo test puro infer_years da test_smoke_scout
ruff check <file toccati>        # pass
mypy toolkit/                    # Success: no issues in 130 files
  • pytest -m core passa
  • ruff check . passa
  • mypy toolkit/ passa
  • Modificato o aggiunto test con marker appropriato (regression su test migrato, pure_unit su test section_count aggiornato)

Checklist PR

  • Perimetro stretto: una PR = cleanup mirato residui deprecato + fix test correlati
  • Se nuovo plugin: test + docs inclusi
  • Issue collegata o motivazione dell'assenza (audit interno residui legacy)
  • Se rimuovo un modulo/funzione pubblica: verificata l'assenza di import con rg su tutta l'org (SO, LC, hub — nessun consumer dei simboli rimossi); run_full aveva già DeprecationWarning da feat: config auto-detect, run default, inspect unificato #439 come richiesto dalla deprecation policy

Note per chi revisiona

  • Net −66 LOC (83 insertions / 147 deletions su 14 file)
  • Non toccato (fallback runtime con consumer reali su dati storici, richiede analisi migrazione separata): run_record_portability, input_selection legacy, suggested_read.yml fallback, stats fallback in validation, _val_field readiness
  • Shim rimasti intenzionalmente: scout/infer.py e scout/link_extractor.py sono il path di import corrente di cmd_scout/__init__ (re-export da LC), non residui
  • typo nel messaggio del commit 2aaa29e (SMOoke) — non ammendato per non riscrivere la storia del push

…tale

- rimosso run_full() deprecato (DeprecationWarning da #439) e aggiornato
  il test regression a _execute_pipeline
- rimossi alias morti discover_named_graphs/infer_graph_schema da
  scout/sparql.py (nessun consumer: SO usa direttamente lab_connectors)
- rimossi alias orfani _extract_* da scout/link_extractor.py
- registry/reader._section_count: rimosso branch raw-dict backward-compat
  (l'unico consumer era un test); firma ora tipizzata su Registry
- doc/commenti stale allineati: profile_ops (cmd_profile non esiste più),
  cmd_scout (inspect url già rimosso), registry README/__init__/builders
  (fallback legacy rimosso da #468, modello fusion ADR)

LOC: -129/+46 (net -83)
- test_clean_duckdb_read: i 3 test ODS usano importorskip("odf") —
  fallivano in env senza extra pandas (CI resta verde grazie a [dev,pandas])
- test_smoke_scout: i 4 test con URL reali (finanze.gov.it, consip.it)
  dietro RUN_NETWORK_SMOoke=1 come RUN_S3_SMOKE — lo step smoke CI
  (-m smoke) li includeva nonostante il docstring dicesse il contrario,
  creando dipendenza da endpoint esterni; il test puro infer_years
  resta smoke e gira sempre
L'audit markers richiede un marker per ogni test nei file toccati;
i 4 test di rete avevano solo skipif senza marker. Stesso pattern di
test_s3_parquet_smoke: @pytest.mark.smoke + skipif env var — restano
collezionabili da -m smoke ma saltano senza RUN_NETWORK_SMOKE=1.
@Gabrymi93
Gabrymi93 merged commit c924b83 into main Oct 13, 2026
3 checks passed
@Gabrymi93
Gabrymi93 deleted the cleanup/deprecated-residues branch October 13, 2026 21:43
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