def test_execute_all(self, qtbot, sum_op, square_op, negative_op): results = [{"negative": (1 + 2) ** 2 * -1}, {"negative": (3 + 4) ** 2 * -1}, {"negative": (5 + 6) ** 2 * -1}] def cb(*result): next_result = results.pop(0) assert result == next_result workflow = Workflow() workflow.add_operations(sum_op, square_op, negative_op) workflow.add_link(sum_op, square_op, "sum", "n") workflow.add_link(square_op, negative_op, "square", "num") n1_values = [1, 3, 5] n2_values = [2, 4, 6] # TODO -- we are only getting one result, should get three (3 pairs of n1/n2). workflow.execute_all(callback_slot=cb, n1=n1_values, n2=n2_values).result()
def doReduceWorkflow(self, workflow: Workflow): multimode = self.reduceplot.toolbar.multiplot.isChecked() currentwidget = self.reducetabview.currentWidget() data = currentwidget.header.meta_array('primary') if not multimode: data = [data[currentwidget.timeIndex(currentwidget.timeLine)[0]]] ai = self.calibrationsettings.AI('pilatus2M') ai.detector = detectors.Pilatus2M() ai = [ai] * len(data) mask = [self.maskingworkflow.lastresult[0]['mask'].value if self.maskingworkflow.lastresult else None] * len( data) outputwidget = self.reduceplot outputwidget.clear() def showReduce(*results): outputwidget.appendResult(results) workflow.execute_all(None, data=data, ai=ai, mask=mask, callback_slot=showReduce, threadkey='reduce')
def test_execute_all(self, sum_op, square_op, negative_op): workflow = Workflow() workflow.add_operations(sum_op, square_op, negative_op) workflow.add_link(sum_op, square_op, "sum", "n") workflow.add_link(square_op, negative_op, "square", "num") n1_values = [1, 3, 5] n2_values = [2, 4, 6] # TODO -- we are only getting one result, should get three (3 pairs of n1/n2). results = list( workflow.execute_all(n1=n1_values, n2=n2_values).result()) assert results == [{ "negative": (1 + 2)**2 * -1 }, { "negative": (3 + 4)**2 * -1 }, { "negative": (5 + 6)**2 * -1 }]