CodeForge

Python de Cero a Experto / Python avanzado

Reto: pipeline de datos perezoso

Reto40 min60 XP

Junta lo mejor del módulo en un pipeline de datos elegante para Mi Bolsillo: generadores que procesan gastos PEREZOSAMENTE (uno a la vez, sin cargar todo), encadenados como una línea de ensamblaje, con un decorador que cronometra el proceso. Es un patrón profesional para procesar flujos de datos de forma eficiente y componible —el tipo de código que caracteriza a un desarrollador Python experto—.

Reto

Pipeline perezoso

Media35 min60 XP(×2 sin mirar la solución)

Qué debes construir

Un pipeline de procesamiento de gastos usando generadores encadenados y un decorador:

  1. Un decorador @cronometro que mida e imprima cuánto tarda la función que envuelve (usa functools.wraps).
  2. Generadores encadenados (cada uno recibe un iterable y hace yield):
    • solo_validos(gastos): produce solo los gastos con valor > 0.
    • con_iva(gastos): produce cada gasto con una nueva clave total (valor × 1.19).
    • de_categoria(gastos, categoria): produce solo los de esa categoría.
  3. Encadénalos en un pipeline perezoso (la salida de uno es la entrada del otro).
  4. Consúmelo con una función decorada que sume los totales, y muestra un reporte.

Reglas

  • Cada transformación es un generador (yield), no una lista —el pipeline es perezoso—.
  • Los generadores se encadenan: de_categoria(con_iva(solo_validos(gastos)), "comida").
  • Usa @cronometro con @wraps en la función que consume el pipeline.

35:00

Cuando estés listo, arranca el reloj.

Qué sigue

Módulo 6 conquistado: dominas el Python avanzado —generadores, decoradores, typing, pattern matching, asyncio— y el estilo pythónico experto. Terminaste el TRONCO COMÚN del curso (fundamentos → avanzado). Lo que sigue son las tres RUTAS especializadas donde Python muestra su poder real: SCRIPTING (automatizar tareas), BACKEND (APIs con FastAPI) y DATOS E IA (NumPy, Pandas, machine learning). Elige tu camino —o recórrelos todos—.