Skip to content

refactor(decoupling): rimuovi dipendenza toolkit → lab_connectors.discovery - #427

Merged
Gabrymi93 merged 5 commits into
mainfrom
feat/lc-decoupling
Oct 13, 2026
Merged

Gabrymi93 merged 5 commits into
mainfrom
feat/lc-decoupling

Conversation

@Gabrymi93

Copy link
Copy Markdown
Member

Sintesi

SO importa ora direttamente da lab_connectors.discovery. Rimossa la dipendenza da toolkit. Zero import toolkit rimasti in scripts/, so_mcp/, tests/.

Contesto collegato

Piano: _local/notes/current/PLAN_scout_LC_decoupling_2026-10-12.md
Prerequisito: lab-connectors#90 (da mergiare PRIMA)

Cosa cambia

  • Refactor / performance
  • Nuovo connector o modulo
  • Modifica interfaccia pubblica
  • Bug fix
  • Dipendenze o extra (pyproject.toml)
  • Documentazione
  • CI

Dettaglio

File Cambio
scripts/collectors/html.py import da lab_connectors.discovery.{classify,links}
scripts/collectors/_validate_base.py import da lab_connectors.discovery.{infer,links}
scripts/radar_check.py import da lab_connectors.discovery.classify
scripts/portal.py nuovo — probe_html_portal portato da toolkit (SO-specifico, 1 fonte)
pyproject.toml dataciviclab-toolkit → lab-connectors[duckdb,gcs,mcp]
tests/ import aggiornati a LC

Impatto su consumer downstream

  • Nessun impatto su interfacce pubbliche
  • Modifica dipendenze → pyproject.toml aggiornato

Verifica

pytest tests/  # 29 pass
ruff check scripts/

Ordine di merge

  1. lab-connectors#90
  2. toolkit#503
  3. Questa PR

@Gabrymi93
Gabrymi93 force-pushed the feat/lc-decoupling branch 2 times, most recently from 80683e5 to d2fa348 Compare October 13, 2026 10:50
…covery

SO importa ora direttamente da lab_connectors.discovery.
Zero import toolkit rimasti in scripts/, so_mcp/, tests/.

- collectors/html.py → import da lab_connectors.discovery.{classify,links}
- collectors/_validate_base.py → import da lab_connectors.discovery.{infer,links}
- radar_check.py → import da lab_connectors.discovery.classify
- scripts/portal.py → probe_html_portal portato da toolkit (SO-specifico, 1 fonte)
- pyproject.toml → toolkit → lab-connectors[duckdb,gcs,mcp]
- tests/ → import aggiornati a LC

Prerequisito: lab-connectors feat/discovery-module (da mergiare PRIMA).

29 test pass. ruff pulito.
Pilot appalti-pubblici (ANAC):
- ckan.py: user_agent da config [tool.observatory] per bypassare WAF
  che blocca UA non-browser (dati.anticorruzione.it)
- upstream.py: riconosce dataset_id (ckan_dataset) oltre a resource_id
- schema: enum esteso con ckan_dataset

Verificato: 70 package inventariati, 8/8 datasets_in_use upstream
mappati. Validate 0/48 per WAF sui probe HEAD (nota: il validatore
condiviso non riceve l'UA dal config — miglioramento futuro).
Il WAF ANAC blocca anche i probe HEAD del validatore CKAN (UA di
default). run_validate accetta ora user_agent opzionale, passato dal
config [tool.observatory] nel build_catalog.

Verificato su appalti-pubblici: 47/48 reachable (prima 0/48), 22 CSV.
PortalProfile, fetch_robots_sitemaps, fetch_sitemap_pages spostati
da lab_connectors/discovery/portal.py. SO è l'unico consumer.
@Gabrymi93
Gabrymi93 merged commit c38dc2f into main Oct 13, 2026
1 check passed
@Gabrymi93
Gabrymi93 deleted the feat/lc-decoupling branch October 13, 2026 11:06
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