Skip to content

Error in Format Specification Mini-Language concerning precision_with_grouping in 3.14 #134449

Open
@jonathanpoelen

Description

@jonathanpoelen

Documentation

On this page: https://docs.python.org/3.14/library/string.html#grammar-token-format-spec-format_spec

format_spec:             [options][width_and_precision][type]
options:                 [[fill]align][sign]["z"]["#"]["0"]
fill:                    <any character>
align:                   "<" | ">" | "=" | "^"
sign:                    "+" | "-" | " "
width_and_precision:     [width_with_grouping][precision_with_grouping]
width_with_grouping:     [width][grouping]
precision_with_grouping: "." [precision][grouping]
width:                   digit+
precision:               digit+
grouping:                "," | "_"
type:                    "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g"
                         | "G" | "n" | "o" | "s" | "x" | "X" | "%"

The precision_with_grouping syntaxe is wrong, because it accepts . without precision or grouping. But

>>> f'{1234.1234:.f}'
Traceback (most recent call last):
  File "<python-input-17>", line 1, in <module>
    f'{1234.1234:.f}'
      ^^^^^^^^^^^^^^
ValueError: Format specifier missing precision

(The error does not mention grouping either)

The right syntax should be

precision_with_grouping: "." precision [grouping] | "." grouping

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.14bugs and security fixes3.15new features, bugs and security fixesdocsDocumentation in the Doc dirtype-bugAn unexpected behavior, bug, or error

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions