bpo-42914: add a pprint underscore_numbers option (GH-24864)

pprint() gains a new boolean underscore_numbers kwarg to emit
integers with thousands separated by an underscore character
for improved readability (for example 1_000_000 instead of 1000000).
This commit is contained in:
sblondon 2021-03-24 09:23:20 +01:00 committed by GitHub
parent a02683ac38
commit 3ba3d513b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 12 deletions

View file

@ -206,6 +206,7 @@ class QueryTestCase(unittest.TestCase):
self.assertEqual(pprint.pformat(simple), native)
self.assertEqual(pprint.pformat(simple, width=1, indent=0)
.replace('\n', ' '), native)
self.assertEqual(pprint.pformat(simple, underscore_numbers=True), native)
self.assertEqual(pprint.saferepr(simple), native)
def test_container_repr_override_called(self):
@ -323,6 +324,18 @@ class QueryTestCase(unittest.TestCase):
'1 '
'2']]]]]""")
def test_integer(self):
self.assertEqual(pprint.pformat(1234567), '1234567')
self.assertEqual(pprint.pformat(1234567, underscore_numbers=True), '1_234_567')
class Temperature(int):
def __new__(cls, celsius_degrees):
return super().__new__(Temperature, celsius_degrees)
def __repr__(self):
kelvin_degrees = self + 273.15
return f"{kelvin_degrees}°K"
self.assertEqual(pprint.pformat(Temperature(1000)), '1273.15°K')
def test_sorted_dict(self):
# Starting in Python 2.5, pprint sorts dict displays by key regardless
# of how small the dictionary may be.