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 pycompat.xrange(start): |
155 for x in range(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 pycompat.xrange(stop - start): |
159 for x in range(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=(b'slice=%d:%d %r', start, stop, self)) |
164 return baseset(ys, datarepr=(b'slice=%d:%d %r', start, stop, self)) |
1028 return self.fastasc() |
1028 return self.fastasc() |
1029 else: |
1029 else: |
1030 return self.fastdesc() |
1030 return self.fastdesc() |
1031 |
1031 |
1032 def fastasc(self): |
1032 def fastasc(self): |
1033 iterrange = pycompat.xrange(self._start, self._end) |
1033 iterrange = range(self._start, self._end) |
1034 if self._hiddenrevs: |
1034 if self._hiddenrevs: |
1035 return self._iterfilter(iterrange) |
1035 return self._iterfilter(iterrange) |
1036 return iter(iterrange) |
1036 return iter(iterrange) |
1037 |
1037 |
1038 def fastdesc(self): |
1038 def fastdesc(self): |
1039 iterrange = pycompat.xrange(self._end - 1, self._start - 1, -1) |
1039 iterrange = range(self._end - 1, self._start - 1, -1) |
1040 if self._hiddenrevs: |
1040 if self._hiddenrevs: |
1041 return self._iterfilter(iterrange) |
1041 return self._iterfilter(iterrange) |
1042 return iter(iterrange) |
1042 return iter(iterrange) |
1043 |
1043 |
1044 def __contains__(self, rev): |
1044 def __contains__(self, rev): |