Esempio n. 1
0
    def getAvailableFilters(self, operations_used=list()):
        p = plugins.getOperations()
        names = p.keys()

        # grab transition prefixes for last operation
        transitionsPre = [
            t.split('.')[0]
            for t in p[operations_used[-1]]['operation']['transitions']
        ] if operations_used else None

        result = []
        for op_name in names:
            if op_name not in operations_used:
                if transitionsPre is not None:
                    # grab transition prefixes for current op
                    op_transitions = [
                        t.split('.')[0]
                        for t in p[op_name]['operation']['transitions']
                    ]

                    # don't append and continue with loop if transitions don't match
                    if set(transitionsPre).isdisjoint(op_transitions):
                        continue
                result.append(op_name)
        return result
Esempio n. 2
0
 def nextfilter(self):
     im,filename = self.scModel.currentImage()
     if (im is None): 
         return
     d = FilterCaptureDialog(self,self.scModel.get_dir(),im,plugins.getOperations(),os.path.split(filename)[1], self.scModel)
     if d.optocall is not None:
         msg,pairs = self.scModel.imageFromPlugin(d.optocall,im,filename,**self.resolvePluginValues(d.argvalues))
         if msg is not None:
           tkMessageBox.showwarning("Next Filter",msg)
         self._addPairs(pairs)
Esempio n. 3
0
 def nextfilter(self):
     im, filename = self.scModel.currentImage()
     if (im is None):
         return
     d = FilterCaptureDialog(self, self.scModel.get_dir(), im,
                             plugins.getOperations(),
                             os.path.split(filename)[1], self.scModel)
     if d.optocall is not None:
         msg, pairs = self.scModel.imageFromPlugin(
             d.optocall, im, filename,
             **self.resolvePluginValues(d.argvalues))
         if msg is not None:
             tkMessageBox.showwarning("Next Filter", msg)
         self._addPairs(pairs)
Esempio n. 4
0
 def getOperations(self, startType, endType):
     import copy
     p = copy.copy(plugins.getOperations(startType))
     for grp, v in self.groups.iteritems():
         if not v.isValid():
             continue
         try:
             grpOp = v.getOperation()
             transitions = [
                 t.split('.')[0] for t in grpOp['operation']['transitions']
             ]
             if startType is None or startType in transitions:
                 p[grp] = grpOp
         except Exception as e:
             logging.getLogger('maskgen').error(
                 'Cannot load group filter {} : {}'.format(grp, str(e)))
     return p
Esempio n. 5
0
 def getOperations(self, fileType):
     import copy
     p = copy.copy(plugins.getOperations(fileType))
     for grp, v in self.groups.iteritems():
         p[grp] = v.getOperation()
     return p