def apply(self, context=None): results = [] index = self.getIndex(context) for value in self.values: r = index.apply((value, value)) # empty results if not r: continue results.append(r) if not results: # no applicable terms at all return IFBTree() result = results.pop(0) for r in results: result = union(result, r) return result
def apply(self, context=None): results = [] for term in self.terms: r = term.apply(context) # empty results if not r: continue results.append(r) if not results: # no applicable terms at all # XXX should this be possible? return IFBTree() result = results.pop(0) for r in results: result = union(result, r) return result
def union(self, r1, r2): return r1 is None and r2 or union(r1, r2)
def union(self, *args): from BTrees.IFBTree import union return union(*args)