mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
[3.14] gh-130664: Treat '0' fill character with align '=' as zero-padding for Fraction's (GH-131067) (GH-136241)
(cherry picked from commit c113a8e523)
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
This commit is contained in:
parent
150262db4c
commit
4877f4343c
3 changed files with 9 additions and 5 deletions
|
|
@ -504,6 +504,9 @@ def _format_float_style(self, match):
|
|||
trim_point = not alternate_form
|
||||
exponent_indicator = "E" if presentation_type in "EFG" else "e"
|
||||
|
||||
if align == '=' and fill == '0':
|
||||
zeropad = True
|
||||
|
||||
# Round to get the digits we need, figure out where to place the point,
|
||||
# and decide whether to use scientific notation. 'point_pos' is the
|
||||
# relative to the _end_ of the digit string: that is, it's the number
|
||||
|
|
|
|||
|
|
@ -1480,11 +1480,8 @@ def test_format_f_presentation_type(self):
|
|||
(F('-1234.5678'), '08,.0f', '-001,235'),
|
||||
(F('-1234.5678'), '09,.0f', '-0,001,235'),
|
||||
# Corner-case - zero-padding specified through fill and align
|
||||
# instead of the zero-pad character - in this case, treat '0' as a
|
||||
# regular fill character and don't attempt to insert commas into
|
||||
# the filled portion. This differs from the int and float
|
||||
# behaviour.
|
||||
(F('1234.5678'), '0=12,.2f', '00001,234.57'),
|
||||
# instead of the zero-pad character.
|
||||
(F('1234.5678'), '0=12,.2f', '0,001,234.57'),
|
||||
# Corner case where it's not clear whether the '0' indicates zero
|
||||
# padding or gives the minimum width, but there's still an obvious
|
||||
# answer to give. We want this to work in case the minimum width
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
Handle corner-case for :class:`~fractions.Fraction`'s formatting: treat
|
||||
zero-padding (preceding the width field by a zero (``'0'``) character) as an
|
||||
equivalent to a fill character of ``'0'`` with an alignment type of ``'='``,
|
||||
just as in case of :class:`float`'s.
|
||||
Loading…
Add table
Add a link
Reference in a new issue