Commit ddb961d2 authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

bpo-35054: Add more index entries for symbols. (GH-10064)

parent 3ec9af75
...@@ -295,6 +295,8 @@ On top of the core functionality, :class:`ConfigParser` supports ...@@ -295,6 +295,8 @@ On top of the core functionality, :class:`ConfigParser` supports
interpolation. This means values can be preprocessed before returning them interpolation. This means values can be preprocessed before returning them
from ``get()`` calls. from ``get()`` calls.
.. index:: single: %; interpolation in configuration files
.. class:: BasicInterpolation() .. class:: BasicInterpolation()
The default implementation used by :class:`ConfigParser`. It enables The default implementation used by :class:`ConfigParser`. It enables
...@@ -323,6 +325,8 @@ from ``get()`` calls. ...@@ -323,6 +325,8 @@ from ``get()`` calls.
``%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(my_dir)s/Pictures`` as the value of ``my_pictures`` and
``%(home_dir)s/lumberjack`` as the value of ``my_dir``. ``%(home_dir)s/lumberjack`` as the value of ``my_dir``.
.. index:: single: $; interpolation in configuration files
.. class:: ExtendedInterpolation() .. class:: ExtendedInterpolation()
An alternative handler for interpolation which implements a more advanced An alternative handler for interpolation which implements a more advanced
......
...@@ -51,9 +51,10 @@ A small number of constants live in the built-in namespace. They are: ...@@ -51,9 +51,10 @@ A small number of constants live in the built-in namespace. They are:
See :exc:`NotImplementedError` for details on when to use it. See :exc:`NotImplementedError` for details on when to use it.
.. index:: single: ...; ellipsis literal
.. data:: Ellipsis .. data:: Ellipsis
The same as the ellipsis literal "...". Special value used mostly in conjunction The same as the ellipsis literal "``...``". Special value used mostly in conjunction
with extended slicing syntax for user-defined container data types. with extended slicing syntax for user-defined container data types.
......
...@@ -1999,6 +1999,9 @@ Class attributes: ...@@ -1999,6 +1999,9 @@ Class attributes:
The UTC timezone, ``timezone(timedelta(0))``. The UTC timezone, ``timezone(timedelta(0))``.
.. index::
single: %; datetime format
.. _strftime-strptime-behavior: .. _strftime-strptime-behavior:
:meth:`strftime` and :meth:`strptime` Behavior :meth:`strftime` and :meth:`strptime` Behavior
......
...@@ -321,6 +321,10 @@ but doctest isn't trying to do an exact emulation of any specific Python shell. ...@@ -321,6 +321,10 @@ but doctest isn't trying to do an exact emulation of any specific Python shell.
NO!!! NO!!!
>>> >>>
.. index::
single: >>>; interpreter prompt
single: ...; interpreter prompt
Any expected output must immediately follow the final ``'>>> '`` or ``'... '`` Any expected output must immediately follow the final ``'>>> '`` or ``'... '``
line containing the code, and the expected output (if any) extends to the next line containing the code, and the expected output (if any) extends to the next
``'>>> '`` or all-whitespace line. ``'>>> '`` or all-whitespace line.
...@@ -481,6 +485,8 @@ Some details you should read once, but won't need to remember: ...@@ -481,6 +485,8 @@ Some details you should read once, but won't need to remember:
to test a :exc:`SyntaxError` that omits the traceback header, you will need to to test a :exc:`SyntaxError` that omits the traceback header, you will need to
manually add the traceback header line to your test example. manually add the traceback header line to your test example.
.. index:: single: ^; caret
* For some :exc:`SyntaxError`\ s, Python displays the character position of the * For some :exc:`SyntaxError`\ s, Python displays the character position of the
syntax error, using a ``^`` marker:: syntax error, using a ``^`` marker::
...@@ -532,6 +538,7 @@ doctest decides whether actual output matches an example's expected output: ...@@ -532,6 +538,7 @@ doctest decides whether actual output matches an example's expected output:
option will probably go away, but not for several years. option will probably go away, but not for several years.
.. index:: single: <BLANKLINE>
.. data:: DONT_ACCEPT_BLANKLINE .. data:: DONT_ACCEPT_BLANKLINE
By default, if an expected output block contains a line containing only the By default, if an expected output block contains a line containing only the
...@@ -551,6 +558,7 @@ doctest decides whether actual output matches an example's expected output: ...@@ -551,6 +558,7 @@ doctest decides whether actual output matches an example's expected output:
your source. your source.
.. index:: single: ...; in doctests
.. data:: ELLIPSIS .. data:: ELLIPSIS
When specified, an ellipsis marker (``...``) in the expected output can match When specified, an ellipsis marker (``...``) in the expected output can match
...@@ -686,6 +694,10 @@ useful unless you intend to extend :mod:`doctest` internals via subclassing: ...@@ -686,6 +694,10 @@ useful unless you intend to extend :mod:`doctest` internals via subclassing:
MY_FLAG = register_optionflag('MY_FLAG') MY_FLAG = register_optionflag('MY_FLAG')
.. index::
single: #; in doctests
single: +; in doctests
single: -; in doctests
.. _doctest-directives: .. _doctest-directives:
Directives Directives
......
...@@ -61,6 +61,7 @@ class-based API instead. ...@@ -61,6 +61,7 @@ class-based API instead.
*domain*, which is returned. *domain*, which is returned.
.. index:: single: _; gettext
.. function:: gettext(message) .. function:: gettext(message)
Return the localized translation of *message*, based on the current global Return the localized translation of *message*, based on the current global
......
...@@ -160,6 +160,8 @@ the :mod:`glob` module.) ...@@ -160,6 +160,8 @@ the :mod:`glob` module.)
Accepts a :term:`path-like object`. Accepts a :term:`path-like object`.
.. index:: single: ~; home directory expansion
.. function:: expanduser(path) .. function:: expanduser(path)
On Unix and Windows, return the argument with an initial component of ``~`` or On Unix and Windows, return the argument with an initial component of ``~`` or
...@@ -183,6 +185,9 @@ the :mod:`glob` module.) ...@@ -183,6 +185,9 @@ the :mod:`glob` module.)
.. versionchanged:: 3.6 .. versionchanged:: 3.6
Accepts a :term:`path-like object`. Accepts a :term:`path-like object`.
.. index::
single: $; environment variables expansion
single: %; environment variables expansion (Windows)
.. function:: expandvars(path) .. function:: expandvars(path)
......
...@@ -4086,6 +4086,7 @@ are defined for all platforms. ...@@ -4086,6 +4086,7 @@ are defined for all platforms.
Higher-level operations on pathnames are defined in the :mod:`os.path` module. Higher-level operations on pathnames are defined in the :mod:`os.path` module.
.. index:: single: .; in pathnames
.. data:: curdir .. data:: curdir
The constant string used by the operating system to refer to the current The constant string used by the operating system to refer to the current
...@@ -4093,6 +4094,7 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module. ...@@ -4093,6 +4094,7 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module.
:mod:`os.path`. :mod:`os.path`.
.. index:: single: ..; in pathnames
.. data:: pardir .. data:: pardir
The constant string used by the operating system to refer to the parent The constant string used by the operating system to refer to the parent
...@@ -4100,6 +4102,8 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module. ...@@ -4100,6 +4102,8 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module.
:mod:`os.path`. :mod:`os.path`.
.. index:: single: /; in pathnames
.. index:: single: \; in pathnames (Windows)
.. data:: sep .. data:: sep
The character used by the operating system to separate pathname components. The character used by the operating system to separate pathname components.
...@@ -4109,6 +4113,7 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module. ...@@ -4109,6 +4113,7 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module.
useful. Also available via :mod:`os.path`. useful. Also available via :mod:`os.path`.
.. index:: single: /; in pathnames
.. data:: altsep .. data:: altsep
An alternative character used by the operating system to separate pathname An alternative character used by the operating system to separate pathname
...@@ -4117,12 +4122,14 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module. ...@@ -4117,12 +4122,14 @@ Higher-level operations on pathnames are defined in the :mod:`os.path` module.
:mod:`os.path`. :mod:`os.path`.
.. index:: single: .; in pathnames
.. data:: extsep .. data:: extsep
The character which separates the base filename from the extension; for example, The character which separates the base filename from the extension; for example,
the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`. the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`.
.. index:: single: :; path separator (POSIX)
.. data:: pathsep .. data:: pathsep
The character conventionally used by the operating system to separate search The character conventionally used by the operating system to separate search
......
This diff is collapsed.
...@@ -49,6 +49,10 @@ the key "include-system-site-packages" set to anything other than "false" ...@@ -49,6 +49,10 @@ the key "include-system-site-packages" set to anything other than "false"
(case-insensitive), the system-level prefixes will still also be (case-insensitive), the system-level prefixes will still also be
searched for site-packages; otherwise they won't. searched for site-packages; otherwise they won't.
.. index::
single: #; comment
statement: import
A path configuration file is a file whose name has the form :file:`{name}.pth` A path configuration file is a file whose name has the form :file:`{name}.pth`
and exists in one of the four directories mentioned above; its contents are and exists in one of the four directories mentioned above; its contents are
additional items (one per line) to be added to ``sys.path``. Non-existing items additional items (one per line) to be added to ``sys.path``. Non-existing items
......
...@@ -246,8 +246,12 @@ and imaginary parts. ...@@ -246,8 +246,12 @@ and imaginary parts.
builtin: int builtin: int
builtin: float builtin: float
builtin: complex builtin: complex
operator: + single: operator; +
operator: - single: +; unary operator
single: +; binary operator
single: operator; -
single: -; unary operator
single: -; binary operator
operator: * operator: *
operator: / operator: /
operator: // operator: //
...@@ -2115,8 +2119,7 @@ expression support in the :mod:`re` module). ...@@ -2115,8 +2119,7 @@ expression support in the :mod:`re` module).
single: string; interpolation, printf single: string; interpolation, printf
single: printf-style formatting single: printf-style formatting
single: sprintf-style formatting single: sprintf-style formatting
single: % formatting single: %; printf-style formatting
single: % interpolation
.. note:: .. note::
...@@ -2144,16 +2147,24 @@ components, which must occur in this order: ...@@ -2144,16 +2147,24 @@ components, which must occur in this order:
#. The ``'%'`` character, which marks the start of the specifier. #. The ``'%'`` character, which marks the start of the specifier.
.. index::
single: (; in printf-style formatting
single: ); in printf-style formatting
#. Mapping key (optional), consisting of a parenthesised sequence of characters #. Mapping key (optional), consisting of a parenthesised sequence of characters
(for example, ``(somename)``). (for example, ``(somename)``).
#. Conversion flags (optional), which affect the result of some conversion #. Conversion flags (optional), which affect the result of some conversion
types. types.
.. index:: single: *; in printf-style formatting
#. Minimum field width (optional). If specified as an ``'*'`` (asterisk), the #. Minimum field width (optional). If specified as an ``'*'`` (asterisk), the
actual width is read from the next element of the tuple in *values*, and the actual width is read from the next element of the tuple in *values*, and the
object to convert comes after the minimum field width and optional precision. object to convert comes after the minimum field width and optional precision.
.. index:: single: .; in printf-style formatting
#. Precision (optional), given as a ``'.'`` (dot) followed by the precision. If #. Precision (optional), given as a ``'.'`` (dot) followed by the precision. If
specified as ``'*'`` (an asterisk), the actual precision is read from the next specified as ``'*'`` (an asterisk), the actual precision is read from the next
element of the tuple in *values*, and the value to convert comes after the element of the tuple in *values*, and the value to convert comes after the
...@@ -2177,6 +2188,12 @@ sequential parameter list). ...@@ -2177,6 +2188,12 @@ sequential parameter list).
The conversion flag characters are: The conversion flag characters are:
.. index::
single: #; in printf-style formatting
single: -; in printf-style formatting
single: +; in printf-style formatting
single: space; in printf-style formatting
+---------+---------------------------------------------------------------------+ +---------+---------------------------------------------------------------------+
| Flag | Meaning | | Flag | Meaning |
+=========+=====================================================================+ +=========+=====================================================================+
...@@ -3229,18 +3246,17 @@ place, and instead produce new objects. ...@@ -3229,18 +3246,17 @@ place, and instead produce new objects.
---------------------------------- ----------------------------------
.. index:: .. index::
single: formatting, bytes (%) single: formatting; bytes (%)
single: formatting, bytearray (%) single: formatting; bytearray (%)
single: interpolation, bytes (%) single: interpolation; bytes (%)
single: interpolation, bytearray (%) single: interpolation; bytearray (%)
single: bytes; formatting single: bytes; formatting
single: bytearray; formatting single: bytearray; formatting
single: bytes; interpolation single: bytes; interpolation
single: bytearray; interpolation single: bytearray; interpolation
single: printf-style formatting single: printf-style formatting
single: sprintf-style formatting single: sprintf-style formatting
single: % formatting single: %; printf-style formatting
single: % interpolation
.. note:: .. note::
...@@ -3266,16 +3282,24 @@ components, which must occur in this order: ...@@ -3266,16 +3282,24 @@ components, which must occur in this order:
#. The ``'%'`` character, which marks the start of the specifier. #. The ``'%'`` character, which marks the start of the specifier.
.. index::
single: (; in printf-style formatting
single: ); in printf-style formatting
#. Mapping key (optional), consisting of a parenthesised sequence of characters #. Mapping key (optional), consisting of a parenthesised sequence of characters
(for example, ``(somename)``). (for example, ``(somename)``).
#. Conversion flags (optional), which affect the result of some conversion #. Conversion flags (optional), which affect the result of some conversion
types. types.
.. index:: single: *; in printf-style formatting
#. Minimum field width (optional). If specified as an ``'*'`` (asterisk), the #. Minimum field width (optional). If specified as an ``'*'`` (asterisk), the
actual width is read from the next element of the tuple in *values*, and the actual width is read from the next element of the tuple in *values*, and the
object to convert comes after the minimum field width and optional precision. object to convert comes after the minimum field width and optional precision.
.. index:: single: .; in printf-style formatting
#. Precision (optional), given as a ``'.'`` (dot) followed by the precision. If #. Precision (optional), given as a ``'.'`` (dot) followed by the precision. If
specified as ``'*'`` (an asterisk), the actual precision is read from the next specified as ``'*'`` (an asterisk), the actual precision is read from the next
element of the tuple in *values*, and the value to convert comes after the element of the tuple in *values*, and the value to convert comes after the
...@@ -3299,6 +3323,12 @@ sequential parameter list). ...@@ -3299,6 +3323,12 @@ sequential parameter list).
The conversion flag characters are: The conversion flag characters are:
.. index::
single: #; in printf-style formatting
single: -; in printf-style formatting
single: +; in printf-style formatting
single: space; in printf-style formatting
+---------+---------------------------------------------------------------------+ +---------+---------------------------------------------------------------------+
| Flag | Meaning | | Flag | Meaning |
+=========+=====================================================================+ +=========+=====================================================================+
...@@ -4620,6 +4650,7 @@ supports no special operations. There is exactly one null object, named ...@@ -4620,6 +4650,7 @@ supports no special operations. There is exactly one null object, named
It is written as ``None``. It is written as ``None``.
.. index:: single: ...; ellipsis literal
.. _bltin-ellipsis-object: .. _bltin-ellipsis-object:
The Ellipsis Object The Ellipsis Object
......
...@@ -192,6 +192,15 @@ subclasses can define their own format string syntax). The syntax is ...@@ -192,6 +192,15 @@ subclasses can define their own format string syntax). The syntax is
related to that of :ref:`formatted string literals <f-strings>`, but related to that of :ref:`formatted string literals <f-strings>`, but
there are differences. there are differences.
.. index::
single: {; in string formatting
single: }; in string formatting
single: .; in string formatting
single: [; in string formatting
single: ]; in string formatting
single: !; in string formatting
single: :; in string formatting
Format strings contain "replacement fields" surrounded by curly braces ``{}``. Format strings contain "replacement fields" surrounded by curly braces ``{}``.
Anything that is not contained in braces is considered literal text, which is Anything that is not contained in braces is considered literal text, which is
copied unchanged to the output. If you need to include a brace character in the copied unchanged to the output. If you need to include a brace character in the
...@@ -323,6 +332,12 @@ affect the :func:`format` function. ...@@ -323,6 +332,12 @@ affect the :func:`format` function.
The meaning of the various alignment options is as follows: The meaning of the various alignment options is as follows:
.. index::
single: <; in string formatting
single: >; in string formatting
single: =; in string formatting
single: ^; in string formatting
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| Option | Meaning | | Option | Meaning |
+=========+==========================================================+ +=========+==========================================================+
...@@ -349,6 +364,11 @@ meaning in this case. ...@@ -349,6 +364,11 @@ meaning in this case.
The *sign* option is only valid for number types, and can be one of the The *sign* option is only valid for number types, and can be one of the
following: following:
.. index::
single: +; in string formatting
single: -; in string formatting
single: space; in string formatting
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
| Option | Meaning | | Option | Meaning |
+=========+==========================================================+ +=========+==========================================================+
...@@ -363,6 +383,8 @@ following: ...@@ -363,6 +383,8 @@ following:
+---------+----------------------------------------------------------+ +---------+----------------------------------------------------------+
.. index:: single: #; in string formatting
The ``'#'`` option causes the "alternate form" to be used for the The ``'#'`` option causes the "alternate form" to be used for the
conversion. The alternate form is defined differently for different conversion. The alternate form is defined differently for different
types. This option is only valid for integer, float, complex and types. This option is only valid for integer, float, complex and
...@@ -375,6 +397,8 @@ decimal-point character appears in the result of these conversions ...@@ -375,6 +397,8 @@ decimal-point character appears in the result of these conversions
only if a digit follows it. In addition, for ``'g'`` and ``'G'`` only if a digit follows it. In addition, for ``'g'`` and ``'G'``
conversions, trailing zeros are not removed from the result. conversions, trailing zeros are not removed from the result.
.. index:: single: ,; in string formatting
The ``','`` option signals the use of a comma for a thousands separator. The ``','`` option signals the use of a comma for a thousands separator.
For a locale aware separator, use the ``'n'`` integer presentation type For a locale aware separator, use the ``'n'`` integer presentation type
instead. instead.
...@@ -382,6 +406,8 @@ instead. ...@@ -382,6 +406,8 @@ instead.
.. versionchanged:: 3.1 .. versionchanged:: 3.1
Added the ``','`` option (see also :pep:`378`). Added the ``','`` option (see also :pep:`378`).
.. index:: single: _; in string formatting
The ``'_'`` option signals the use of an underscore for a thousands The ``'_'`` option signals the use of an underscore for a thousands
separator for floating point presentation types and for integer separator for floating point presentation types and for integer
presentation type ``'d'``. For integer presentation types ``'b'``, presentation type ``'d'``. For integer presentation types ``'b'``,
...@@ -668,6 +694,8 @@ formatting facilities in Python. As an example of a library built on template ...@@ -668,6 +694,8 @@ formatting facilities in Python. As an example of a library built on template
strings for i18n, see the strings for i18n, see the
`flufl.i18n <http://flufli18n.readthedocs.io/en/latest/>`_ package. `flufl.i18n <http://flufli18n.readthedocs.io/en/latest/>`_ package.
.. index:: single: $; in template strings
Template strings support ``$``-based substitutions, using the following rules: Template strings support ``$``-based substitutions, using the following rules:
* ``$$`` is an escape; it is replaced with a single ``$``. * ``$$`` is an escape; it is replaced with a single ``$``.
......
...@@ -117,6 +117,13 @@ By default, C types are represented in the machine's native format and byte ...@@ -117,6 +117,13 @@ By default, C types are represented in the machine's native format and byte
order, and properly aligned by skipping pad bytes if necessary (according to the order, and properly aligned by skipping pad bytes if necessary (according to the
rules used by the C compiler). rules used by the C compiler).
.. index::
single: @; in struct format strings
single: =; in struct format strings
single: <; in struct format strings
single: >; in struct format strings
single: !; in struct format strings
Alternatively, the first character of the format string can be used to indicate Alternatively, the first character of the format string can be used to indicate
the byte order, size and alignment of the packed data, according to the the byte order, size and alignment of the packed data, according to the
following table: following table:
......
...@@ -1064,6 +1064,8 @@ always available. ...@@ -1064,6 +1064,8 @@ always available.
.. index:: .. index::
single: interpreter prompts single: interpreter prompts
single: prompts, interpreter single: prompts, interpreter
single: >>>; interpreter prompt
single: ...; interpreter prompt
Strings specifying the primary and secondary prompt of the interpreter. These Strings specifying the primary and secondary prompt of the interpreter. These
are only defined if the interpreter is in interactive mode. Their initial are only defined if the interpreter is in interactive mode. Their initial
......
...@@ -369,6 +369,9 @@ Functions ...@@ -369,6 +369,9 @@ Functions
:pep:`475` for the rationale). :pep:`475` for the rationale).
.. index::
single: %; datetime format
.. function:: strftime(format[, t]) .. function:: strftime(format[, t])
Convert a tuple or :class:`struct_time` representing a time as returned by Convert a tuple or :class:`struct_time` representing a time as returned by
...@@ -500,6 +503,9 @@ Functions ...@@ -500,6 +503,9 @@ Functions
it is 3. it is 3.
.. index::
single: %; datetime format
.. function:: strptime(string[, format]) .. function:: strptime(string[, format])
Parse a string representing a time according to a format. The return value Parse a string representing a time according to a format. The return value
......
...@@ -44,7 +44,11 @@ The module defines the following functions: ...@@ -44,7 +44,11 @@ The module defines the following functions:
* if *tb* is not ``None``, it prints a header ``Traceback (most recent * if *tb* is not ``None``, it prints a header ``Traceback (most recent
call last):`` call last):``
* it prints the exception *etype* and *value* after the stack trace * it prints the exception *etype* and *value* after the stack trace
.. index:: single: ^; caret
* if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate * if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate
format, it prints the line where the syntax error occurred with a caret format, it prints the line where the syntax error occurred with a caret
indicating the approximate position of the error. indicating the approximate position of the error.
......
...@@ -297,7 +297,7 @@ The following classes are provided: ...@@ -297,7 +297,7 @@ The following classes are provided:
Cause requests to go through a proxy. If *proxies* is given, it must be a Cause requests to go through a proxy. If *proxies* is given, it must be a
dictionary mapping protocol names to URLs of proxies. The default is to read dictionary mapping protocol names to URLs of proxies. The default is to read
the list of proxies from the environment variables the list of proxies from the environment variables
:envvar:`<protocol>_proxy`. If no proxy environment variables are set, then ``<protocol>_proxy``. If no proxy environment variables are set, then
in a Windows environment proxy settings are obtained from the registry's in a Windows environment proxy settings are obtained from the registry's
Internet Settings section, and in a Mac OS X environment proxy information Internet Settings section, and in a Mac OS X environment proxy information
is retrieved from the OS X System Configuration Framework. is retrieved from the OS X System Configuration Framework.
......
...@@ -224,6 +224,9 @@ This module offers the following functions: ...@@ -224,6 +224,9 @@ This module offers the following functions:
See :ref:`above <exception-changed>`. See :ref:`above <exception-changed>`.
.. index::
single: %; environment variables expansion (Windows)
.. function:: ExpandEnvironmentStrings(str) .. function:: ExpandEnvironmentStrings(str)
Expands environment variable placeholders ``%NAME%`` in strings like Expands environment variable placeholders ``%NAME%`` in strings like
......
...@@ -21,6 +21,7 @@ also syntactically compound statements. ...@@ -21,6 +21,7 @@ also syntactically compound statements.
.. index:: .. index::
single: clause single: clause
single: suite single: suite
single: ;
A compound statement consists of one or more 'clauses.' A clause consists of a A compound statement consists of one or more 'clauses.' A clause consists of a
header and a 'suite.' The clause headers of a particular compound statement are header and a 'suite.' The clause headers of a particular compound statement are
...@@ -84,8 +85,7 @@ The :keyword:`if` statement ...@@ -84,8 +85,7 @@ The :keyword:`if` statement
statement: if statement: if
keyword: elif keyword: elif
keyword: else keyword: else
keyword: elif single: :; compound statement
keyword: else
The :keyword:`if` statement is used for conditional execution: The :keyword:`if` statement is used for conditional execution:
...@@ -111,6 +111,7 @@ The :keyword:`while` statement ...@@ -111,6 +111,7 @@ The :keyword:`while` statement
keyword: else keyword: else
pair: loop; statement pair: loop; statement
keyword: else keyword: else
single: :; compound statement
The :keyword:`while` statement is used for repeated execution as long as an The :keyword:`while` statement is used for repeated execution as long as an
expression is true: expression is true:
...@@ -149,6 +150,7 @@ The :keyword:`for` statement ...@@ -149,6 +150,7 @@ The :keyword:`for` statement
keyword: else keyword: else
pair: target; list pair: target; list
object: sequence object: sequence
single: :; compound statement
The :keyword:`for` statement is used to iterate over the elements of a sequence The :keyword:`for` statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object: (such as a string, tuple or list) or other iterable object:
...@@ -229,7 +231,9 @@ The :keyword:`try` statement ...@@ -229,7 +231,9 @@ The :keyword:`try` statement
statement: try statement: try
keyword: except keyword: except
keyword: finally keyword: finally
.. index:: keyword: except keyword: else
keyword: as
single: :; compound statement
The :keyword:`try` statement specifies exception handlers and/or cleanup code The :keyword:`try` statement specifies exception handlers and/or cleanup code
for a group of statements: for a group of statements:
...@@ -263,6 +267,8 @@ exception, the original search for a handler is canceled and a search starts for ...@@ -263,6 +267,8 @@ exception, the original search for a handler is canceled and a search starts for
the new exception in the surrounding code and on the call stack (it is treated the new exception in the surrounding code and on the call stack (it is treated
as if the entire :keyword:`try` statement raised the exception). as if the entire :keyword:`try` statement raised the exception).
.. index:: single: as; except clause
When a matching except clause is found, the exception is assigned to the target When a matching except clause is found, the exception is assigned to the target
specified after the :keyword:`as` keyword in that except clause, if present, and specified after the :keyword:`as` keyword in that except clause, if present, and
the except clause's suite is executed. All except clauses must have an the except clause's suite is executed. All except clauses must have an
...@@ -375,8 +381,11 @@ The :keyword:`with` statement ...@@ -375,8 +381,11 @@ The :keyword:`with` statement
============================= =============================
.. index:: .. index::
statement: with statement: with
single: as; with statement keyword: as
single: as; with statement
single: ,; with statement
single: :; compound statement
The :keyword:`with` statement is used to wrap the execution of a block with The :keyword:`with` statement is used to wrap the execution of a block with
methods defined by a context manager (see section :ref:`context-managers`). methods defined by a context manager (see section :ref:`context-managers`).
...@@ -463,6 +472,10 @@ Function definitions ...@@ -463,6 +472,10 @@ Function definitions
object: function object: function
pair: function; name pair: function; name
pair: name; binding pair: name; binding
single: (; function definition
single: ); function definition
single: ,; parameter list
single: :; compound statement
A function definition defines a user-defined function object (see section A function definition defines a user-defined function object (see section
:ref:`types`): :ref:`types`):
...@@ -492,7 +505,7 @@ The function definition does not execute the function body; this gets executed ...@@ -492,7 +505,7 @@ The function definition does not execute the function body; this gets executed
only when the function is called. [#]_ only when the function is called. [#]_
.. index:: .. index::
statement: @ single: @; function definition
A function definition may be wrapped by one or more :term:`decorator` expressions. A function definition may be wrapped by one or more :term:`decorator` expressions.
Decorator expressions are evaluated when the function is defined, in the scope Decorator expressions are evaluated when the function is defined, in the scope
...@@ -515,6 +528,7 @@ except that the original function is not temporarily bound to the name ``func``. ...@@ -515,6 +528,7 @@ except that the original function is not temporarily bound to the name ``func``.
.. index:: .. index::
triple: default; parameter; value triple: default; parameter; value
single: argument; function definition single: argument; function definition
single: =; function definition
When one or more :term:`parameters <parameter>` have the form *parameter* ``=`` When one or more :term:`parameters <parameter>` have the form *parameter* ``=``
*expression*, the function is said to have "default parameter values." For a *expression*, the function is said to have "default parameter values." For a
...@@ -541,8 +555,8 @@ e.g.:: ...@@ -541,8 +555,8 @@ e.g.::
return penguin return penguin
.. index:: .. index::
statement: * single: *; function definition
statement: ** single: **; function definition
Function call semantics are described in more detail in section :ref:`calls`. A Function call semantics are described in more detail in section :ref:`calls`. A
function call always assigns values to all parameters mentioned in the parameter function call always assigns values to all parameters mentioned in the parameter
...@@ -555,7 +569,10 @@ new empty mapping of the same type. Parameters after "``*``" or ...@@ -555,7 +569,10 @@ new empty mapping of the same type. Parameters after "``*``" or
"``*identifier``" are keyword-only parameters and may only be passed "``*identifier``" are keyword-only parameters and may only be passed
used keyword arguments. used keyword arguments.
.. index:: pair: function; annotations .. index::
pair: function; annotations
single: ->; function annotations
single: :; function annotations
Parameters may have annotations of the form "``: expression``" following the Parameters may have annotations of the form "``: expression``" following the
parameter name. Any parameter may have an annotation even those of the form parameter name. Any parameter may have an annotation even those of the form
...@@ -617,6 +634,10 @@ Class definitions ...@@ -617,6 +634,10 @@ Class definitions
pair: execution; frame pair: execution; frame
single: inheritance single: inheritance
single: docstring single: docstring
single: (; class definition
single: ); class definition
single: ,; expression list
single: :; compound statement
A class definition defines a class object (see section :ref:`types`): A class definition defines a class object (see section :ref:`types`):
...@@ -655,6 +676,9 @@ the definition syntax. ...@@ -655,6 +676,9 @@ the definition syntax.
Class creation can be customized heavily using :ref:`metaclasses <metaclasses>`. Class creation can be customized heavily using :ref:`metaclasses <metaclasses>`.
.. index::
single: @; class definition
Classes can also be decorated: just like when decorating functions, :: Classes can also be decorated: just like when decorating functions, ::
@f1(arg) @f1(arg)
......
...@@ -165,7 +165,9 @@ NotImplemented ...@@ -165,7 +165,9 @@ NotImplemented
Ellipsis Ellipsis
.. index:: object: Ellipsis .. index::
object: Ellipsis
single: ...; ellipsis literal
This type has a single value. There is a single object with this value. This This type has a single value. There is a single object with this value. This
object is accessed through the literal ``...`` or the built-in name object is accessed through the literal ``...`` or the built-in name
...@@ -1831,8 +1833,9 @@ Metaclasses ...@@ -1831,8 +1833,9 @@ Metaclasses
^^^^^^^^^^^ ^^^^^^^^^^^
.. index:: .. index::
single: metaclass single: metaclass
builtin: type builtin: type
single: =; class definition
By default, classes are constructed using :func:`type`. The class body is By default, classes are constructed using :func:`type`. The class body is
executed in a new namespace and the class name is bound locally to the executed in a new namespace and the class name is bound locally to the
......
...@@ -52,7 +52,7 @@ Binding of names ...@@ -52,7 +52,7 @@ Binding of names
:dfn:`Names` refer to objects. Names are introduced by name binding operations. :dfn:`Names` refer to objects. Names are introduced by name binding operations.
.. index:: statement: from .. index:: single: from; import statement
The following constructs bind names: formal parameters to functions, The following constructs bind names: formal parameters to functions,
:keyword:`import` statements, class and function definitions (these bind the :keyword:`import` statements, class and function definitions (these bind the
......
This diff is collapsed.
...@@ -127,8 +127,8 @@ Namespace packages ...@@ -127,8 +127,8 @@ Namespace packages
------------------ ------------------
.. index:: .. index::
pair:: package; namespace pair: package; namespace
pair:: package; portion pair: package; portion
A namespace package is a composite of various :term:`portions <portion>`, A namespace package is a composite of various :term:`portions <portion>`,
where each portion contributes a subpackage to the parent package. Portions where each portion contributes a subpackage to the parent package. Portions
......
...@@ -65,6 +65,7 @@ Comments ...@@ -65,6 +65,7 @@ Comments
-------- --------
.. index:: comment, hash character .. index:: comment, hash character
single: #; comment
A comment starts with a hash character (``#``) that is not part of a string A comment starts with a hash character (``#``) that is not part of a string
literal, and ends at the end of the physical line. A comment signifies the end literal, and ends at the end of the physical line. A comment signifies the end
...@@ -78,6 +79,7 @@ Encoding declarations ...@@ -78,6 +79,7 @@ Encoding declarations
--------------------- ---------------------
.. index:: source character set, encoding declarations (source file) .. index:: source character set, encoding declarations (source file)
single: #; source encoding declaration
If a comment in the first or second line of the Python script matches the If a comment in the first or second line of the Python script matches the
regular expression ``coding[=:]\s*([-\w.]+)``, this comment is processed as an regular expression ``coding[=:]\s*([-\w.]+)``, this comment is processed as an
...@@ -349,6 +351,9 @@ exactly as written here: ...@@ -349,6 +351,9 @@ exactly as written here:
assert del global not with assert del global not with
async elif if or yield async elif if or yield
.. index::
single: _, identifiers
single: __, identifiers
.. _id-classes: .. _id-classes:
Reserved classes of identifiers Reserved classes of identifiers
...@@ -395,13 +400,16 @@ Literals ...@@ -395,13 +400,16 @@ Literals
Literals are notations for constant values of some built-in types. Literals are notations for constant values of some built-in types.
.. index:: string literal, bytes literal, ASCII
single: '; string literal
single: "; string literal
single: u'; string literal
single: u"; string literal
.. _strings: .. _strings:
String and Bytes literals String and Bytes literals
------------------------- -------------------------
.. index:: string literal, bytes literal, ASCII
String literals are described by the following lexical definitions: String literals are described by the following lexical definitions:
.. productionlist:: .. productionlist::
...@@ -434,6 +442,8 @@ declaration; it is UTF-8 if no encoding declaration is given in the source file; ...@@ -434,6 +442,8 @@ declaration; it is UTF-8 if no encoding declaration is given in the source file;
see section :ref:`encodings`. see section :ref:`encodings`.
.. index:: triple-quoted string, Unicode Consortium, raw string .. index:: triple-quoted string, Unicode Consortium, raw string
single: """; string literal
single: '''; string literal
In plain English: Both types of literals can be enclosed in matching single quotes In plain English: Both types of literals can be enclosed in matching single quotes
(``'``) or double quotes (``"``). They can also be enclosed in matching groups (``'``) or double quotes (``"``). They can also be enclosed in matching groups
...@@ -442,11 +452,19 @@ of three single or double quotes (these are generally referred to as ...@@ -442,11 +452,19 @@ of three single or double quotes (these are generally referred to as
characters that otherwise have a special meaning, such as newline, backslash characters that otherwise have a special meaning, such as newline, backslash
itself, or the quote character. itself, or the quote character.
.. index::
single: b'; bytes literal
single: b"; bytes literal
Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an
instance of the :class:`bytes` type instead of the :class:`str` type. They instance of the :class:`bytes` type instead of the :class:`str` type. They
may only contain ASCII characters; bytes with a numeric value of 128 or greater may only contain ASCII characters; bytes with a numeric value of 128 or greater
must be expressed with escapes. must be expressed with escapes.
.. index::
single: r'; raw string literal
single: r"; raw string literal
Both string and bytes literals may optionally be prefixed with a letter ``'r'`` Both string and bytes literals may optionally be prefixed with a letter ``'r'``
or ``'R'``; such strings are called :dfn:`raw strings` and treat backslashes as or ``'R'``; such strings are called :dfn:`raw strings` and treat backslashes as
literal characters. As a result, in string literals, ``'\U'`` and ``'\u'`` literal characters. As a result, in string literals, ``'\U'`` and ``'\u'``
...@@ -463,6 +481,10 @@ is not supported. ...@@ -463,6 +481,10 @@ is not supported.
to simplify the maintenance of dual Python 2.x and 3.x codebases. to simplify the maintenance of dual Python 2.x and 3.x codebases.
See :pep:`414` for more information. See :pep:`414` for more information.
.. index::
single: f'; formatted string literal
single: f"; formatted string literal
A string literal with ``'f'`` or ``'F'`` in its prefix is a A string literal with ``'f'`` or ``'F'`` in its prefix is a
:dfn:`formatted string literal`; see :ref:`f-strings`. The ``'f'`` may be :dfn:`formatted string literal`; see :ref:`f-strings`. The ``'f'`` may be
combined with ``'r'``, but not with ``'b'`` or ``'u'``, therefore raw combined with ``'r'``, but not with ``'b'`` or ``'u'``, therefore raw
...@@ -473,6 +495,19 @@ retained), except that three unescaped quotes in a row terminate the literal. ( ...@@ -473,6 +495,19 @@ retained), except that three unescaped quotes in a row terminate the literal. (
"quote" is the character used to open the literal, i.e. either ``'`` or ``"``.) "quote" is the character used to open the literal, i.e. either ``'`` or ``"``.)
.. index:: physical line, escape sequence, Standard C, C .. index:: physical line, escape sequence, Standard C, C
single: \; escape sequence
single: \\; escape sequence
single: \a; escape sequence
single: \b; escape sequence
single: \f; escape sequence
single: \n; escape sequence
single: \r; escape sequence
single: \t; escape sequence
single: \v; escape sequence
single: \x; escape sequence
single: \N; escape sequence
single: \u; escape sequence
single: \U; escape sequence
Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string and Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string and
bytes literals are interpreted according to rules similar to those used by bytes literals are interpreted according to rules similar to those used by
...@@ -604,6 +639,10 @@ and formatted string literals may be concatenated with plain string literals. ...@@ -604,6 +639,10 @@ and formatted string literals may be concatenated with plain string literals.
single: string; formatted literal single: string; formatted literal
single: string; interpolated literal single: string; interpolated literal
single: f-string single: f-string
single: {; in formatted string literal
single: }; in formatted string literal
single: !; in formatted string literal
single: :; in formatted string literal
.. _f-strings: .. _f-strings:
Formatted string literals Formatted string literals
...@@ -738,6 +777,12 @@ actually an expression composed of the unary operator '``-``' and the literal ...@@ -738,6 +777,12 @@ actually an expression composed of the unary operator '``-``' and the literal
``1``. ``1``.
.. index::
single: 0b; integer literal
single: 0o; integer literal
single: 0x; integer literal
single: _; in numeric literal
.. _integers: .. _integers:
Integer literals Integer literals
...@@ -778,6 +823,10 @@ Some examples of integer literals:: ...@@ -778,6 +823,10 @@ Some examples of integer literals::
Underscores are now allowed for grouping purposes in literals. Underscores are now allowed for grouping purposes in literals.
.. index::
single: .; in numeric literal
single: e; in numeric literal
single: _; in numeric literal
.. _floating: .. _floating:
Floating point literals Floating point literals
...@@ -806,6 +855,8 @@ Some examples of floating point literals:: ...@@ -806,6 +855,8 @@ Some examples of floating point literals::
Underscores are now allowed for grouping purposes in literals. Underscores are now allowed for grouping purposes in literals.
.. index::
single: j; in numeric literal
.. _imaginary: .. _imaginary:
Imaginary literals Imaginary literals
......
...@@ -112,6 +112,12 @@ unacceptable. The rules observed by various types and the exceptions raised are ...@@ -112,6 +112,12 @@ unacceptable. The rules observed by various types and the exceptions raised are
given with the definition of the object types (see section :ref:`types`). given with the definition of the object types (see section :ref:`types`).
.. index:: triple: target; list; assignment .. index:: triple: target; list; assignment
single: ,; in target list
single: *; in assignment target list
single: [; in assignment target list
single: ]; in assignment target list
single: (; in assignment target list
single: ); in assignment target list
Assignment of an object to a target list, optionally enclosed in parentheses or Assignment of an object to a target list, optionally enclosed in parentheses or
square brackets, is recursively defined as follows. square brackets, is recursively defined as follows.
...@@ -321,6 +327,7 @@ Annotated assignment statements ...@@ -321,6 +327,7 @@ Annotated assignment statements
.. index:: .. index::
pair: annotated; assignment pair: annotated; assignment
single: statement; assignment, annotated single: statement; assignment, annotated
single: :; annotated variable
Annotation assignment is the combination, in a single statement, Annotation assignment is the combination, in a single statement,
of a variable or attribute annotation and an optional assignment statement: of a variable or attribute annotation and an optional assignment statement:
...@@ -372,6 +379,7 @@ The :keyword:`assert` statement ...@@ -372,6 +379,7 @@ The :keyword:`assert` statement
.. index:: .. index::
statement: assert statement: assert
pair: debugging; assertions pair: debugging; assertions
single: ,; expression list
Assert statements are a convenient way to insert debugging assertions into a Assert statements are a convenient way to insert debugging assertions into a
program: program:
...@@ -712,6 +720,9 @@ The :keyword:`import` statement ...@@ -712,6 +720,9 @@ The :keyword:`import` statement
single: module; importing single: module; importing
pair: name; binding pair: name; binding
keyword: from keyword: from
keyword: as
exception: ImportError
single: ,; import statement
.. productionlist:: .. productionlist::
import_stmt: "import" `module` ["as" `identifier`] ("," `module` ["as" `identifier`])* import_stmt: "import" `module` ["as" `identifier`] ("," `module` ["as" `identifier`])*
...@@ -761,8 +772,7 @@ available in the local namespace in one of three ways: ...@@ -761,8 +772,7 @@ available in the local namespace in one of three ways:
.. index:: .. index::
pair: name; binding pair: name; binding
keyword: from single: from; import statement
exception: ImportError
The :keyword:`from` form uses a slightly more complex process: The :keyword:`from` form uses a slightly more complex process:
...@@ -786,6 +796,8 @@ Examples:: ...@@ -786,6 +796,8 @@ Examples::
from foo.bar import baz # foo.bar.baz imported and bound as baz from foo.bar import baz # foo.bar.baz imported and bound as baz
from foo import attr # foo imported and foo.attr bound as attr from foo import attr # foo imported and foo.attr bound as attr
.. index:: single: *; import statement
If the list of identifiers is replaced by a star (``'*'``), all public If the list of identifiers is replaced by a star (``'*'``), all public
names defined in the module are bound in the local namespace for the scope names defined in the module are bound in the local namespace for the scope
where the :keyword:`import` statement occurs. where the :keyword:`import` statement occurs.
...@@ -831,7 +843,9 @@ determine dynamically the modules to be loaded. ...@@ -831,7 +843,9 @@ determine dynamically the modules to be loaded.
Future statements Future statements
----------------- -----------------
.. index:: pair: future; statement .. index::
pair: future; statement
single: __future__; future statement
A :dfn:`future statement` is a directive to the compiler that a particular A :dfn:`future statement` is a directive to the compiler that a particular
module should be compiled using syntax or semantics that will be available in a module should be compiled using syntax or semantics that will be available in a
...@@ -918,6 +932,7 @@ The :keyword:`global` statement ...@@ -918,6 +932,7 @@ The :keyword:`global` statement
.. index:: .. index::
statement: global statement: global
triple: global; name; binding triple: global; name; binding
single: ,; identifier list
.. productionlist:: .. productionlist::
global_stmt: "global" `identifier` ("," `identifier`)* global_stmt: "global" `identifier` ("," `identifier`)*
...@@ -962,6 +977,7 @@ The :keyword:`nonlocal` statement ...@@ -962,6 +977,7 @@ The :keyword:`nonlocal` statement
================================= =================================
.. index:: statement: nonlocal .. index:: statement: nonlocal
single: ,; identifier list
.. productionlist:: .. productionlist::
nonlocal_stmt: "nonlocal" `identifier` ("," `identifier`)* nonlocal_stmt: "nonlocal" `identifier` ("," `identifier`)*
......
...@@ -526,7 +526,7 @@ Arbitrary Argument Lists ...@@ -526,7 +526,7 @@ Arbitrary Argument Lists
------------------------ ------------------------
.. index:: .. index::
statement: * single: *; in function calls
Finally, the least frequently used option is to specify that a function can be Finally, the least frequently used option is to specify that a function can be
called with an arbitrary number of arguments. These arguments will be wrapped called with an arbitrary number of arguments. These arguments will be wrapped
...@@ -570,7 +570,7 @@ or tuple:: ...@@ -570,7 +570,7 @@ or tuple::
[3, 4, 5] [3, 4, 5]
.. index:: .. index::
statement: ** single: **; in function calls
In the same fashion, dictionaries can deliver keyword arguments with the ``**``\ In the same fashion, dictionaries can deliver keyword arguments with the ``**``\
-operator:: -operator::
...@@ -675,7 +675,8 @@ Function Annotations ...@@ -675,7 +675,8 @@ Function Annotations
.. sectionauthor:: Zachary Ware <zachary.ware@gmail.com> .. sectionauthor:: Zachary Ware <zachary.ware@gmail.com>
.. index:: .. index::
pair: function; annotations pair: function; annotations
single: -> (return annotation assignment) single: ->; function annotations
single: :; function annotations
:ref:`Function annotations <function>` are completely optional metadata :ref:`Function annotations <function>` are completely optional metadata
information about the types used by user-defined functions (see :pep:`3107` and information about the types used by user-defined functions (see :pep:`3107` and
......
...@@ -11,6 +11,8 @@ with a prompt are output from the interpreter. Note that a secondary prompt on a ...@@ -11,6 +11,8 @@ with a prompt are output from the interpreter. Note that a secondary prompt on a
line by itself in an example means you must type a blank line; this is used to line by itself in an example means you must type a blank line; this is used to
end a multi-line command. end a multi-line command.
.. index:: single: #; comment
Many of the examples in this manual, even those entered at the interactive Many of the examples in this manual, even those entered at the interactive
prompt, include comments. Comments in Python start with the hash character, prompt, include comments. Comments in Python start with the hash character,
``#``, and extend to the end of the physical line. A comment may appear at the ``#``, and extend to the end of the physical line. A comment may appear at the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment