5a4f82cf76
- 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>
2.9 KiB
2.9 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| bq_auth | function | py | infra | 1.1.0 | impure | def bq_auth(project_id: str = '', credentials_path: str = '', drop_quota_project: bool = False) -> BQClient | Autentica contra Google BigQuery con ADC o service account JSON. Retorna un BQClient listo para usar con todas las funciones CRUD. Con drop_quota_project=True descarta el quota project del ADC del usuario (creds.with_quota_project(None)) para evitar el 403 USER_PROJECT_DENIED cuando el ADC lleva un quota_project_id ajeno. |
|
false | error_go_core |
|
|
BQClient: cliente autenticado con proyecto resuelto | false | python/functions/bigquery/client.py |
Ejemplo
from bigquery import bq_auth
# ADC (gcloud auth application-default login)
client = bq_auth()
# Proyecto explicito
client = bq_auth("my-project-id")
# Service account
client = bq_auth(credentials_path="/path/to/service-account.json")
# Sin quota project (evita 403 USER_PROJECT_DENIED con ADC de usuario)
client = bq_auth("autingo-159109", drop_quota_project=True)
# Context manager
with bq_auth() as client:
# client se cierra automaticamente
pass
Notas
Modos de autenticacion:
- Sin argumentos: usa Application Default Credentials (ADC) — requiere
gcloud auth application-default login - Con project_id: usa ADC pero fuerza el proyecto
- Con credentials_path: lee el JSON de service account directamente
- Con drop_quota_project=True (y sin credentials_path): resuelve ADC via
google.auth.default(scopes=[".../bigquery"]), aplicacreds.with_quota_project(None)si el atributo existe y construye el cliente con ese creds. Es el fix del gotcha conocido: el ADC del usuario (egutierrez) llevaquota_project_id=autingoajeno y BigQuery devuelve403 USER_PROJECT_DENIED; descartar el quota project lo resuelve.
El BQClient wrappea google.cloud.bigquery.Client y expone _client para que las funciones del modulo lo usen internamente.
Capability growth log
- v1.1.0 (2026-07-02) — anade
drop_quota_projectpara descartar el quota project del ADC del usuario (creds.with_quota_project(None)) y evitar el 403 USER_PROJECT_DENIED. Default False = comportamiento identico al anterior.