mercurial/smartset.py
changeset 38783 e7aa113b14f7
parent 38576 a3130208db1c
child 40233 6309128ff61f
equal deleted inserted replaced
38782:7eba8f83129b 38783:e7aa113b14f7
   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):