Issue #19137: The pprint module now correctly formats instances of set and

frozenset subclasses.
This commit is contained in:
Serhiy Storchaka 2013-10-02 11:40:49 +03:00
parent 224c87d60c
commit 51844384f4
3 changed files with 84 additions and 28 deletions

View file

@ -205,24 +205,22 @@ class PrettyPrinter:
if issubclass(typ, list):
write('[')
endchar = ']'
elif issubclass(typ, set):
if not length:
write('set()')
return
write('{')
endchar = '}'
object = sorted(object, key=_safe_key)
elif issubclass(typ, frozenset):
if not length:
write('frozenset()')
return
write('frozenset({')
endchar = '})'
object = sorted(object, key=_safe_key)
indent += 10
else:
elif issubclass(typ, tuple):
write('(')
endchar = ')'
else:
if not length:
write(rep)
return
if typ is set:
write('{')
endchar = '}'
else:
write(typ.__name__)
write('({')
endchar = '})'
indent += len(typ.__name__) + 1
object = sorted(object, key=_safe_key)
if self._indent_per_level > 1:
write((self._indent_per_level - 1) * ' ')
if length: