Created the canonical recursive execution handler buildRecursive that now lives in the execution layer instead of the runtime. the previous recursive handlers are depreciated
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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
|
||||
Reference in New Issue
Block a user