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: 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: []
|
||||
|
||||
@@ -8,7 +8,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def slugify_ascii(text: str, max_len: int = 80, default: str = \"centro\") -> str"
|
||||
description: "Convierte texto a slug ASCII lowercase sin diacriticos. Strip + lower + NFD + reemplaza non-alphanum por guion + colapsa guiones. Si vacio retorna default. Trunca a max_len."
|
||||
tags: [string, normalization, slug, ascii, spain]
|
||||
tags: [string, normalization, slug, ascii, spain, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def smart_split_content(content: str, max_tokens: int = 1024, max_chars: int = 8000) -> list[str]"
|
||||
description: "Divide contenido grande en partes respetando limites de tokens y caracteres. Divide por parrafos (doble newline). Si un parrafo individual excede el limite, lo corta por caracteres."
|
||||
tags: [chunking, splitting, tokens, text, markdown, llm]
|
||||
tags: [chunking, splitting, tokens, text, markdown, llm, pendiente-usar]
|
||||
uses_functions: [estimate_token_count_py_core]
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def t(key: str, locale: str | None = None, **kwargs) -> str"
|
||||
description: "Traduce una clave con dot-path notation al idioma activo. Prioridad: parametro locale > thread-local > default. Soporta interpolacion {variable}. Fallback al locale default si la clave no existe; si tampoco existe, retorna la key."
|
||||
tags: [i18n, translation, locale, dot-path, interpolation]
|
||||
tags: [i18n, translation, locale, dot-path, interpolation, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def take(xs: list, n: int) -> list"
|
||||
description: "Toma los primeros n elementos de una lista."
|
||||
tags: [list, functional, take, slice, python]
|
||||
tags: [list, functional, take, slice, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "class TaskManager: create_task(task_type: str, metadata: dict | None = None) -> str; get_task(task_id: str) -> Task | None; update_task(task_id: str, ...) -> None; complete_task(task_id: str, result: dict) -> None; fail_task(task_id: str, error: str) -> None; list_tasks(task_type: str | None = None) -> list[dict]; cleanup_old_tasks(max_age_hours: int = 24) -> None"
|
||||
description: "Gestor de tareas background en memoria, thread-safe, con patron singleton. Permite crear, actualizar, completar y limpiar tareas de larga duracion. Patron tipico: hilo background actualiza progreso via update_task(), frontend hace polling via get_task()."
|
||||
tags: [task, manager, singleton, thread-safe, background, async, polling, progress]
|
||||
tags: [task, manager, singleton, thread-safe, background, async, polling, progress, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: [task_py_core, task_status_py_core]
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "to_csv(rows: list[dict], columns: list[str] | None = None, delimiter: str = ',', include_header: bool = True) -> str"
|
||||
description: "Serializa datos tabulares a CSV. Si columns es None, usa las keys de la primera fila. Escapa campos con comillas, newlines y delimiters correctamente (RFC 4180). Sin dependencias externas."
|
||||
tags: [csv, serialization, export, tabular, format]
|
||||
tags: [csv, serialization, export, tabular, format, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "to_jsonl(rows: list[dict]) -> str"
|
||||
description: "Serializa a JSON Lines (newline-delimited JSON). Cada dict se serializa como una linea JSON independiente. Util para streaming, logging estructurado y formatos de intercambio."
|
||||
tags: [jsonl, json, serialization, export, streaming, format]
|
||||
tags: [jsonl, json, serialization, export, streaming, format, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def to_pascal_case(name: str) -> str"
|
||||
description: "Convierte cualquier formato de nombre (snake_case, camelCase, kebab-case, mixto) a PascalCase. Retorna \"Unknown\" para entrada vacia."
|
||||
tags: [string, naming, pascal-case, case-conversion, formatting, python]
|
||||
tags: [string, naming, pascal-case, case-conversion, formatting, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def tree_to_flat_list(structure: Any) -> list[dict]"
|
||||
description: "Convierte arbol jerarquico a lista plana en orden DFS. Mantiene nodos internos con sus campos."
|
||||
tags: [tree, flatten, dfs, hierarchy]
|
||||
tags: [tree, flatten, dfs, hierarchy, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def unique(xs: list) -> list"
|
||||
description: "Elimina duplicados de una lista preservando el orden de aparicion."
|
||||
tags: [list, functional, unique, deduplicate, python]
|
||||
tags: [list, functional, unique, deduplicate, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def validate_git_ssh_uri(url: str) -> None"
|
||||
description: "Valida el formato de una URI SSH de git (git@host:path). Lanza ValueError si la URI es invalida."
|
||||
tags: [git, ssh, validation, uri]
|
||||
tags: [git, ssh, validation, uri, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def validate_json_schema(data: dict, schema: dict) -> tuple[bool, list[str]]"
|
||||
description: "Valida un dict contra un subset practico de JSON Schema (draft 2020-12) sin dependencias externas. Soporta type, required, properties, items, minItems/maxItems, minimum/maximum, exclusiveMinimum/exclusiveMaximum, minLength/maxLength, pattern, enum. Acumula todos los errores con paths descriptivos."
|
||||
tags: [validation, schema, json-schema, pure, core]
|
||||
tags: [validation, schema, json-schema, pure, core, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def write_node_ids(data: Any, node_id: int = 0) -> int"
|
||||
description: "Asigna IDs secuenciales zero-padded (0001, 0002...) a todos los nodos de un arbol. Retorna siguiente contador."
|
||||
tags: [tree, id, hierarchy, mutation]
|
||||
tags: [tree, id, hierarchy, mutation, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
@@ -7,7 +7,7 @@ version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def zip_with(xs: list, ys: list, fn: callable) -> list"
|
||||
description: "Combina dos listas elemento a elemento con una funcion. Se detiene en la mas corta."
|
||||
tags: [list, functional, zip, combine, python]
|
||||
tags: [list, functional, zip, combine, python, pendiente-usar]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
|
||||
Reference in New Issue
Block a user