Files
ThothII/harness/tht/vendor/VENDORED.md
T
marcopan 1b8a13b864 fix(harness): nsp residuo nei moduli Onda 0 (lshindex msg + VENDORED.md)
User review ha trovato 2 residui 'nsp' sfuggiti al renaming: erano nei moduli
portati in Onda 0 (DOPO l'Onda -1 che aveva pulito), in messaggi utente/docstring
non in import. L'import-smoke di Onda 0 non li catturava (verifica solo import, non
stringhe). Corretti a tht: 'tht lsh build' (lshindex:61), 'tht schema introspect'
(VENDORED.md:25).

Lesson: dopo ogni port di file sorgente, grep di nsp su quel file, non solo import-smoke.
Suite: 161 passed, zero residui nsp nel codice.
2026-06-27 13:59:51 +02:00

31 lines
1.8 KiB
Markdown

# 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 `tht 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.