Nivel 90: demo_level90.py
Este es el nivel 90 del tour de aprendizaje.
Código Fuente
"""
DEMO LEVEL 90: ResourceMonitor + TaskTimer
-----------------------------------------
Adds: Combinar ResourceMonitor con TaskTimer.
Continues: L89.
DIAGRAM:
with ResourceMonitor + with TaskTimer
"""
import time
from wpipe import Pipeline, step, ResourceMonitor, TaskTimer
@step(name="proceso")
def proceso(data: dict) -> None:
"""Proceso step.
Args:
data: Input data for the step.
Returns:
dict: Result of the step.
"""
print("🔄 Procesando...")
time.sleep(0.1)
print("✅ Completado")
return {"ok": True}
if __name__ == "__main__":
print(">>> Monitoreo completo...")
with ResourceMonitor("Viaje_L90") as monitor:
with TaskTimer("viaje_l90", timeout_seconds=5) as timer:
pipe = Pipeline(pipeline_name="viaje_l90", verbose=True)
pipe.set_steps([proceso])
pipe.run({})
summary = monitor.get_summary()
print(f"\n📊 Recursos:")
print(f" RAM: {summary['peak_ram_mb']:.1f} MB")
print(f" Tiempo: {timer.elapsed_seconds:.3f}s")
print(f" Excedido: {timer.exceeded_timeout()}")
Resultado de Ejecución
>>> Monitoreo completo... 🔄 Procesando... ✅ Completado viaje_l90 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
- 📊 Recursos:
RAM: 49.3 MB Tiempo: 0.107s Excedido: False