Memoize#

from hera import Memoize, Parameter, Task, ValueFrom, Workflow


def generate():
    with open("/out", "w") as f:
        f.write("42")


def consume(value):
    print(f"Received value: {value}")


# assumes you used `hera.set_global_token` and `hera.set_global_host` so that the workflow can be submitted
with Workflow("memoize") as w:
    g = Task("g", generate, outputs=[Parameter("value", value_from=ValueFrom(path="/out"))])
    c = Task("c", consume, inputs=[g.get_parameter("value")], memoize=Memoize("value", "memoize", "c"))
    g >> c

w.create()