Files
ThothII/harness/tht/datamart.py
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

27 lines
1.0 KiB
Python

"""Fase 8 — generazione dbt del datamart (hook, non ancora implementato).
Punto d'innesto unico per la generazione del modello dbt da aggiungere al flusso
ETL di creazione dei datamart. La logica vera verra' sviluppata in seguito: per
ora qui vive solo la firma della funzione (il "hook") con le due varianti del
paziente.
"""
from pathlib import Path
# Le due varianti previste per il paziente nel datamart:
# - "clear": nome, cognome, ecc. in chiaro
# - "pseudonymized": nome, cognome, ecc. mascherati (pseudoanonimizzati)
DATAMART_MODES = ("clear", "pseudonymized")
def generate_dbt_datamart(session_dir: Path, mode: str) -> None:
"""Genera il modello dbt del datamart per la sessione (HOOK — stub).
`mode` sceglie la variante del paziente (vedi DATAMART_MODES). Non ancora
implementato: solleva NotImplementedError, intercettata dalla CLI che mostra
un messaggio pulito senza interrompere il workflow.
"""
raise NotImplementedError(
"Generazione dbt del datamart non ancora implementata"
)