"""Verificador de BDs de la demo (para usar desde el Space demo). Muestra qué ficheros .db existen en: - demo/data/db - demo/temp/db Se puede ejecutar como script independiente o invocado desde el código para dejar trazas en el log. """ from pathlib import Path import yaml # Este archivo vive en demo/scripts, así que la raíz de demo es el padre DEMO_ROOT = Path(__file__).resolve().parent.parent def read_data_origin() -> str: cfg_path = DEMO_ROOT / "config.yaml" if not cfg_path.exists(): return "(config.yaml no encontrado)" try: with cfg_path.open("r", encoding="utf-8") as f: cfg = yaml.safe_load(f) or {} app_cfg = cfg.get("app", {}) or {} return str(app_cfg.get("data_origin", "internal")).lower() except Exception as e: return f"(error leyendo config.yaml: {e})" def list_dbs(path: Path) -> list[str]: if not path.exists(): return [] return sorted(str(p.name) for p in path.glob("*.db")) def run_verification() -> None: """Ejecuta la verificación y escribe por stdout. Pensado para ser llamado desde ensure_temp_databases para dejar trazas en el log del Space demo. """ data_origin = read_data_origin() data_db_dir = DEMO_ROOT / "data" / "db" temp_db_dir = DEMO_ROOT / "temp" / "db" print("=== Verificación de BDs demo (invocada desde Space demo) ===") print(f"Raíz demo: {DEMO_ROOT}") print(f"data_origin: {data_origin}") print(f"data/db dir: {data_db_dir}") print(f"temp/db dir: {temp_db_dir}") print() data_dbs = list_dbs(data_db_dir) temp_dbs = list_dbs(temp_db_dir) print("-- demo/data/db --") if data_dbs: for name in data_dbs: print(f" - {name}") else: print(" (sin .db)") print() print("-- demo/temp/db --") if temp_dbs: for name in temp_dbs: print(f" - {name}") else: print(" (sin .db)") print() missing_in_temp = [n for n in data_dbs if n not in temp_dbs] if missing_in_temp: print("Ficheros presentes en data/db pero NO en temp/db:") for n in missing_in_temp: print(f" - {n}") else: print("Todos los .db de data/db están también en temp/db (o no hay .db)") def main() -> None: run_verification() if __name__ == "__main__": main()