from core.execution.action.action import buildAction from core.runtime.runtimecontract import buildPreRuntimeAttr, buildRuntimeAttr from core.apirequest import executeRequest #def recursiveSet(definition, outputs, responses): # from core.execution.executioncontract import executeContract # recursiveset = definition.recursiveset["actions"] # for item in outputs[definition.recursiveset["source"]]: # outputs[definition.recursiveset["outputlabel"]] = item # # for job in recursiveset: # #outputs, response = buildAction(job, outputs) # outputs, response = executeContract(job, outputs) # responses.append(response) # # return outputs, responses def buildRecursive(definition, outputs): responses = [] from core.execution.executioncontract import executeContract recursiveset = definition.recursiveset["actions"] source = definition.recursiveset["source"] items = outputs.get(source) if items is None: print(f"No items available in {source} for {definition.name}") return outputs, None reverse = definition.recursiveset.get("reverse", False) if reverse: #print("reversing") items = reversed(items) for item in items: outputs[definition.recursiveset["outputlabel"]] = item for job in recursiveset: #outputs, response = buildAction(job, outputs) outputs, response = executeContract(job, outputs) responses.append(response) return outputs, responses