mercurial/utils/stringutil.py
changeset 37750 f7194c925003
parent 37749 73d0a3dd7e53
child 37932 bf6bb710b40f
equal deleted inserted replaced
37749:73d0a3dd7e53 37750:f7194c925003
    21     encoding,
    21     encoding,
    22     error,
    22     error,
    23     pycompat,
    23     pycompat,
    24 )
    24 )
    25 
    25 
    26 def pprint(o):
    26 def pprint(o, bprefix=True):
    27     """Pretty print an object."""
    27     """Pretty print an object."""
    28     if isinstance(o, bytes):
    28     if isinstance(o, bytes):
    29         return "b'%s'" % escapestr(o)
    29         if bprefix:
       
    30             return "b'%s'" % escapestr(o)
       
    31         return "'%s'" % escapestr(o)
    30     elif isinstance(o, bytearray):
    32     elif isinstance(o, bytearray):
    31         # codecs.escape_encode() can't handle bytearray, so escapestr fails
    33         # codecs.escape_encode() can't handle bytearray, so escapestr fails
    32         # without coercion.
    34         # without coercion.
    33         return "bytearray['%s']" % escapestr(bytes(o))
    35         return "bytearray['%s']" % escapestr(bytes(o))
    34     elif isinstance(o, list):
    36     elif isinstance(o, list):
    35         return '[%s]' % (b', '.join(pprint(a) for a in o))
    37         return '[%s]' % (b', '.join(pprint(a, bprefix=bprefix) for a in o))
    36     elif isinstance(o, dict):
    38     elif isinstance(o, dict):
    37         return '{%s}' % (b', '.join(
    39         return '{%s}' % (b', '.join(
    38             '%s: %s' % (pprint(k), pprint(v)) for k, v in sorted(o.items())))
    40             '%s: %s' % (pprint(k, bprefix=bprefix),
       
    41                         pprint(v, bprefix=bprefix))
       
    42             for k, v in sorted(o.items())))
    39     elif isinstance(o, bool):
    43     elif isinstance(o, bool):
    40         return b'True' if o else b'False'
    44         return b'True' if o else b'False'
    41     elif isinstance(o, int):
    45     elif isinstance(o, int):
    42         return '%d' % o
    46         return '%d' % o
    43     elif isinstance(o, float):
    47     elif isinstance(o, float):