Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revset.py @ 22793:ff6689b47e48
addset: drop the leading underscore from the class name
This class is now a real smartset.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Fri, 03 Oct 2014 20:18:48 -0700 |
parents | bec4365a0707 |
children | 4aa1bfb54f43 |
comparison
equal
deleted
inserted
replaced
22792:bec4365a0707 | 22793:ff6689b47e48 |
---|---|
666 # in the correct order. | 666 # in the correct order. |
667 args.ascending() | 667 args.ascending() |
668 result = (filteredset(s, subset.__contains__, ascending=True) + | 668 result = (filteredset(s, subset.__contains__, ascending=True) + |
669 filteredset(args, subset.__contains__, ascending=True)) | 669 filteredset(args, subset.__contains__, ascending=True)) |
670 | 670 |
671 # Wrap result in a filteredset since it's an _addset, which doesn't | 671 # Wrap result in a filteredset since it's an addset, which doesn't |
672 # implement all the necessary functions to be consumed by callers. | 672 # implement all the necessary functions to be consumed by callers. |
673 return filteredset(result, lambda r: True, ascending=True) | 673 return filteredset(result, lambda r: True, ascending=True) |
674 | 674 |
675 def descendants(repo, subset, x): | 675 def descendants(repo, subset, x): |
676 """``descendants(set)`` | 676 """``descendants(set)`` |
2283 kwargs = {} | 2283 kwargs = {} |
2284 if self.isascending() and other.isascending(): | 2284 if self.isascending() and other.isascending(): |
2285 kwargs['ascending'] = True | 2285 kwargs['ascending'] = True |
2286 if self.isdescending() and other.isdescending(): | 2286 if self.isdescending() and other.isdescending(): |
2287 kwargs['ascending'] = False | 2287 kwargs['ascending'] = False |
2288 return _addset(self, other, **kwargs) | 2288 return addset(self, other, **kwargs) |
2289 | 2289 |
2290 def __sub__(self, other): | 2290 def __sub__(self, other): |
2291 """Returns a new object with the substraction of the two collections. | 2291 """Returns a new object with the substraction of the two collections. |
2292 | 2292 |
2293 This is part of the mandatory API for smartset.""" | 2293 This is part of the mandatory API for smartset.""" |
2458 return self._ascending is not None and self._ascending | 2458 return self._ascending is not None and self._ascending |
2459 | 2459 |
2460 def isdescending(self): | 2460 def isdescending(self): |
2461 return self._ascending is not None and not self._ascending | 2461 return self._ascending is not None and not self._ascending |
2462 | 2462 |
2463 class _addset(abstractsmartset): | 2463 class addset(abstractsmartset): |
2464 """Represent the addition of two sets | 2464 """Represent the addition of two sets |
2465 | 2465 |
2466 Wrapper structure for lazily adding two structures without losing much | 2466 Wrapper structure for lazily adding two structures without losing much |
2467 performance on the __contains__ method | 2467 performance on the __contains__ method |
2468 | 2468 |