chore: auto-commit (26 archivos)

- python/functions/bigquery/bq_auth.md
- python/functions/bigquery/bq_load_from_file.md
- python/functions/bigquery/bq_load_from_gcs.md
- python/functions/bigquery/client.py
- python/functions/bigquery/queries.py
- python/functions/datascience/__init__.py
- python/functions/datascience/decode_qr_image.py
- python/functions/datascience/load_bq_table_to_duckdb.md
- python/functions/datascience/load_bq_table_to_duckdb.py
- python/functions/pipelines/profile_bq_table.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 19:00:13 +02:00
parent 2ebc9efeb2
commit 5a4f82cf76
26 changed files with 2573 additions and 94 deletions
@@ -121,6 +121,7 @@ def profile_database(
write_report: bool = True,
min_inclusion: float = 0.9,
emit_pdf: bool = False,
run_llm: bool = False,
) -> dict:
"""Perfila una base DuckDB entera + sus relaciones inter-tabla.
@@ -141,6 +142,9 @@ def profile_database(
render_eda_pdf_relational (resumen de tablas + relaciones FK + join
graph) junto a los reports y devuelve su ruta en report_pdf_path. Con
False no se toca el PDF (retrocompatible) y report_pdf_path es None.
run_llm: si True (default False) activa la capa LLM interpretativa de
profile_table para CADA tabla (una llamada LLM por tabla sobre el
perfil agregado, nunca filas crudas).
Returns:
dict dict-no-throw. En exito:
@@ -177,7 +181,9 @@ def profile_database(
# 2) Perfilar cada tabla (tolerando fallos individuales).
for table in tables:
r = profile_table(db_path, table, sample=sample, write_report=False)
r = profile_table(
db_path, table, sample=sample, write_report=False, run_llm=run_llm
)
if r.get("status") == "ok":
prof = r["profile"]
table_profiles.append(prof)