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 liket1above, callingwith_overrideson 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)deepcopy()eval()is_(v)is_false()is_none()is_true()with_overrides(*args, **kwargs)with_var(new_var)Attributes
attr_pathThe attribute path the promise will be resolved with.
is_readyReturns 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).
refIf the promise is NOT READY / Incomplete, then it maps to the origin node that owns the promise
valIf the promise is ready then this holds the actual evaluate value in Flyte's type system
varName of the variable bound with this promise