mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
[3.14] gh-130662: Accept leading zeros in precision/width for Fraction's formatting (GH-130663) (#136361)
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
parent
57d6db529b
commit
b2a2f032dc
3 changed files with 7 additions and 8 deletions
|
|
@ -168,9 +168,9 @@ def _round_to_figures(n, d, figures):
|
|||
# A '0' that's *not* followed by another digit is parsed as a minimum width
|
||||
# rather than a zeropad flag.
|
||||
(?P<zeropad>0(?=[0-9]))?
|
||||
(?P<minimumwidth>0|[1-9][0-9]*)?
|
||||
(?P<minimumwidth>[0-9]+)?
|
||||
(?P<thousands_sep>[,_])?
|
||||
(?:\.(?P<precision>0|[1-9][0-9]*))?
|
||||
(?:\.(?P<precision>[0-9]+))?
|
||||
(?P<presentation_type>[eEfFgG%])
|
||||
""", re.DOTALL | re.VERBOSE).fullmatch
|
||||
|
||||
|
|
|
|||
|
|
@ -1515,6 +1515,8 @@ def test_format_f_presentation_type(self):
|
|||
(F(51, 1000), '.1f', '0.1'),
|
||||
(F(149, 1000), '.1f', '0.1'),
|
||||
(F(151, 1000), '.1f', '0.2'),
|
||||
(F(22, 7), '.02f', '3.14'), # issue gh-130662
|
||||
(F(22, 7), '005.02f', '03.14'),
|
||||
]
|
||||
for fraction, spec, expected in testcases:
|
||||
with self.subTest(fraction=fraction, spec=spec):
|
||||
|
|
@ -1613,12 +1615,6 @@ def test_invalid_formats(self):
|
|||
'=010%',
|
||||
'>00.2f',
|
||||
'>00f',
|
||||
# Too many zeros - minimum width should not have leading zeros
|
||||
'006f',
|
||||
# Leading zeros in precision
|
||||
'.010f',
|
||||
'.02f',
|
||||
'.000f',
|
||||
# Missing precision
|
||||
'.e',
|
||||
'.f',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
Accept leading zeros in precision and width fields for
|
||||
:class:`~fractions.Fraction` formatting, for example ``format(Fraction(1,
|
||||
3), '.016f')``.
|
||||
Loading…
Add table
Add a link
Reference in a new issue