Branching and conditionals#

class flytekit.conditional(name)#

Use a conditional section to control the flow of a workflow. Conditional sections can only be used inside a workflow context. Outside of a workflow they will raise an Assertion.

The conditional method returns a new conditional section, that allows to create a - ternary operator like if-else clauses. The reason why it is called ternary-like is because, it returns the output of the branch result. So in-effect it is a functional style condition.

Example of a condition usage. Note the nesting and the assignment to a LHS variable

 v = (
    conditional("fractions")
    .if_((my_input > 0.1) & (my_input < 1.0))
    .then(
        conditional("inner_fractions")
        .if_(my_input < 0.5)
        .then(double(n=my_input))
        .elif_((my_input > 0.5) & (my_input < 0.7))
        .then(square(n=my_input))
        .else_()
        .fail("Only <0.7 allowed")
    )
    .elif_((my_input > 1.0) & (my_input < 10.0))
    .then(square(n=my_input))
    .else_()
    .then(double(n=my_input))
)
Parameters:

name (str)

Return type:

ConditionalSection