equal
deleted
inserted
replaced
2234 |
2234 |
2235 def __sub__(self, x): |
2235 def __sub__(self, x): |
2236 return lazyset(self, lambda r: r not in x) |
2236 return lazyset(self, lambda r: r not in x) |
2237 |
2237 |
2238 def __add__(self, x): |
2238 def __add__(self, x): |
2239 return lazyset(addset(self, x)) |
2239 return lazyset(_addset(self, x)) |
2240 |
2240 |
2241 def __nonzero__(self): |
2241 def __nonzero__(self): |
2242 for r in self: |
2242 for r in self: |
2243 return True |
2243 return True |
2244 return False |
2244 return False |
2305 |
2305 |
2306 def reverse(self): |
2306 def reverse(self): |
2307 self._subset.reverse() |
2307 self._subset.reverse() |
2308 self._ascending = not self._ascending |
2308 self._ascending = not self._ascending |
2309 |
2309 |
2310 class addset(object): |
2310 class _addset(object): |
2311 """Wrapper structure for lazily adding two structures without losing much |
2311 """Represent the addition of two sets |
|
2312 |
|
2313 Wrapper structure for lazily adding two structures without losing much |
2312 performance on the __contains__ method |
2314 performance on the __contains__ method |
|
2315 |
|
2316 This class does not duck-type baseset and it's only supposed to be used |
|
2317 internally |
2313 """ |
2318 """ |
2314 def __init__(self, revs1, revs2): |
2319 def __init__(self, revs1, revs2): |
2315 self._r1 = revs1 |
2320 self._r1 = revs1 |
2316 self._r2 = revs2 |
2321 self._r2 = revs2 |
2317 self._iter = None |
2322 self._iter = None |
2493 return orderedlazyset(self, lambda r: r not in x) |
2498 return orderedlazyset(self, lambda r: r not in x) |
2494 else: |
2499 else: |
2495 return orderedlazyset(self, lambda r: r not in x, ascending=False) |
2500 return orderedlazyset(self, lambda r: r not in x, ascending=False) |
2496 |
2501 |
2497 def __add__(self, x): |
2502 def __add__(self, x): |
2498 return lazyset(addset(self, x)) |
2503 return lazyset(_addset(self, x)) |
2499 |
2504 |
2500 def __len__(self): |
2505 def __len__(self): |
2501 if not self._hiddenrevs: |
2506 if not self._hiddenrevs: |
2502 return abs(self._end - self._start) |
2507 return abs(self._end - self._start) |
2503 else: |
2508 else: |