tango icon indicating copy to clipboard operation
tango copied to clipboard

Is it possible to reuse a step's output for other two steps (avoid reruning the shared step)

Open Boltzmachine opened this issue 2 years ago • 2 comments

For example,

@Step.register("share")
class Share(Step):
    CACHEABLE = False
    def run(self):
        ...
        
@Step.register("a")
class StepA(Step):
    def run(self, foo):
        ...
        
@Step.register("b")
class StepB(Step):
    def run(self, foo):
        ...

And the config file

steps: {
    share: {type: "share"},
    A: {type: "a", foo: {type:"ref", ref:"share"}},
    B: {type: "b", foo: {type:"ref", ref:"share"}},
}

Currently, it seems that both StepA and StepB will run the step Share. i.e. the step Share will be executed twice, once for A and once for B. Currently is it possible to just run step Share once and use the result for both StepA and StepB? I don't want to make step Share cacheable.

Boltzmachine avatar Apr 14 '23 21:04 Boltzmachine

I just wonder if it is possible.... Just reply me with a "no" if it is not possible...

Boltzmachine avatar Apr 16 '23 21:04 Boltzmachine

@Boltzmachine Currently, you have set CACHEABLE = False for Share step. If you set it to True, it will cache the output, and the step will be run only once.

AkshitaB avatar Jun 05 '23 20:06 AkshitaB