equal
deleted
inserted
replaced
2202 def __add__(self, x): |
2202 def __add__(self, x): |
2203 s = self.set() |
2203 s = self.set() |
2204 l = [r for r in x if r not in s] |
2204 l = [r for r in x if r not in s] |
2205 return baseset(list(self) + l) |
2205 return baseset(list(self) + l) |
2206 |
2206 |
|
2207 def isascending(self): |
|
2208 return False |
|
2209 |
|
2210 def isdescending(self): |
|
2211 return False |
|
2212 |
2207 def filter(self, l): |
2213 def filter(self, l): |
2208 return lazyset(self, l) |
2214 return lazyset(self, l) |
2209 |
2215 |
2210 class lazyset(object): |
2216 class lazyset(object): |
2211 """Duck type for baseset class which iterates lazily over the revisions in |
2217 """Duck type for baseset class which iterates lazily over the revisions in |
2267 def reverse(self): |
2273 def reverse(self): |
2268 self._subset.reverse() |
2274 self._subset.reverse() |
2269 |
2275 |
2270 def set(self): |
2276 def set(self): |
2271 return set([r for r in self]) |
2277 return set([r for r in self]) |
|
2278 |
|
2279 def isascending(self): |
|
2280 return False |
|
2281 |
|
2282 def isdescending(self): |
|
2283 return False |
2272 |
2284 |
2273 def filter(self, l): |
2285 def filter(self, l): |
2274 return lazyset(self, l) |
2286 return lazyset(self, l) |
2275 |
2287 |
2276 class orderedlazyset(lazyset): |
2288 class orderedlazyset(lazyset): |
2306 self._subset.sort(reverse=reverse) |
2318 self._subset.sort(reverse=reverse) |
2307 else: |
2319 else: |
2308 if not self._ascending: |
2320 if not self._ascending: |
2309 self._subset.sort(reverse=reverse) |
2321 self._subset.sort(reverse=reverse) |
2310 self._ascending = not reverse |
2322 self._ascending = not reverse |
|
2323 |
|
2324 def isascending(self): |
|
2325 return self._ascending |
|
2326 |
|
2327 def isdescending(self): |
|
2328 return not self._ascending |
2311 |
2329 |
2312 def reverse(self): |
2330 def reverse(self): |
2313 self._subset.reverse() |
2331 self._subset.reverse() |
2314 self._ascending = not self._ascending |
2332 self._ascending = not self._ascending |
2315 |
2333 |
2619 self._start, self._end = self._end + 1, self._start + 1 |
2637 self._start, self._end = self._end + 1, self._start + 1 |
2620 |
2638 |
2621 def set(self): |
2639 def set(self): |
2622 return self |
2640 return self |
2623 |
2641 |
|
2642 def isascending(self): |
|
2643 return self._start < self._end |
|
2644 |
|
2645 def isdescending(self): |
|
2646 return self._start > self._end |
|
2647 |
2624 def filter(self, l): |
2648 def filter(self, l): |
2625 if self._start <= self._end: |
2649 if self._start <= self._end: |
2626 return orderedlazyset(self, l) |
2650 return orderedlazyset(self, l) |
2627 else: |
2651 else: |
2628 return orderedlazyset(self, l, ascending=False) |
2652 return orderedlazyset(self, l, ascending=False) |