Skip to content

Commit

Permalink
Docs: Link tokens in the format string grammars (python#108184)
Browse files Browse the repository at this point in the history
Co-authored-by: Adam Turner <[email protected]>
Co-authored-by: Sergey B Kirpichev <[email protected]>
  • Loading branch information
3 people authored and kulikjak committed Jan 22, 2024
1 parent 0f6dcf2 commit f816d9b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
14 changes: 7 additions & 7 deletions Doc/library/string.rst
Original file line number Diff line number Diff line change
Expand Up @@ -208,13 +208,13 @@ The grammar for a replacement field is as follows:

.. productionlist:: format-string
replacement_field: "{" [`field_name`] ["!" `conversion`] [":" `format_spec`] "}"
field_name: arg_name ("." `attribute_name` | "[" `element_index` "]")*
arg_name: [`identifier` | `digit`+]
attribute_name: `identifier`
element_index: `digit`+ | `index_string`
field_name: `arg_name` ("." `attribute_name` | "[" `element_index` "]")*
arg_name: [`~python-grammar:identifier` | `~python-grammar:digit`+]
attribute_name: `~python-grammar:identifier`
element_index: `~python-grammar:digit`+ | `index_string`
index_string: <any source character except "]"> +
conversion: "r" | "s" | "a"
format_spec: <described in the next section>
format_spec: `format-spec:format_spec`

In less formal terms, the replacement field can start with a *field_name* that specifies
the object whose value is to be formatted and inserted
Expand Down Expand Up @@ -316,9 +316,9 @@ The general form of a *standard format specifier* is:
fill: <any character>
align: "<" | ">" | "=" | "^"
sign: "+" | "-" | " "
width: `digit`+
width: `~python-grammar:digit`+
grouping_option: "_" | ","
precision: `digit`+
precision: `~python-grammar:digit`+
type: "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

If a valid *align* value is specified, it can be preceded by a *fill*
Expand Down
1 change: 0 additions & 1 deletion Doc/tools/.nitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ Doc/library/smtplib.rst
Doc/library/socket.rst
Doc/library/ssl.rst
Doc/library/stdtypes.rst
Doc/library/string.rst
Doc/library/subprocess.rst
Doc/library/termios.rst
Doc/library/test.rst
Expand Down
5 changes: 5 additions & 0 deletions Doc/tools/extensions/pyspecific.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@
Body.enum.converters['lowerroman'] = \
Body.enum.converters['upperroman'] = lambda x: None

# monkey-patch the productionlist directive to allow hyphens in group names
# https://github.com/sphinx-doc/sphinx/issues/11854
from sphinx.domains import std

std.token_re = re.compile(r'`((~?[\w-]*:)?\w+)`')

# Support for marking up and linking to bugs.python.org issues

Expand Down

0 comments on commit f816d9b

Please sign in to comment.