chore: auto-commit (799 archivos)
- .claude/CLAUDE.md - .claude/commands/subagentes.md - .claude/rules/INDEX.md - .mcp.json - bash/functions/cybersecurity/analyze_dns.md - bash/functions/cybersecurity/audit_http_headers.md - bash/functions/cybersecurity/audit_ssh_config.md - bash/functions/cybersecurity/check_firewall.md - bash/functions/cybersecurity/detect_suspicious_users.md - bash/functions/cybersecurity/encrypt_file.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_auth(project_id: str = '', credentials_path: str = '') -> BQClient"
|
||||
description: "Autentica contra Google BigQuery con ADC o service account JSON. Retorna un BQClient listo para usar con todas las funciones CRUD."
|
||||
tags: [bigquery, gcp, auth, google-cloud, python]
|
||||
tags: [bigquery, gcp, auth, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_cancel_job(client: BQClient, job_id: str) -> dict"
|
||||
description: "Cancela un job en ejecucion. Retorna el estado tras la cancelacion."
|
||||
tags: [bigquery, gcp, job, cancel, google-cloud, python]
|
||||
tags: [bigquery, gcp, job, cancel, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_copy_table(client: BQClient, source_dataset: str, source_table: str, dest_dataset: str, dest_table: str, write_disposition: str = 'WRITE_EMPTY') -> dict"
|
||||
description: "Copia una tabla BigQuery a otro dataset o tabla dentro del mismo proyecto usando copy_table del SDK. Espera la finalizacion del CopyJob."
|
||||
tags: [bigquery, gcp, copy, table, google-cloud, python]
|
||||
tags: [bigquery, gcp, copy, table, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_create_dataset(client: BQClient, dataset_id: str, location: str = 'US', description: str = '', labels: dict[str, str] | None = None, default_table_expiration_ms: int = 0) -> dict"
|
||||
description: "Crea un dataset en Google BigQuery con ubicacion, descripcion y labels. Usa client._client.create_dataset() del SDK oficial."
|
||||
tags: [bigquery, gcp, dataset, create, google-cloud, python]
|
||||
tags: [bigquery, gcp, dataset, create, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_create_routine(client: BQClient, dataset_id: str, routine_id: str, body: str, routine_type: str = 'SCALAR_FUNCTION', language: str = 'SQL', arguments: list[dict] | None = None, return_type: str = '', description: str = '') -> dict"
|
||||
description: "Crea una routine (UDF scalar, tabla o stored procedure) en BigQuery. Soporta SQL, JavaScript y Python."
|
||||
tags: [bigquery, gcp, routine, udf, create, google-cloud, python]
|
||||
tags: [bigquery, gcp, routine, udf, create, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_create_table(client: BQClient, dataset_id: str, table_id: str, schema: list[dict], partitioning: dict | None = None, clustering: list[str] | None = None, description: str = '', labels: dict | None = None) -> dict"
|
||||
description: "Crea una tabla en BigQuery con schema, particionamiento opcional y clustering. Usa client._client.create_table() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, create, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, create, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_delete_dataset(client: BQClient, dataset_id: str, delete_contents: bool = False) -> None"
|
||||
description: "Elimina un dataset de Google BigQuery. IRREVERSIBLE. Usa client._client.delete_dataset() del SDK oficial."
|
||||
tags: [bigquery, gcp, dataset, delete, google-cloud, python]
|
||||
tags: [bigquery, gcp, dataset, delete, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_delete_routine(client: BQClient, dataset_id: str, routine_id: str) -> None"
|
||||
description: "Elimina una routine de un dataset."
|
||||
tags: [bigquery, gcp, routine, udf, delete, google-cloud, python]
|
||||
tags: [bigquery, gcp, routine, udf, delete, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_delete_table(client: BQClient, dataset_id: str, table_id: str) -> None"
|
||||
description: "Elimina permanentemente una tabla de BigQuery. IRREVERSIBLE. Usa client._client.delete_table() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, delete, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, delete, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_export_to_gcs(client: BQClient, dataset_id: str, table_id: str, destination_uri: str, destination_format: str = 'CSV', compression: str = 'NONE') -> dict"
|
||||
description: "Exporta una tabla BigQuery a Google Cloud Storage usando extract_table del SDK. Soporta CSV, JSON, Avro y Parquet con compresion opcional."
|
||||
tags: [bigquery, gcp, export, gcs, google-cloud, python, etl]
|
||||
tags: [bigquery, gcp, export, gcs, google-cloud, python, etl, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_get_dataset(client: BQClient, dataset_id: str) -> dict"
|
||||
description: "Obtiene los detalles completos de un dataset de Google BigQuery. Usa client._client.get_dataset() del SDK oficial."
|
||||
tags: [bigquery, gcp, dataset, get, google-cloud, python]
|
||||
tags: [bigquery, gcp, dataset, get, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_get_job(client: BQClient, job_id: str) -> dict"
|
||||
description: "Obtiene detalles completos de un job por su ID incluyendo estado, bytes procesados y errores. Incluye campos adicionales respecto a bq_list_jobs: destination_table, query y lista de errores."
|
||||
tags: [bigquery, gcp, job, get, google-cloud, python]
|
||||
tags: [bigquery, gcp, job, get, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_get_table(client: BQClient, dataset_id: str, table_id: str) -> dict"
|
||||
description: "Obtiene los metadatos completos de una tabla BigQuery incluyendo schema, estadisticas y configuracion. Usa client._client.get_table() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, get, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, get, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_insert_rows(client: BQClient, dataset_id: str, table_id: str, rows: list[dict]) -> dict"
|
||||
description: "Inserta filas en una tabla BigQuery usando streaming insert (insert_rows_json). Retorna el conteo de filas insertadas y errores por fila."
|
||||
tags: [bigquery, gcp, insert, streaming, google-cloud, python]
|
||||
tags: [bigquery, gcp, insert, streaming, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_list_datasets(client: BQClient) -> list[dict]"
|
||||
description: "Lista todos los datasets del proyecto de Google BigQuery. Usa client._client.list_datasets() del SDK oficial."
|
||||
tags: [bigquery, gcp, dataset, list, google-cloud, python]
|
||||
tags: [bigquery, gcp, dataset, list, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_list_jobs(client: BQClient, state_filter: str = '', max_results: int = 50, all_users: bool = False) -> list[dict]"
|
||||
description: "Lista jobs del proyecto con filtro por estado (running, pending, done). Retorna una lista de dicts planos con metadatos de cada job."
|
||||
tags: [bigquery, gcp, job, list, google-cloud, python]
|
||||
tags: [bigquery, gcp, job, list, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_list_routines(client: BQClient, dataset_id: str) -> list[dict]"
|
||||
description: "Lista routines de un dataset incluyendo tipo y lenguaje."
|
||||
tags: [bigquery, gcp, routine, udf, list, google-cloud, python]
|
||||
tags: [bigquery, gcp, routine, udf, list, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_list_tables(client: BQClient, dataset_id: str) -> list[dict]"
|
||||
description: "Lista todas las tablas (y vistas) de un dataset BigQuery con informacion resumida. Usa client._client.list_tables() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, list, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, list, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_load_from_file(client: BQClient, file_path: str, dataset_id: str, table_id: str, source_format: str = 'CSV', write_disposition: str = 'WRITE_APPEND', autodetect: bool = True, skip_leading_rows: int = 0) -> dict"
|
||||
description: "Carga datos desde un archivo local a una tabla BigQuery usando load_table_from_file del SDK. Equivalente a bq_load_from_gcs pero para disco local."
|
||||
tags: [bigquery, gcp, load, file, google-cloud, python, etl]
|
||||
tags: [bigquery, gcp, load, file, google-cloud, python, etl, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_load_from_gcs(client: BQClient, uri: str | list[str], dataset_id: str, table_id: str, source_format: str = 'CSV', write_disposition: str = 'WRITE_APPEND', autodetect: bool = True, skip_leading_rows: int = 0) -> dict"
|
||||
description: "Carga datos desde uno o varios URIs de Google Cloud Storage a una tabla BigQuery configurando un LoadJob. Espera la finalizacion del job."
|
||||
tags: [bigquery, gcp, load, gcs, google-cloud, python, etl]
|
||||
tags: [bigquery, gcp, load, gcs, google-cloud, python, etl, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_preview_rows(client: BQClient, dataset_id: str, table_id: str, max_results: int = 10) -> dict"
|
||||
description: "Obtiene una muestra de filas de una tabla BigQuery sin ejecutar query SQL, sin coste de procesamiento. Usa client._client.list_rows() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, preview, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, preview, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_query(client: BQClient, sql: str, params: list[dict] | None = None, dry_run: bool = False) -> dict"
|
||||
description: "Ejecuta una query SQL en BigQuery con soporte para parametros tipados y modo dry-run para estimacion de costos."
|
||||
tags: [bigquery, gcp, query, sql, google-cloud, python]
|
||||
tags: [bigquery, gcp, query, sql, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_update_dataset(client: BQClient, dataset_id: str, description: str | None = None, labels: dict[str, str] | None = None, default_table_expiration_ms: int | None = None) -> dict"
|
||||
description: "Actualiza campos de un dataset de Google BigQuery. Solo modifica los campos pasados explicitamente (no-None). Usa client._client.update_dataset() del SDK oficial."
|
||||
tags: [bigquery, gcp, dataset, update, google-cloud, python]
|
||||
tags: [bigquery, gcp, dataset, update, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def bq_update_table(client: BQClient, dataset_id: str, table_id: str, schema: list[dict] | None = None, description: str | None = None, labels: dict | None = None) -> dict"
|
||||
description: "Actualiza metadatos de una tabla BigQuery: schema (solo adicion de columnas), descripcion y etiquetas. Usa client._client.update_table() del SDK oficial."
|
||||
tags: [bigquery, gcp, table, update, google-cloud, python]
|
||||
tags: [bigquery, gcp, table, update, google-cloud, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def all_of(xs: list, pred: callable) -> bool"
|
||||
description: "Retorna True si todos los elementos de la lista cumplen el predicado."
|
||||
tags: [list, functional, predicate, all, python]
|
||||
tags: [list, functional, predicate, all, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def any_of(xs: list, pred: callable) -> bool"
|
||||
description: "Retorna True si al menos un elemento de la lista cumple el predicado."
|
||||
tags: [list, functional, predicate, any, python]
|
||||
tags: [list, functional, predicate, any, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def build_guide_prompt(location: dict, pois: list[dict], interests: list[dict], user_query: str = \"\", lang: str = \"es\") -> list[dict]"
|
||||
description: "Construye un prompt contextual para el LLM combinando ubicación actual, POIs cercanos rankeados e intereses del usuario. Retorna mensajes en formato OpenAI/Ollama."
|
||||
tags: [prompt, llm, guide, location, pois, interests, openai, ollama, context]
|
||||
tags: [prompt, llm, guide, location, pois, interests, openai, ollama, context, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def build_tree_from_headers(node_list: list[dict]) -> list[dict]"
|
||||
description: "Construye arbol jerarquico anidado desde lista plana de headers markdown con niveles (h1>h2>h3)."
|
||||
tags: [tree, markdown, headers, hierarchy]
|
||||
tags: [tree, markdown, headers, hierarchy, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def cache_decorator(store: Any, ttl: float = 0, key_fn: callable | None = None)"
|
||||
description: "Decorator que cachea el resultado de una funcion en cualquier store persistente compatible (CacheStore o FileCache). La key se genera hasheando (func.__name__, args, sorted(kwargs)) con SHA-256. Soporta funciones sincronas y asincronas."
|
||||
tags: [cache, decorator, memoize, persistence, async, functional]
|
||||
tags: [cache, decorator, memoize, persistence, async, functional, pendiente-usar]
|
||||
uses_functions: ["cache_to_sqlite_py_infra", "cache_to_file_py_infra"]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "calculate_media_strategy(image_count: int, line_count: int) -> str"
|
||||
description: "Determina la estrategia optima de procesamiento de medios para un documento basado en la proporcion de imagenes vs texto. Retorna full_page_vlm, extract o text_only."
|
||||
tags: [media, strategy, document, vision, vlm, images, classification]
|
||||
tags: [media, strategy, document, vision, vlm, images, classification, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def calculate_page_offset(pairs: list[dict]) -> int"
|
||||
description: "Calcula offset entre numeros de pagina logicos y fisicos usando pares de referencia (moda de diferencias)."
|
||||
tags: [pagination, offset, calculation]
|
||||
tags: [pagination, offset, calculation, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def call_batch_with_retry(items: list[T], process_func: Callable[[T], R], max_retries: int = 3, initial_delay: float = 1.0, max_delay: float = 30.0, backoff_factor: float = 2.0, exceptions: tuple[type[Exception], ...] = (Exception,), continue_on_failure: bool = True) -> tuple[list[R], list[dict]]"
|
||||
description: "Procesa una lista de items con retry individual por item y exponential backoff. Los fallos individuales no bloquean el resto del batch. Retorna (results, failures) donde failures contiene index, item y error de cada item que agoto sus reintentos."
|
||||
tags: [retry, batch, backoff, resilience, error-handling, core]
|
||||
tags: [retry, batch, backoff, resilience, error-handling, core, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def chunk(xs: list, size: int) -> list"
|
||||
description: "Divide una lista en sublistas de tamanio fijo. El ultimo chunk puede ser menor."
|
||||
tags: [list, functional, chunk, partition, python]
|
||||
tags: [list, functional, chunk, partition, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "class CircuitBreaker:\n def __init__(self, failure_threshold: int = 5, reset_timeout: float = 300.0): ...\n def check(self) -> None: ...\n def record_success(self) -> None: ...\n def record_failure(self, error: Exception) -> None: ...\n @property\n def retry_after(self) -> float: ..."
|
||||
description: "Patron circuit breaker thread-safe para proteger llamadas a APIs externas. Tres estados: CLOSED (normal), OPEN (bloqueando), HALF_OPEN (permitiendo 1 request de prueba). Integra con classify_api_error para distinguir errores permanentes de transitorios."
|
||||
tags: [circuit-breaker, resilience, api, retry, error-handling, thread-safe]
|
||||
tags: [circuit-breaker, resilience, api, retry, error-handling, thread-safe, pendiente-usar]
|
||||
uses_functions: [classify_api_error_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def clean_pdf_text(text: str) -> str"
|
||||
description: "Limpieza de artefactos PyPDF2/pdfplumber: elimina marcas de pagina (1/20), tabs, guiones de dehyphenation, saltos de linea en medio de oraciones y espacios duplicados."
|
||||
tags: [pdf, text, cleaning, nlp, preprocessing, pypdf2]
|
||||
tags: [pdf, text, cleaning, nlp, preprocessing, pypdf2, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def coerce_types(data: dict, schema: dict[str, str]) -> tuple[dict, list[str]]"
|
||||
description: "Convierte valores de un dict a los tipos esperados segun un schema declarativo. Soporta int, float, str, bool, datetime, list[str]. Util para normalizar datos de CSV, JSON o query params. Nunca muta el original. Coerciones imposibles generan warning y mantienen el valor original."
|
||||
tags: [coercion, types, normalization, pure, core, csv, json]
|
||||
tags: [coercion, types, normalization, pure, core, csv, json, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def compose(*fns) -> callable"
|
||||
description: "Compone funciones de derecha a izquierda. compose(f, g)(x) == f(g(x))."
|
||||
tags: [functional, compose, composition, python]
|
||||
tags: [functional, compose, composition, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "convert_github_to_raw_url(url: str) -> str"
|
||||
description: "Convierte una URL de blob de GitHub/GitLab a su URL raw. Ej: github.com/org/repo/blob/main/file.py → raw.githubusercontent.com/org/repo/main/file.py. Retorna la URL sin cambios si no aplica."
|
||||
tags: [github, gitlab, url, raw, blob, convert, transform]
|
||||
tags: [github, gitlab, url, raw, blob, convert, transform, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def create_node_mapping(tree: list[dict]) -> dict[str, dict]"
|
||||
description: "Crea dict plano node_id->node para lookup O(1) en un arbol jerarquico."
|
||||
tags: [tree, mapping, index, lookup]
|
||||
tags: [tree, mapping, index, lookup, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "csv_to_parquet_duckdb(csv_path: str | Path, parquet_path: str | Path, column_casts: dict[str, str] | None = None, overwrite: bool = False) -> bool"
|
||||
description: "Convierte un CSV a Parquet usando DuckDB read_csv_auto. Si overwrite=False y el parquet ya existe no hace nada. column_casts permite sobreescribir tipos inferidos por columna. Retorna True si escribió."
|
||||
tags: [csv, parquet, duckdb, etl, core]
|
||||
tags: [csv, parquet, duckdb, etl, core, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def cursor_paginate(fetch_page: Callable[..., list[T]], get_cursor: Callable[[T], str | None], page_size: int = 100, max_items: int = 2000, max_retries: int = 3, retry_delay: float = 2.0, retryable_exceptions: tuple[type[Exception], ...] = (ConnectionError, TimeoutError, OSError)) -> list[T]"
|
||||
description: "Paginador generico basado en cursor que funciona con cualquier API que use cursor-based pagination. Cada pagina se obtiene con retry automatico con exponential backoff. Se detiene cuando la pagina esta vacia, el batch es menor que page_size, se alcanza max_items, o el cursor del ultimo item es None."
|
||||
tags: [pagination, cursor, retry, generic, api, backoff]
|
||||
tags: [pagination, cursor, retry, generic, api, backoff, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "docx_to_markdown(docx_path: str) -> str"
|
||||
description: "Convierte un documento Word (.docx) a markdown preservando estructura (headings), formato inline (bold, italic, underline) y tablas en su posicion original."
|
||||
tags: [docx, markdown, word, conversion, document, parsing, text]
|
||||
tags: [docx, markdown, word, conversion, document, parsing, text, pendiente-usar]
|
||||
uses_functions: [format_table_to_markdown_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def drop(xs: list, n: int) -> list"
|
||||
description: "Descarta los primeros n elementos de una lista."
|
||||
tags: [list, functional, drop, slice, python]
|
||||
tags: [list, functional, drop, slice, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def epub_to_markdown(epub_path: str) -> str"
|
||||
description: "Convierte un ebook EPUB a markdown. Intenta ebooklib primero para extraccion estructurada (titulo, autor, documentos); fallback a extraccion manual con zipfile si ebooklib no esta instalado."
|
||||
tags: [epub, markdown, ebook, parsing, conversion, html, text-extraction]
|
||||
tags: [epub, markdown, ebook, parsing, conversion, html, text-extraction, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "excel_to_markdown(path: str, max_rows_per_sheet: int = 1000) -> str"
|
||||
description: "Convierte un archivo Excel (.xlsx, .xls, .xlsm) a markdown con cada sheet como seccion H2. Soporta tipos de celda: fechas ISO, booleanos, errores Excel, numeros enteros y flotantes. Trunca sheets que superen max_rows_per_sheet."
|
||||
tags: [excel, markdown, xlsx, xls, conversion, parser, io]
|
||||
tags: [excel, markdown, xlsx, xls, conversion, parser, io, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def extract_frontmatter(content: str) -> tuple[str, dict | None]"
|
||||
description: "Extrae YAML frontmatter (delimitado por ---) del inicio de un string markdown. Retorna el contenido sin frontmatter y el dict parseado (o None si no hay)."
|
||||
tags: [markdown, frontmatter, yaml, parsing]
|
||||
tags: [markdown, frontmatter, yaml, parsing, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def extract_json_from_llm(content: str) -> dict"
|
||||
description: "Extrae y parsea JSON de respuestas LLM. Maneja bloques ```json, trailing commas, None->null."
|
||||
tags: [json, llm, parsing, extraction]
|
||||
tags: [json, llm, parsing, extraction, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def extract_markdown_headers(markdown_content: str) -> tuple[list[dict], list[str]]"
|
||||
description: "Extrae todos los headers (h1-h6) de markdown con nivel y numero de linea, ignorando code blocks."
|
||||
tags: [markdown, parsing, headers, extraction]
|
||||
tags: [markdown, parsing, headers, extraction, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def extract_pdf_text(pdf_path: str) -> str"
|
||||
description: "Extrae todo el texto de un PDF concatenando todas las paginas. Usa PyPDF2."
|
||||
tags: [pdf, text, extraction, parsing]
|
||||
tags: [pdf, text, extraction, parsing, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "fetch_and_parse_url(url: str, timeout: float = 30.0) -> str"
|
||||
description: "Descarga una pagina web y la convierte a markdown. Combina detect_url_type + fetch HTML + html_to_markdown en una sola operacion."
|
||||
tags: [http, fetch, html, markdown, parse, url, scraping]
|
||||
tags: [http, fetch, html, markdown, parse, url, scraping, pendiente-usar]
|
||||
uses_functions:
|
||||
- detect_url_type_py_core
|
||||
- html_to_markdown_py_core
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def filter_list(xs: list, pred: callable) -> list"
|
||||
description: "Filtra una lista aplicando un predicado sin mutar la original."
|
||||
tags: [list, functional, filter, python]
|
||||
tags: [list, functional, filter, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def find(xs: list, pred: callable)"
|
||||
description: "Encuentra el primer elemento que cumple el predicado. Retorna None si no hay coincidencia."
|
||||
tags: [list, functional, find, search, python]
|
||||
tags: [list, functional, find, search, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def find_headings(content: str) -> list[tuple[int, int, str, int]]"
|
||||
description: "Encuentra todos los headings markdown (# a ######), excluyendo los que estan dentro de code blocks, HTML comments y bloques indentados. Retorna lista de (start_pos, end_pos, title, level)."
|
||||
tags: [markdown, headings, parsing, extraction]
|
||||
tags: [markdown, headings, parsing, extraction, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def find_index(xs: list, pred: callable) -> int"
|
||||
description: "Encuentra el indice del primer elemento que cumple el predicado. Retorna -1 si no hay coincidencia."
|
||||
tags: [list, functional, find, index, search, python]
|
||||
tags: [list, functional, find, index, search, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def flat_map(xs: list, fn: callable) -> list"
|
||||
description: "Aplica una funcion que retorna listas a cada elemento y aplana el resultado un nivel."
|
||||
tags: [list, functional, flatmap, python]
|
||||
tags: [list, functional, flatmap, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def flatten(xss: list) -> list"
|
||||
description: "Aplana una lista de listas un nivel, concatenando las sublistas."
|
||||
tags: [list, functional, flatten, python]
|
||||
tags: [list, functional, flatten, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def flatten_tree(structure: Any) -> list[dict]"
|
||||
description: "Aplana un arbol jerarquico (dict con 'nodes') a lista plana sin hijos. Deep copy de cada nodo."
|
||||
tags: [tree, flatten, hierarchy, functional]
|
||||
tags: [tree, flatten, hierarchy, functional, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "format_iso8601(dt: datetime) -> str"
|
||||
description: "Formatea un datetime a ISO 8601 UTC con milisegundos. Formato: yyyy-MM-ddTHH:mm:ss.SSSZ. Si naive asume UTC, si aware convierte a UTC."
|
||||
tags: [datetime, iso8601, format, time, utc]
|
||||
tags: [datetime, iso8601, format, time, utc, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "format_simplified(dt: datetime, now: datetime) -> str"
|
||||
description: "Formato humano simplificado: si dt es del mismo dia que now muestra HH:MM:SS, si no muestra YYYY-MM-DD."
|
||||
tags: [datetime, format, time, human, display]
|
||||
tags: [datetime, format, time, human, display, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def format_tree_structure(structure: Any, order: list[str] = None) -> Any"
|
||||
description: "Reordena campos de cada nodo de un arbol segun orden de claves especificado."
|
||||
tags: [tree, format, order, structure]
|
||||
tags: [tree, format, order, structure, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "from_csv(text: str, delimiter: str = ',', has_header: bool = True) -> list[dict]"
|
||||
description: "Parser CSV a datos tabulares. Complemento de to_csv. Soporta campos entre comillas con escaping RFC 4180. Si has_header=False, genera keys col_0, col_1, etc."
|
||||
tags: [csv, parser, import, tabular, format]
|
||||
tags: [csv, parser, import, tabular, format, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "from_jsonl(text: str) -> list[dict]"
|
||||
description: "Parser JSONL a lista de dicts. Ignora lineas vacias. Lanza ValueError con el numero de linea si una linea contiene JSON invalido. Complemento de to_jsonl."
|
||||
tags: [jsonl, json, parser, import, streaming, format]
|
||||
tags: [jsonl, json, parser, import, streaming, format, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "generate_html_report(title: str, sections: list[dict]) -> str"
|
||||
description: "Genera un reporte HTML autocontenido con CSS inline. Soporta secciones de tipo table (list[dict]), text (str con markdown basico), kpi (cards con label/value/delta) y list (list[str]). Para exportar resultados de pipelines sin servidor."
|
||||
tags: [html, report, export, table, kpi, template, format]
|
||||
tags: [html, report, export, table, kpi, template, format, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def generate_pwa_manifest(name: str, short_name: str, description: str = \"\", start_url: str = \"/\", display: str = \"standalone\", orientation: str = \"portrait\", theme_color: str = \"#000000\", background_color: str = \"#000000\", icons: list[dict] | None = None, categories: list[str] | None = None, lang: str = \"es\") -> dict"
|
||||
description: "Genera el contenido de un manifest.json para Progressive Web Apps segun el estandar W3C Web App Manifest. Retorna un dict listo para json.dumps(). Si icons es None genera placeholders estandar para 192x192 y 512x512."
|
||||
tags: [pwa, manifest, web, json, frontend]
|
||||
tags: [pwa, manifest, web, json, frontend, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def generate_service_worker(cache_name: str = 'app-cache-v1', precache_urls: list[str] | None = None, network_first_patterns: list[str] | None = None) -> str"
|
||||
description: "Genera el codigo JavaScript de un Service Worker basico para PWAs con estrategia cache-first para assets estaticos y network-first para API calls."
|
||||
tags: [pwa, service-worker, javascript, cache, offline, codegen]
|
||||
tags: [pwa, service-worker, javascript, cache, offline, codegen, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def get_leaf_nodes(structure: Any) -> list[dict]"
|
||||
description: "Extrae solo nodos hoja (sin hijos) de un arbol jerarquico. Deep copy de cada nodo."
|
||||
tags: [tree, leaf, hierarchy, functional]
|
||||
tags: [tree, leaf, hierarchy, functional, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def get_pdf_page_tokens(pdf_path, model: str = None, pdf_parser: str = 'PyPDF2') -> list[tuple[str, int]]"
|
||||
description: "Extrae texto y cuenta tokens por pagina de un PDF. Soporta PyPDF2 y PyMuPDF como backends."
|
||||
tags: [pdf, tokens, extraction, litellm, parsing]
|
||||
tags: [pdf, tokens, extraction, litellm, parsing, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def get_text_stats(text: str) -> dict"
|
||||
description: "Estadisticas basicas de un texto: total de caracteres, lineas y palabras."
|
||||
tags: [text, statistics, stats, characters, words, lines]
|
||||
tags: [text, statistics, stats, characters, words, lines, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def group_by(xs: list, key_fn: callable) -> dict"
|
||||
description: "Agrupa elementos de una lista por una funcion clave. Retorna dict de clave a lista."
|
||||
tags: [list, functional, group, classify, python]
|
||||
tags: [list, functional, group, classify, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -8,7 +8,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def infer_provincia_from_cp(rows: list[dict], cp_col: str = \"codigo_postal\", prov_col: str = \"provincia\") -> list[str | None]"
|
||||
description: "Infiere la provincia correcta de cada fila basandose en el CP dominante por provincia. Calcula top-2 prefijos de CP por provincia; si el CP de la fila pertenece a ese top-2 usa el real, si no usa el dominante. Stdlib puro, sin pandas."
|
||||
tags: [string, normalization, spain, geography, postal-code, inference]
|
||||
tags: [string, normalization, spain, geography, postal-code, inference, pendiente-usar]
|
||||
uses_functions: [cp_provincia_es_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def is_git_repo_url(url: str, known_hosts: list[str] | None = None) -> bool"
|
||||
description: "Verifica si una URL apunta a un repositorio git clonable. Acepta org/repo y org/repo/tree/<ref>. Rechaza issues, blobs, PRs y otros sub-recursos."
|
||||
tags: [git, url, validation, github, gitlab, repository]
|
||||
tags: [git, url, validation, github, gitlab, repository, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def join_by_key(left: list[dict], right: list[dict], key: str, how: str = 'inner') -> list[dict]"
|
||||
description: "Join de dos listas de dicts por una clave comun. Soporta inner, left, right y outer. Campos duplicados del right se sufijan con _right. Algoritmo O(n+m)."
|
||||
tags: [tabular, join, merge, python, core]
|
||||
tags: [tabular, join, merge, python, core, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def list_to_tree(data: list[dict]) -> list[dict]"
|
||||
description: "Convierte lista plana con codigos de estructura ('1.2.3') a arbol jerarquico anidado."
|
||||
tags: [tree, hierarchy, structure, conversion]
|
||||
tags: [tree, hierarchy, structure, conversion, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "async def llm_acompletion_retry(model: str, prompt: str, max_retries: int = 10, temperature: float = 0) -> str"
|
||||
description: "Completion LLM asincrono con retry automatico. Soporte multi-modelo via litellm (OpenAI, Anthropic, etc.)."
|
||||
tags: [llm, completion, retry, async, litellm, api]
|
||||
tags: [llm, completion, retry, async, litellm, api, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def llm_completion_retry(model: str, prompt: str, chat_history: list = None, return_finish_reason: bool = False, max_retries: int = 10, temperature: float = 0) -> str"
|
||||
description: "Completion LLM sincrono con retry automatico (max 10). Soporte multi-modelo via litellm (OpenAI, Anthropic, etc.)."
|
||||
tags: [llm, completion, retry, litellm, api]
|
||||
tags: [llm, completion, retry, litellm, api, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def load_translations(locales_dir: str) -> dict[str, dict]"
|
||||
description: "Carga todos los archivos JSON de un directorio de locales. Cada archivo {locale}.json se indexa por nombre sin extension. Retorna {} si el directorio no existe o esta vacio."
|
||||
tags: [i18n, translation, locale, json, files]
|
||||
tags: [i18n, translation, locale, json, files, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def map_list(xs: list, fn: callable) -> list"
|
||||
description: "Aplica una funcion a cada elemento de una lista, retornando una nueva lista."
|
||||
tags: [list, functional, map, python]
|
||||
tags: [list, functional, map, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def match_pois_to_interests(pois: list[dict], interests: list[dict], max_results: int = 10) -> list[dict]"
|
||||
description: "Filtra y rankea una lista de POIs segun un perfil de intereses del usuario. Calcula un score por categoria (0.5), nombre (0.3) y tags (0.2), multiplicado por el weight del interes. Retorna los top max_results POIs con score > 0, enriquecidos con score y matched_interests."
|
||||
tags: [poi, ranking, filtering, interests, geospatial, recommendation, pure]
|
||||
tags: [poi, ranking, filtering, interests, geospatial, recommendation, pure, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "next_cron_time(schedule: dict, after: datetime) -> datetime | None"
|
||||
description: "Calcula la proxima ejecucion de un cron schedule despues de un tiempo dado. Avanza minuto a minuto saltando campos no coincidentes. Retorna None si no hay match en 366 dias (schedule imposible)."
|
||||
tags: [cron, scheduling, time, next, pure]
|
||||
tags: [cron, scheduling, time, next, pure, pendiente-usar]
|
||||
uses_functions: [parse_cron_expr_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -8,7 +8,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def normalize_for_join(values: Iterable) -> list[str]"
|
||||
description: "Normaliza strings para fuzzy joins: upper + strip diacriticos NFD + elimina non [A-Z0-9 ] + colapsa espacios. Trabaja con cualquier iterable. None/NaN -> cadena vacia."
|
||||
tags: [string, normalization, join, fuzzy, spain]
|
||||
tags: [string, normalization, join, fuzzy, spain, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def page_list_to_groups(page_contents: list[str], token_lengths: list[int], max_tokens: int = 20000, overlap_pages: int = 1) -> list[str]"
|
||||
description: "Agrupa paginas en chunks de texto respetando limite de tokens con overlap configurable entre grupos."
|
||||
tags: [chunking, tokens, pagination, grouping]
|
||||
tags: [chunking, tokens, pagination, grouping, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def parse_code_ast(source_code: str, language: str) -> list[CodeEntity]"
|
||||
description: "Extrae entidades de codigo (funciones, clases, metodos, tipos, interfaces, structs, traits) de codigo fuente usando tree-sitter. Soporta Python, JavaScript, TypeScript, Go, Rust, Java y C++. Opera sobre strings: no accede al disco."
|
||||
tags: [ast, parsing, tree-sitter, code, symbol, extraction, analysis, multi-language]
|
||||
tags: [ast, parsing, tree-sitter, code, symbol, extraction, analysis, multi-language, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: [code_entity_py_core]
|
||||
returns: [code_entity_py_core]
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def parse_git_url(url: str, known_hosts: list[str] | None = None) -> str | None"
|
||||
description: "Parsea una URL de code hosting (GitHub, GitLab, etc.) y retorna el path org/repo. Soporta HTTPS, HTTP, SSH (git@), git:// y ssh://."
|
||||
tags: [git, url, parsing, github, gitlab, repository]
|
||||
tags: [git, url, parsing, github, gitlab, repository, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "parse_iso_datetime(value: str) -> datetime"
|
||||
description: "Parsea un datetime ISO 8601 tolerando fracciones de segundo con mas de 6 digitos. Windows produce timestamps como 2026-02-21T13:20:23.1470042+08:00 donde la fraccion excede los 6 digitos que acepta datetime.fromisoformat."
|
||||
tags: [datetime, iso8601, parse, time, windows]
|
||||
tags: [datetime, iso8601, parse, time, windows, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def parse_llm_json(response: str) -> dict"
|
||||
description: "Parsea una respuesta LLM como JSON, limpiando primero think tags y markdown codeblocks. Combina strip_think_tags + strip_markdown_codeblock + json.loads."
|
||||
tags: [llm, json, parsing, cleaning, think, codeblock]
|
||||
tags: [llm, json, parsing, cleaning, think, codeblock, pendiente-usar]
|
||||
uses_functions: [strip_think_tags_py_core, strip_markdown_codeblock_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def parse_page_range(pages: str) -> list[int]"
|
||||
description: "Parsea string de rangos de paginas ('5-7', '3,8', '12') a lista de enteros ordenada y sin duplicados."
|
||||
tags: [parsing, range, pages, string]
|
||||
tags: [parsing, range, pages, string, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "class ParserRegistry: register(name: str, parser: BaseParser) -> None; unregister(name: str) -> None; get_parser(name: str) -> BaseParser | None; get_parser_for_file(path: str) -> BaseParser | None; async parse(source: str, **kwargs) -> ParseResult; list_parsers() -> list[str]; list_supported_extensions() -> list[str]"
|
||||
description: "Registry extensible que despacha parsing de archivos al parser correcto basado en extension. Patron plugin: registrar parsers por nombre y extensiones, resolver automaticamente. Mantiene estado mutable (mapa extension→parser). Singleton global disponible via get_registry()."
|
||||
tags: [parser, registry, plugin, extensible, dispatch, pattern, singleton]
|
||||
tags: [parser, registry, plugin, extensible, dispatch, pattern, singleton, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: [base_parser_py_core, parse_result_py_core]
|
||||
returns: [parse_result_py_core]
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def partition(xs: list, pred: callable) -> tuple"
|
||||
description: "Divide una lista en dos: (elementos que cumplen el predicado, elementos que no)."
|
||||
tags: [list, functional, partition, split, python]
|
||||
tags: [list, functional, partition, split, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def pdf_to_markdown(pdf_path: str, heading_detection: str = 'auto') -> tuple[str, dict]"
|
||||
description: "Convierte un PDF a markdown. Extrae texto, tablas e inyecta headings detectados desde bookmarks o analisis de fuentes. Retorna (markdown_content, metadata_dict)."
|
||||
tags: [pdf, markdown, conversion, headings, tables, pdfplumber, parsing]
|
||||
tags: [pdf, markdown, conversion, headings, tables, pdfplumber, parsing, pendiente-usar]
|
||||
uses_functions: [extract_pdf_bookmarks_py_core, detect_headings_by_font_py_core, format_table_to_markdown_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def pipe(value, *fns)"
|
||||
description: "Pasa un valor a traves de una secuencia de funciones de izquierda a derecha."
|
||||
tags: [functional, pipe, composition, python]
|
||||
tags: [functional, pipe, composition, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def react_loop(llm_chat: Callable[[list[dict]], str], tools: dict[str, Callable[..., str]], system_prompt: str, user_prompt: str, max_iterations: int = 5, on_thought: Callable[[str], None] | None = None, on_action: Callable[[str, dict], None] | None = None, on_observation: Callable[[str], None] | None = None) -> str"
|
||||
description: "Implementa el patron ReACT (Reasoning + Acting) para agentes LLM. El agente razona, decide usar herramientas, observa resultados, y repite hasta producir una respuesta final."
|
||||
tags: [llm, agent, react, reasoning, tools, loop]
|
||||
tags: [llm, agent, react, reasoning, tools, loop, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def reduce_list(xs: list, initial, fn: callable)"
|
||||
description: "Reduce una lista con un acumulador y una funcion binaria fn(acc, x)."
|
||||
tags: [list, functional, reduce, fold, python]
|
||||
tags: [list, functional, reduce, fold, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def remove_tree_fields(data: Any, fields: list[str] = None) -> Any"
|
||||
description: "Elimina campos especificados recursivamente de un arbol (dict/list). Por defecto elimina 'text'."
|
||||
tags: [tree, filter, fields, recursive]
|
||||
tags: [tree, filter, fields, recursive, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "render_template(template: str, context: dict, missing: str = '') -> str"
|
||||
description: "Motor de templates minimalista sin dependencias. Soporta {{var}}, {{{raw}}}, {{obj.field}} dot-path, {% for x in list %}...{% endfor %}, {% if cond %}...{% endif %}, {% if not cond %}...{% endif %}. HTML-escaped por defecto."
|
||||
tags: [template, render, html, string, format, jinja]
|
||||
tags: [template, render, html, string, format, jinja, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "async def retry_async(func: Callable[[], Awaitable[T]], max_retries: int, base_delay: float = 0.5, max_delay: float = 8.0, jitter: bool = True, is_retryable: Callable[[Exception], bool] | None = None) -> T"
|
||||
description: "Version async de retry_sync. Reintenta una corrutina en errores transitorios con exponential backoff. Usa asyncio.sleep en vez de time.sleep."
|
||||
tags: [retry, backoff, exponential, async, resilience, api, asyncio]
|
||||
tags: [retry, backoff, exponential, async, resilience, api, asyncio, pendiente-usar]
|
||||
uses_functions: [classify_api_error_py_core, compute_backoff_delay_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def retry_sync(func: Callable[[], T], max_retries: int, base_delay: float = 0.5, max_delay: float = 8.0, jitter: bool = True, is_retryable: Callable[[Exception], bool] | None = None) -> T"
|
||||
description: "Reintenta una funcion sincrona en errores transitorios con exponential backoff. Por defecto usa classify_api_error para decidir si reintentar. Hace time.sleep entre intentos."
|
||||
tags: [retry, backoff, exponential, sync, resilience, api]
|
||||
tags: [retry, backoff, exponential, sync, resilience, api, pendiente-usar]
|
||||
uses_functions: [classify_api_error_py_core, compute_backoff_delay_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def retry_with_backoff(max_retries: int = 3, initial_delay: float = 1.0, max_delay: float = 30.0, backoff_factor: float = 2.0, jitter: bool = True, exceptions: tuple[type[Exception], ...] = (Exception,), on_retry: Callable[[Exception, int], None] | None = None) -> Callable"
|
||||
description: "Decorador que reintenta una funcion sincrona con exponential backoff cuando lanza excepciones del tipo especificado. Soporta jitter, callback on_retry y filtrado por tipo de excepcion."
|
||||
tags: [retry, backoff, exponential, decorator, sync, resilience, jitter]
|
||||
tags: [retry, backoff, exponential, decorator, sync, resilience, jitter, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def retry_with_backoff_async(max_retries: int = 3, initial_delay: float = 1.0, max_delay: float = 30.0, backoff_factor: float = 2.0, jitter: bool = True, exceptions: tuple[type[Exception], ...] = (Exception,), on_retry: Callable[[Exception, int], None] | None = None) -> Callable"
|
||||
description: "Decorador que reintenta una funcion async con exponential backoff cuando lanza excepciones del tipo especificado. Usa asyncio.sleep en vez de time.sleep."
|
||||
tags: [retry, backoff, exponential, decorator, async, asyncio, resilience, jitter]
|
||||
tags: [retry, backoff, exponential, decorator, async, asyncio, resilience, jitter, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "safe_read_csv_fallback(path: str | Path) -> pd.DataFrame"
|
||||
description: "Lee un CSV intentando utf-8 primero; si falla con UnicodeDecodeError reintenta con latin-1. Cubre exportaciones legacy de Excel y herramientas occidentales."
|
||||
tags: [csv, encoding, pandas, io, core]
|
||||
tags: [csv, encoding, pandas, io, core, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def sanitize_for_path(text: str, max_length: int = 50) -> str"
|
||||
description: "Convierte texto a nombre seguro para uso en paths. Remueve caracteres especiales, reemplaza espacios con _, trunca con hash suffix si excede max_length."
|
||||
tags: [path, sanitize, string, filesystem, slug]
|
||||
tags: [path, sanitize, string, filesystem, slug, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user