from core.apirequest import executeRequest 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) # for item in items: # outputs[action.recursive["label"]] = item # outputs, resolved, match, filter = buildPreRuntimeAttr(action, outputs) # if match: # continue # response, outputs = executeRequest(action, outputs, resolved) # recursiveresponses.append(response) # outputs, response = buildRuntimeAttr(action, outputs, resolved, response) # return outputs, recursiveresponses #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) return outputs, response