Files
ThothII/harness/tht/vendor/VENDORED.md
T
marcopan ea6412fafc 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).
2026-06-27 10:34:23 +02:00

1.8 KiB

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.