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