dbrtools/dbr/dbrfilter.py
branchDBRToolsDev
changeset 245 fd0a8d235c70
parent 242 9fd4819bf104
child 283 398d483e91bb
equal deleted inserted replaced
242:9fd4819bf104 245:fd0a8d235c70
   145   
   145   
   146   def addExclude(self, filter):
   146   def addExclude(self, filter):
   147     self.exc.add(filter)
   147     self.exc.add(filter)
   148 
   148 
   149   def include(self, results):
   149   def include(self, results):
   150     res = dbrresults.DBRResults(set(),set(),set(),set(),set())
       
   151     if self.inc:
   150     if self.inc:
       
   151       res = dbrresults.DBRResults(set(),set(),set(),set(),set())
   152       for filter in self.inc:  
   152       for filter in self.inc:  
   153         res |= filter.include(results) 
   153         res |= filter.include(results)
       
   154     else:
       
   155       res = results     
   154     return res
   156     return res
   155     
   157     
   156   def exclude(self, results):
   158   def exclude(self, results):
   157     res = results
   159     res = dbrresults.DBRResults(set(),set(),set(),set(),set())
   158     if self.exc:
   160     if self.exc:
       
   161       res = results
   159       for filter in self.exc:
   162       for filter in self.exc:
   160         res &= filter.exclude(results)
   163         res &= filter.exclude(results)
   161     return res
   164     return res
   162   
   165   
   163   def filter(self, results):
   166   def filter(self, results):
   164     return self.include(results) | self.exclude(results)
   167     return self.include(results) & self.exclude(results)
   165      
   168      
   166                 
   169