feat(harness): port backend Onda 0 — vendor, lshindex, sqlcheck, execute, rest/exec, ctetest, report, datamart
8 moduli leaf portati verbatim da ChironeWp3 con rename psdwp3→tht: - vendor/thoth_lsh (MinHash/LSH, leaf puro datasketch+tqdm) + VENDORED.md - lshindex/ (build/save/load/query, dipende vendor + LshConfig) - sqlcheck/ (validate_sql, leaf ExecutionConfig+mschema) - execute/ + execute/warnings (run_controlled/explain, leaf sqlglot+sqlalchemy) - rest/execute + rest/explain (REST variants, dipendono execute+rest.client) - ctetest (CTE test records, leaf sqlglot+pydantic) - report (validation report rendering, dipende execute+sqlcheck) - datamart (stub NotImplementedError) Verifica: import smoke catena completa OK, pytest 109 passed. Deps (datasketch, sqlglot, sqlalchemy, pydantic, requests, tqdm) già in pyproject. VENDORED.md neutralizzato (riferimenti PsdWp3→Thoth).
This commit is contained in:
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
# Codice vendorizzato
|
||||
|
||||
## thoth_lsh.py
|
||||
|
||||
- Origine: `thoth_sqldb2` (pacchetto PyPI `thoth-dbmanager` 0.7.4), file `thoth_dbmanager/lsh/core.py`
|
||||
- Copyright 2025 Marco Pancotti — Apache License 2.0
|
||||
- Modifiche locali:
|
||||
1. rimosso blocco di debug su colonna "doctype" in `create_lsh_index`;
|
||||
2. `skip_column`: soglie parametrizzate (`max_total_chars`, `max_avg_length`) con default
|
||||
identici agli originali (50000 / 20);
|
||||
3. rimossa `query_lsh_index` (sostituita da `tht.lshindex.query_index`, che restituisce
|
||||
anche gli score per il ranking spiegabile);
|
||||
4. try/except generico rimosso da `create_lsh_index`: gli errori devono emergere.
|
||||
5. `skip_column`: la guardia "name-like" (originariamente solo `"name"`) è stata estesa
|
||||
a token bilingui EN/IT tramite la costante `NAME_LIKE_TOKENS`
|
||||
(`name`, `nome`, `nominativ`, `denominazion`, `ragione_sociale`), sovrascrivibile col
|
||||
parametro `name_tokens`. Necessario perché il datawarehouse Chirone è in italiano e le
|
||||
colonne `nome`/`cognome`/`denominazione`/`ragione_sociale` non venivano riconosciute
|
||||
dalla sola parola inglese `name`.
|
||||
|
||||
**Nota: `skip_column` e `NAME_LIKE_TOKENS` non sono più usati dal flusso Thoth.**
|
||||
La selezione delle colonne da indicizzare è ora governata dal *principio di eleggibilità
|
||||
delle colonne* (spec: `docs/superpowers/specs/2026-06-13-tht-column-eligibility-principle.md`).
|
||||
L'esclusione dei testi larghi avviene a monte tramite il flag `eligible` persistito in
|
||||
`physical.yaml` (impostato da `nsp schema introspect`), non tramite l'euristica sulla
|
||||
lunghezza del vendorizzato. Le funzioni restano nel file per fedeltà alla sorgente upstream;
|
||||
Thoth ha semplicemente smesso di importarle (vedi `tht/db/sampling.py`).
|
||||
|
||||
Le query di introspezione in `tht/db/introspect.py` sono ADATTATE (non copiate verbatim)
|
||||
da `thoth_dbmanager/adapters/postgresql.py` della stessa versione.
|
||||
Reference in New Issue
Block a user