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
+23 -23
View File
@@ -4,34 +4,34 @@ from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr
def buildAction (action, outputs):
if hasattr(action, "recursive"):
recursiveresponses = []
items = outputs[action.recursive["source"]]
reverse = action.recursive.get("reverse", False)
if reverse:
items = reversed(items)
#if hasattr(action, "recursive"):
# recursiveresponses = []
# items = outputs[action.recursive["source"]]
# reverse = action.recursive.get("reverse", False)
#
# if reverse:
# items = reversed(items)
for item in items:
outputs[action.recursive["label"]] = item
outputs, resolved, match, filter = buildPreRuntimeAttr(action, outputs)
# for item in items:
# outputs[action.recursive["label"]] = item
# outputs, resolved, match, filter = buildPreRuntimeAttr(action, outputs)
if match:
continue
# if match:
# continue
response, outputs = executeRequest(action, outputs, resolved)
recursiveresponses.append(response)
outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
# response, outputs = executeRequest(action, outputs, resolved)
# recursiveresponses.append(response)
# outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
return outputs, recursiveresponses
# return outputs, recursiveresponses
else:
outputs, resolved, match, filter = buildPreRuntimeAttr(action, outputs)
#else:
outputs, resolved, match, filter = buildPreRuntimeAttr(action, outputs)
if match:
return outputs, resolved
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
if match:
return outputs, resolved
response, outputs = executeRequest(action, outputs, resolved)
outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
return outputs, response