# HG changeset patch # User Augie Fackler # Date 1523678277 14400 # Node ID f7194c9250034440fbc2b1187c999a7b93b1d4e1 # Parent 73d0a3dd7e53e6c515b48a83854163b447ab0497 stringutil: make b prefixes on string output optional I need this to preserve some behavior in hook.py. Differential Revision: https://phab.mercurial-scm.org/D3359 diff -r 73d0a3dd7e53 -r f7194c925003 mercurial/utils/stringutil.py --- a/mercurial/utils/stringutil.py Fri Apr 13 23:55:37 2018 -0400 +++ b/mercurial/utils/stringutil.py Fri Apr 13 23:57:57 2018 -0400 @@ -23,19 +23,23 @@ pycompat, ) -def pprint(o): +def pprint(o, bprefix=True): """Pretty print an object.""" if isinstance(o, bytes): - return "b'%s'" % escapestr(o) + if bprefix: + return "b'%s'" % escapestr(o) + return "'%s'" % escapestr(o) elif isinstance(o, bytearray): # codecs.escape_encode() can't handle bytearray, so escapestr fails # without coercion. return "bytearray['%s']" % escapestr(bytes(o)) elif isinstance(o, list): - return '[%s]' % (b', '.join(pprint(a) for a in o)) + return '[%s]' % (b', '.join(pprint(a, bprefix=bprefix) for a in o)) elif isinstance(o, dict): return '{%s}' % (b', '.join( - '%s: %s' % (pprint(k), pprint(v)) for k, v in sorted(o.items()))) + '%s: %s' % (pprint(k, bprefix=bprefix), + pprint(v, bprefix=bprefix)) + for k, v in sorted(o.items()))) elif isinstance(o, bool): return b'True' if o else b'False' elif isinstance(o, int):