def setInputReference(self, stepRef, **extras): """ _setInputReference_ Add details to the input reference for the task providing input to this task. The reference is the step in the input task, plus any extra information. """ stepId = SpecUtils.stepIdentifier(stepRef) setattr(self.data.input, "inputStep", stepId) [setattr(self.data.input, key, val) for key, val in extras.items()] return
def getTaskFromStep(stepRef): """ _getTaskFromStep_ Traverse up the step tree until finding the first WMTask entry, return it wrapped in a WMTaskHelper """ nodeData = stepRef if isinstance(stepRef, WMStepHelper): nodeData = stepRef.data taskNode = SpecUtils.findTaskAboveNode(nodeData) if taskNode == None: msg = "Unable to find Task containing step\n" #TODO: Replace with real exception class raise RuntimeError, msg return WMTaskHelper(taskNode)