[PATCH 2 of 5] generatorset: implement __len__

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Oct 15 14:57:59 CDT 2014


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1413372535 25200
#      Wed Oct 15 04:28:55 2014 -0700
# Node ID 98ec45f8b54e2935711b64132f179924586ccc33
# Parent  e642e0ab2f8f535f7afc828e0af8fb50deeee6b6
generatorset: implement __len__

It was the only smartset class without a `__len__` implementation.

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2774,10 +2774,15 @@ class generatorset(abstractsmartset):
             asc.sort()
             self._asclist = asc
             self.fastasc = asc.__iter__
             self.fastdesc = asc.__reversed__
 
+    def __len__(self):
+        for x in self._consumegen():
+            pass
+        return len(self._genlist)
+
     def sort(self, reverse=False):
         self._ascending = not reverse
 
     def reverse(self):
         self._ascending = not self._ascending


More information about the Mercurial-devel mailing list