Let pprint() support sets and frozensets (suggested by David Mertz).

This commit is contained in:
Raymond Hettinger 2008-01-23 00:04:40 +00:00
parent 2230bcfe24
commit c226c31139
3 changed files with 20 additions and 2 deletions

View File

@ -25,6 +25,9 @@ width constraint.
dictionary was sorted only if its display required more than one line, although
that wasn't documented.
.. versionchanged:: 2.6
Added support for :class:`set` and :class:`frozenset`.
The :mod:`pprint` module defines one class:
.. First the implementation class:

View File

@ -162,11 +162,24 @@ class PrettyPrinter:
write('}')
return
if (issubclass(typ, list) and r is list.__repr__) or \
(issubclass(typ, tuple) and r is tuple.__repr__):
if ((issubclass(typ, list) and r is list.__repr__) or
(issubclass(typ, tuple) and r is tuple.__repr__) or
(issubclass(typ, set) and r is set.__repr__) or
(issubclass(typ, frozenset) and r is frozenset.__repr__)
):
if issubclass(typ, list):
write('[')
endchar = ']'
elif issubclass(typ, set):
write('set([')
endchar = '])'
object = sorted(object)
indent += 4
elif issubclass(typ, frozenset):
write('frozenset([')
endchar = '])'
object = sorted(object)
indent += 9
else:
write('(')
endchar = ')'

View File

@ -378,6 +378,8 @@ Core and builtins
Library
-------
- The pprint module now supports sets and frozensets.
- #1221598: add optional callbacks to ftplib.FTP's storbinary() and
storlines() methods. (Contributed by Phil Schwartz)