flytekit.extend.Promise#
- class flytekit.extend.Promise(var, val)[source]#
This object is a wrapper and exists for three main reasons. Let’s assume we’re dealing with a task like
@task def t1() -> (int, str): ...
Handling the duality between compilation and local execution - when the task function is run in a local execution mode inside a workflow function, a Python integer and string are produced. When the task is being compiled as part of the workflow, the task call creates a Node instead, and the task returns two Promise objects that point to that Node.
One needs to be able to call
x = t1().with_overrides(...)
If the task returns an integer or a
(int, str)
tuple liket1
above, callingwith_overrides
on the result would throw an error. This Promise object adds that.Assorted handling for conditionals.
- Parameters
var (str) –
val (Union[NodeOutput, _literals_models.Literal]) –
- __init__(var, val)[source]#
- Parameters
var (str) –
val (Union[flytekit.core.promise.NodeOutput, flytekit.models.literals.Literal]) –
Methods
__init__
(var, val)eval
()is_
(v)is_false
()is_none
()is_true
()with_overrides
(*args, **kwargs)with_var
(new_var)Attributes
is_ready
Returns if the Promise is READY (is not a reference and the val is actually ready) Usage: p = Promise(...) ... if p.is_ready(): print(p.val) else: print(p.ref).
ref
If the promise is NOT READY / Incomplete, then it maps to the origin node that owns the promise
val
If the promise is ready then this holds the actual evaluate value in Flyte's type system
var
Name of the variable bound with this promise