equal
deleted
inserted
replaced
150 def _slice(self, start, stop): |
150 def _slice(self, start, stop): |
151 # sub classes may override this. start and stop must not be negative, |
151 # sub classes may override this. start and stop must not be negative, |
152 # but start > stop is allowed, which should be an empty set. |
152 # but start > stop is allowed, which should be an empty set. |
153 ys = [] |
153 ys = [] |
154 it = iter(self) |
154 it = iter(self) |
155 for x in xrange(start): |
155 for x in pycompat.xrange(start): |
156 y = next(it, None) |
156 y = next(it, None) |
157 if y is None: |
157 if y is None: |
158 break |
158 break |
159 for x in xrange(stop - start): |
159 for x in pycompat.xrange(stop - start): |
160 y = next(it, None) |
160 y = next(it, None) |
161 if y is None: |
161 if y is None: |
162 break |
162 break |
163 ys.append(y) |
163 ys.append(y) |
164 return baseset(ys, datarepr=('slice=%d:%d %r', start, stop, self)) |
164 return baseset(ys, datarepr=('slice=%d:%d %r', start, stop, self)) |
1003 return self.fastasc() |
1003 return self.fastasc() |
1004 else: |
1004 else: |
1005 return self.fastdesc() |
1005 return self.fastdesc() |
1006 |
1006 |
1007 def fastasc(self): |
1007 def fastasc(self): |
1008 iterrange = xrange(self._start, self._end) |
1008 iterrange = pycompat.xrange(self._start, self._end) |
1009 if self._hiddenrevs: |
1009 if self._hiddenrevs: |
1010 return self._iterfilter(iterrange) |
1010 return self._iterfilter(iterrange) |
1011 return iter(iterrange) |
1011 return iter(iterrange) |
1012 |
1012 |
1013 def fastdesc(self): |
1013 def fastdesc(self): |
1014 iterrange = xrange(self._end - 1, self._start - 1, -1) |
1014 iterrange = pycompat.xrange(self._end - 1, self._start - 1, -1) |
1015 if self._hiddenrevs: |
1015 if self._hiddenrevs: |
1016 return self._iterfilter(iterrange) |
1016 return self._iterfilter(iterrange) |
1017 return iter(iterrange) |
1017 return iter(iterrange) |
1018 |
1018 |
1019 def __contains__(self, rev): |
1019 def __contains__(self, rev): |