def dict_repr(self, d, recursive): if recursive: return _add_subclass_info(text_('{...}'), d, dict) buf = ['{'] for idx, (key, value) in enumerate(iteritems_(d)): if idx: buf.append(', ') buf.append('<span class="pair"><span class="key">%s</span>: ' '<span class="value">%s</span></span>' % (self.repr(key), self.repr(value))) buf.append('}') return _add_subclass_info(text_(''.join(buf)), d, dict)
def dict_repr(self, d, recursive, limit=5): if recursive: return _add_subclass_info(text_('{...}'), d, dict) buf = ['{'] have_extended_section = False for idx, (key, value) in enumerate(iteritems_(d)): if idx: buf.append(', ') if idx == limit - 1: buf.append('<span class="extended">') have_extended_section = True buf.append('<span class="pair"><span class="key">%s</span>: ' '<span class="value">%s</span></span>' % (self.repr(key), self.repr(value))) if have_extended_section: buf.append('</span>') buf.append('}') return _add_subclass_info(text_(''.join(buf)), d, dict)
def dump_object(self, obj): repr = items = None if isinstance(obj, dict): title = 'Contents of' items = [] for key, value in iteritems_(obj): if not isinstance(key, string_types): items = None break items.append((key, self.repr(value))) if items is None: items = [] repr = self.repr(obj) for key in dir(obj): try: items.append((key, self.repr(getattr(obj, key)))) except Exception: pass title = 'Details for' title += ' ' + object.__repr__(obj)[1:-1] return self.render_object_dump(items, title, repr)