D4396: stringutil: teach pprint() to recognize generators

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Mon Aug 27 16:15:37 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Otherwise they get serialized as e.g.
  
  <generator object X at 0x7f543d3d68c0>

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4396

AFFECTED FILES
  mercurial/utils/stringutil.py

CHANGE DETAILS

diff --git a/mercurial/utils/stringutil.py b/mercurial/utils/stringutil.py
--- a/mercurial/utils/stringutil.py
+++ b/mercurial/utils/stringutil.py
@@ -13,6 +13,7 @@
 import codecs
 import re as remod
 import textwrap
+import types
 
 from ..i18n import _
 from ..thirdparty import attr
@@ -64,6 +65,8 @@
             pprint(k, bprefix=bprefix) for k in sorted(o)))
     elif isinstance(o, tuple):
         return '(%s)' % (b', '.join(pprint(a, bprefix=bprefix) for a in o))
+    elif isinstance(o, types.GeneratorType):
+        return 'gen[%s]' % (b', '.join(pprint(a, bprefix=bprefix) for a in o))
     else:
         return pycompat.byterepr(o)
 



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list