mercurial/revset.py
changeset 22798 586d7058ea48
parent 22797 61ecabeeadb3
child 22799 bafa371d7af3
equal deleted inserted replaced
22797:61ecabeeadb3 22798:586d7058ea48
  2619     def __init__(self, gen, iterasc=None):
  2619     def __init__(self, gen, iterasc=None):
  2620         """
  2620         """
  2621         gen: a generator producing the values for the generatorset.
  2621         gen: a generator producing the values for the generatorset.
  2622         """
  2622         """
  2623         self._gen = gen
  2623         self._gen = gen
       
  2624         self._asclist = None
  2624         self._cache = {}
  2625         self._cache = {}
  2625         self._genlist = []
  2626         self._genlist = []
  2626         self._finished = False
  2627         self._finished = False
  2627         if iterasc is not None:
  2628         if iterasc is not None:
  2628             if iterasc:
  2629             if iterasc:
  2710         genlist = self._genlist.append
  2711         genlist = self._genlist.append
  2711         for item in self._gen:
  2712         for item in self._gen:
  2712             cache[item] = True
  2713             cache[item] = True
  2713             genlist(item)
  2714             genlist(item)
  2714             yield item
  2715             yield item
  2715         self._finished = True
  2716         if not self._finished:
       
  2717             self._finished = True
       
  2718             asc = self._genlist[:]
       
  2719             asc.sort()
       
  2720             self._asclist = asc
       
  2721             self.fastasc = asc.__iter__
       
  2722             self.fastdesc = asc.__reversed__
  2716 
  2723 
  2717     def set(self):
  2724     def set(self):
  2718         return self
  2725         return self
  2719 
  2726 
  2720     def sort(self, reverse=False):
  2727     def sort(self, reverse=False):