Kaydet (Commit) 2da91c37 authored tarafından Facundo Batista's avatar Facundo Batista

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).
üst 8e1c52ac
...@@ -56,7 +56,7 @@ The :mod:`pprint` module defines one class: ...@@ -56,7 +56,7 @@ The :mod:`pprint` module defines one class:
>>> stuff.insert(0, stuff[:]) >>> stuff.insert(0, stuff[:])
>>> pp = pprint.PrettyPrinter(indent=4) >>> pp = pprint.PrettyPrinter(indent=4)
>>> pp.pprint(stuff) >>> pp.pprint(stuff)
[ [ 'spam', 'eggs', 'lumberjack', 'knights', 'ni'], [ ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
'spam', 'spam',
'eggs', 'eggs',
'lumberjack', 'lumberjack',
......
...@@ -194,7 +194,7 @@ class PrettyPrinter: ...@@ -194,7 +194,7 @@ class PrettyPrinter:
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
......
...@@ -170,6 +170,17 @@ class QueryTestCase(unittest.TestCase): ...@@ -170,6 +170,17 @@ class QueryTestCase(unittest.TestCase):
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.
......
...@@ -108,6 +108,10 @@ Extension Modules ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment