equal
deleted
inserted
replaced
34 def escapedata(s): |
34 def escapedata(s): |
35 if isinstance(s, bytearray): |
35 if isinstance(s, bytearray): |
36 s = bytes(s) |
36 s = bytes(s) |
37 |
37 |
38 return _DATA_ESCAPE_RE.sub(lambda m: _DATA_ESCAPE_MAP[m.group(0)], s) |
38 return _DATA_ESCAPE_RE.sub(lambda m: _DATA_ESCAPE_MAP[m.group(0)], s) |
|
39 |
|
40 def pprint(o): |
|
41 """Pretty print an object.""" |
|
42 if isinstance(o, (bytes, bytearray)): |
|
43 return "b'%s'" % escapedata(o) |
|
44 elif isinstance(o, list): |
|
45 return '[%s]' % (b', '.join(pprint(a) for a in o)) |
|
46 elif isinstance(o, dict): |
|
47 return '{%s}' % (b', '.join( |
|
48 '%s: %s' % (pprint(k), pprint(v)) for k, v in sorted(o.items()))) |
|
49 elif isinstance(o, bool): |
|
50 return b'True' if o else b'False' |
|
51 else: |
|
52 raise error.ProgrammingError('do not know how to format %r' % o) |
39 |
53 |
40 def binary(s): |
54 def binary(s): |
41 """return true if a string is binary data""" |
55 """return true if a string is binary data""" |
42 return bool(s and '\0' in s) |
56 return bool(s and '\0' in s) |
43 |
57 |