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).
1.8 KiB
1.8 KiB
Codice vendorizzato
thoth_lsh.py
- Origine:
thoth_sqldb2(pacchetto PyPIthoth-dbmanager0.7.4), filethoth_dbmanager/lsh/core.py - Copyright 2025 Marco Pancotti — Apache License 2.0
- Modifiche locali:
- rimosso blocco di debug su colonna "doctype" in
create_lsh_index; skip_column: soglie parametrizzate (max_total_chars,max_avg_length) con default identici agli originali (50000 / 20);- rimossa
query_lsh_index(sostituita datht.lshindex.query_index, che restituisce anche gli score per il ranking spiegabile); - try/except generico rimosso da
create_lsh_index: gli errori devono emergere. skip_column: la guardia "name-like" (originariamente solo"name") è stata estesa a token bilingui EN/IT tramite la costanteNAME_LIKE_TOKENS(name,nome,nominativ,denominazion,ragione_sociale), sovrascrivibile col parametroname_tokens. Necessario perché il datawarehouse Chirone è in italiano e le colonnenome/cognome/denominazione/ragione_socialenon venivano riconosciute dalla sola parola inglesename.
- rimosso blocco di debug su colonna "doctype" in
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.