fix(eda): bugs de bajo riesgo del benchmark (H1,H5,H12,H13,H14) + tests faltantes

- H1: render_eda_markdown ya no aplica doble x100 a outlier_pct (336% -> real)
- H5: profile_database filtra base_tables_only (excluye VIEWs; sakila 21->16)
- H12: suggest_reexpression salta columnas no-continuas
- H13: to_returns/profile_table elige retornos (financiera) vs diferencias (fisica)
- H14: test de regresion ATTACH sqlite via information_schema
- +8 tests de las funciones eda nuevas (acf_pacf, adf_kpss, ...). 77 tests verdes
- L/M (H2,H3,H4,H6,H7,H8,H9,H10,H11) quedan en issues 0174-0177 para revision

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Egutierrez
2026-06-29 03:51:11 +02:00
parent 7ac69ab4fb
commit caf8c25d99
17 changed files with 1145 additions and 31 deletions
@@ -151,9 +151,11 @@ def profile_database(
}
"""
try:
# 1) Resolver lista de tablas.
# 1) Resolver lista de tablas. Solo BASE TABLE: las VIEWs no son tablas
# reales — perfilarlas infla n_tables y multiplica las FK falsas (sus
# columnas son copias de las de las tablas base, con contención perfecta).
if tables is None:
lst = duckdb_list_tables(db_path)
lst = duckdb_list_tables(db_path, base_tables_only=True)
if lst.get("status") != "ok":
return {"status": "error", "error": lst.get("error", "list failed")}
tables = lst.get("tables", [])