self.assertGdbRepr({})
self.assertGdbRepr({'foo': 'bar'}, "{'foo': 'bar'}")
# Python preserves insertion order since 3.6
- self.assertGdbRepr({'foo': 'bar', 'douglas': 42}, "{'foo': 'bar', 'douglas': 42}")
+ self.assertGdbRepr({'foo': 'bar', 'douglas': 42},
+ "{'foo': 'bar', 'douglas': 42}")
+
+ # frozendict
+ self.assertGdbRepr(frozendict(),
+ "frozendict({})")
+ self.assertGdbRepr(frozendict({'foo': 'bar', 'douglas': 42}),
+ "frozendict({'foo': 'bar', 'douglas': 42})")
def test_lists(self):
'Verify the pretty-printing of lists'
'frame': PyFrameObjectPtr,
'set' : PySetObjectPtr,
'frozenset' : PySetObjectPtr,
+ 'frozendict' : PyDictObjectPtr,
'builtin_function_or_method' : PyCFunctionObjectPtr,
'method-wrapper': wrapperobject,
}
return result
def write_repr(self, out, visited):
+ tp_name = self.safe_tp_name()
+ is_frozendict = (tp_name == "frozendict")
+
# Guard against infinite loops:
if self.as_address() in visited:
- out.write('{...}')
+ if is_frozendict:
+ out.write(tp_name + '({...})')
+ else:
+ out.write('{...}')
return
visited.add(self.as_address())
+ if is_frozendict:
+ out.write(tp_name + '(')
out.write('{')
first = True
for pyop_key, pyop_value in self.iteritems():
out.write(': ')
pyop_value.write_repr(out, visited)
out.write('}')
+ if is_frozendict:
+ out.write(')')
@staticmethod
def _get_entries(keys):