summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-09-08 20:22:46 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-09-08 20:22:46 (GMT)
commit46ab5d09518286aabdd57f67bfd2ae7a6451afa2 (patch)
tree68f17ed70167e51344160fa20739e77cfb2ebfcc
parent3c064c172a0f075ad94bfaafe8823a05bc9b7cb8 (diff)
downloadcpython-46ab5d09518286aabdd57f67bfd2ae7a6451afa2.zip
cpython-46ab5d09518286aabdd57f67bfd2ae7a6451afa2.tar.gz
cpython-46ab5d09518286aabdd57f67bfd2ae7a6451afa2.tar.bz2
Merged revisions 74723 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r74723 | mark.dickinson | 2009-09-08 21:20:19 +0100 (Tue, 08 Sep 2009) | 3 lines Issue #6857: Fix Decimal formatting to be consistent with existing float formatting: both are now right-aligned by default. ........
-rw-r--r--Lib/decimal.py5
-rw-r--r--Lib/test/test_decimal.py3
-rw-r--r--Misc/NEWS3
3 files changed, 9 insertions, 2 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index e3fa8cb..33f5391 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -5577,7 +5577,10 @@ def _parse_format_specifier(format_spec, _localeconv=None):
raise ValueError("Alignment conflicts with '0' in "
"format specifier: " + format_spec)
format_dict['fill'] = fill or ' '
- format_dict['align'] = align or '<'
+ # PEP 3101 originally specified that the default alignment should
+ # be left; it was later agreed that right-aligned makes more sense
+ # for numeric types. See http://bugs.python.org/issue6857.
+ format_dict['align'] = align or '>'
# default sign handling: '-' for negative, '' for positive
if format_dict['sign'] is None:
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index e3e50f0..39a0ad5 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -701,6 +701,7 @@ class DecimalFormatTest(unittest.TestCase):
('', '1.00', '1.00'),
# test alignment and padding
+ ('6', '123', ' 123'),
('<6', '123', '123 '),
('>6', '123', ' 123'),
('^6', '123', ' 123 '),
@@ -730,7 +731,7 @@ class DecimalFormatTest(unittest.TestCase):
(',', '-1234567', '-1,234,567'),
(',', '-123456', '-123,456'),
('7,', '123456', '123,456'),
- ('8,', '123456', '123,456 '),
+ ('8,', '123456', ' 123,456'),
('08,', '123456', '0,123,456'), # special case: extra 0 needed
('+08,', '123456', '+123,456'), # but not if there's a sign
(' 08,', '123456', ' 123,456'),
diff --git a/Misc/NEWS b/Misc/NEWS
index c1b1775..a1def5c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -70,6 +70,9 @@ C-API
Library
-------
+- Issue #6857: Default format() alignment should be '>' for Decimal
+ instances.
+
- Issue #6795: int(Decimal('nan')) now raises ValueError instead of
returning NaN or raising InvalidContext. Also, fix infinite recursion
in long(Decimal('nan')).