Fixed issue #2888. Now the behaviour of pprint when working with nested

structures follows the common sense (and works like in 2.5 and 3.0).
This commit is contained in:
Facundo Batista 2008-06-21 17:43:56 +00:00
parent 8e1c52ac0e
commit 2da91c375b
4 changed files with 17 additions and 2 deletions

View File

@ -194,7 +194,7 @@ def _format(self, object, stream, indent, allowance, context, level):
else: else:
write('(') write('(')
endchar = ')' endchar = ')'
if self._indent_per_level > 1: if self._indent_per_level > 1 and sepLines:
write((self._indent_per_level - 1) * ' ') write((self._indent_per_level - 1) * ' ')
if length: if length:
context[objid] = 1 context[objid] = 1

View File

@ -170,6 +170,17 @@ def test_basic_line_wrap(self):
for type in [list, list2]: for type in [list, list2]:
self.assertEqual(pprint.pformat(type(o), indent=4), exp) self.assertEqual(pprint.pformat(type(o), indent=4), exp)
def test_nested_indentations(self):
o1 = list(range(10))
o2 = dict(first=1, second=2, third=3)
o = [o1, o2]
expected = """\
[ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
{ 'first': 1,
'second': 2,
'third': 3}]"""
self.assertEqual(pprint.pformat(o, indent=4, width=42), expected)
def test_sorted_dict(self): def test_sorted_dict(self):
# Starting in Python 2.5, pprint sorts dict displays by key regardless # Starting in Python 2.5, pprint sorts dict displays by key regardless
# of how small the dictionary may be. # of how small the dictionary may be.

View File

@ -108,6 +108,10 @@ Extension Modules
Library Library
------- -------
- Issue #2888: Fixed the behaviour of pprint when working with nested
structures, to match the behaviour of 2.5 and 3.0 (now follows the common
sense).
- Issue #3136: fileConfig()'s disabling of old loggers is now conditional via - Issue #3136: fileConfig()'s disabling of old loggers is now conditional via
an optional disable_existing_loggers parameter, but the default value is an optional disable_existing_loggers parameter, but the default value is
such that the old behaviour is preserved. Thanks to Leandro Lucarella for such that the old behaviour is preserved. Thanks to Leandro Lucarella for