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:
Lyncoln
2026-10-24 10:00:13 -04:00
parent 2140468030
commit 59894cfb2c
10 changed files with 135 additions and 57 deletions
+45
View File
@@ -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