import logging from core.apirequest import executeRequest from core.runtime.runtimecontract import buildRuntimeAttr, buildPreRuntimeAttr #from core.runtime.stopsignals import addStopSignal def buildAction (action, outputs, process): action_log = True resolved, match, filter = buildPreRuntimeAttr(action, outputs, process) if hasattr(action, "allowaction"): if not action.allowaction: return None if match: if filter.get("execute", False): response, outputs = executeRequest(filter["execute"], outputs, resolved) return None response, outputs = executeRequest(action, outputs, resolved) if response is None: return outputs, None response = buildRuntimeAttr(action, outputs, resolved, response, process) if action_log: logging.info(f"{action.name} completed") return response