Files
fn_registry/python/functions/infra/http_download_file.md
egutierrez 5f4f1f7508 docs: params/output semántico en 506 funciones para composabilidad
Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
2026-04-05 18:45:16 +02:00

1.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
http_download_file function py infra 1.0.0 impure http_download_file(url: str, dest_path: str, headers: dict[str, str] | None = None, timeout: float = 120.0, chunk_size: int = 8192) -> dict Descarga un archivo por HTTP en streaming (sin cargar todo en memoria). Crea directorios intermedios si no existen. Retorna dict con path, size_bytes y content_type.
http
download
file
streaming
network
stdlib
infra
false error_go_core
os
urllib.error
urllib.request
name desc
url URL del archivo a descargar
name desc
dest_path ruta destino donde guardar el archivo descargado
name desc
headers diccionario opcional de headers HTTP personalizados
name desc
timeout timeout en segundos para la descarga (defecto 120.0)
name desc
chunk_size tamaño en bytes de cada chunk descargado (defecto 8192)
diccionario con keys path, size_bytes y content_type true
mock de descarga con contenido binario
directorio destino creado automaticamente
retorno con size correcto
timeout configurado en el request
python/functions/infra/http_download_file_test.py python/functions/infra/http_download_file.py

Ejemplo

result = http_download_file(
    "https://example.com/report.pdf",
    dest_path="/tmp/reports/report.pdf",
    timeout=60.0,
)
print(f"Downloaded {result['size_bytes']} bytes to {result['path']}")

Notas

Solo usa stdlib (urllib, os). La descarga se hace en chunks de chunk_size bytes para evitar consumo de memoria con archivos grandes. El timeout de 120s por defecto es mayor que http_get_json porque los archivos pueden ser pesados. Los directorios intermedios se crean con os.makedirs(exist_ok=True).