mercurial/smartset.py
changeset 49284 d44e3c45f0e4
parent 48946 642e31cb55f0
child 49286 b2e05a8e15d1
equal deleted inserted replaced
49283:44b26349127b 49284:d44e3c45f0e4
   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):