def setupOutputs(self):
        length = 0
        for slot in list(self.inputs.values()):
            if slot.connected():
                length += 1

        self.outputs["Outputs"].resize(length)

        i = 0
        for sname in sorted(self.inputs.keys()):
            slot = self.inputs[sname]
            if slot.connected():
                self.outputs["Outputs"][i].meta.assignFrom(slot.meta)
                i += 1
 def propagateDirty(self, islot, subindex, roi):
     i = 0
     for sname in sorted(self.inputs.keys()):
         slot = self.inputs[sname]
         if slot == islot:
             self.outputs["Outputs"][i].setDirty(roi)
             break
         if slot.connected():
             self.outputs["Outputs"][i].meta.assignFrom(slot.meta)
             i += 1
 def execute(self, slot, subindex, roi, result):
     key = roiToSlice(roi.start, roi.stop)
     index = subindex[0]
     i = 0
     for sname in sorted(self.inputs.keys()):
         slot = self.inputs[sname]
         if slot.connected():
             if i == index:
                 return slot[key].wait()
             i += 1