Nivel 138: Background dentro de Condition

Objetivo

Mostrar que Background puede usarse dentro de Condition.

Código Fuente

"""
DEMO LEVEL 138: Background con Condition
-----------------------------------------
Adds: Background dentro de una condición.
Continues: L137.

DIAGRAM:
Condition(..., branch_true=[Background(task)])
"""

import time

from wpipe import Pipeline, step, Condition
from wpipe.pipe.components.logic_blocks import Background


@step(name="check")
def check(data):
    print("🔍 Verificando condición...")
    data["condition"] = True
    return data


@step(name="bg_in_true")
def bg_in_true(data):
    print("🔄 [BACKGROUND] Ejecutando en branch true...")
    time.sleep(0.1)


@step(name="regular_in_false")
def regular_in_false(data):
    print("📌 Tarea regular en branch false...")


@step(name="after_condition")
def after_condition(data):
    print("✅ Después de la condición!")
    return data


if __name__ == "__main__":
    print(">>> DEMO 138: Background con Condition")
    print("=" * 50)

    pipe = Pipeline(pipeline_name="demo_138", verbose=False)
    pipe.set_steps([
        check,
        Condition(
            expression="condition == True",
            branch_true=[Background(bg_in_true)],
            branch_false=[regular_in_false],
        ),
        after_condition,
    ])

    result = pipe.run({})
    print("\n✅ Background funciona dentro de Condition!")

Resultado de Ejecución


>>> DEMO 138: Background con Condition
==================================================
🔍 Verificando condición...
✅ Después de la condición!
demo_138 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00

✅ Background funciona dentro de Condition!