mirror of https://github.com/python/cpython
gh-123492: Remove unnecessary `:func:` parentheses (#123493)
This commit is contained in:
parent
8aaf7525ab
commit
103a0470e3
|
@ -34,7 +34,7 @@ propagated, additional calls into the Python/C API may not behave as intended
|
||||||
and may fail in mysterious ways.
|
and may fail in mysterious ways.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The error indicator is **not** the result of :func:`sys.exc_info()`.
|
The error indicator is **not** the result of :func:`sys.exc_info`.
|
||||||
The former corresponds to an exception that is not yet caught (and is
|
The former corresponds to an exception that is not yet caught (and is
|
||||||
therefore still propagating), while the latter returns an exception after
|
therefore still propagating), while the latter returns an exception after
|
||||||
it is caught (and has therefore stopped propagating).
|
it is caught (and has therefore stopped propagating).
|
||||||
|
|
|
@ -190,7 +190,7 @@ Importing Modules
|
||||||
|
|
||||||
.. versionadded:: 3.2
|
.. versionadded:: 3.2
|
||||||
.. versionchanged:: 3.3
|
.. versionchanged:: 3.3
|
||||||
Uses :func:`!imp.source_from_cache()` in calculating the source path if
|
Uses :func:`!imp.source_from_cache` in calculating the source path if
|
||||||
only the bytecode path is provided.
|
only the bytecode path is provided.
|
||||||
.. versionchanged:: 3.12
|
.. versionchanged:: 3.12
|
||||||
No longer uses the removed :mod:`!imp` module.
|
No longer uses the removed :mod:`!imp` module.
|
||||||
|
|
|
@ -48,5 +48,5 @@ APIs:
|
||||||
* ``read_binary()``
|
* ``read_binary()``
|
||||||
* ``read_text()``
|
* ``read_text()``
|
||||||
|
|
||||||
Use :func:`importlib.resources.files()` instead. Refer to `importlib-resources: Migrating from Legacy
|
Use :func:`importlib.resources.files` instead. Refer to `importlib-resources: Migrating from Legacy
|
||||||
<https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy>`_ (:gh:`106531`)
|
<https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy>`_ (:gh:`106531`)
|
||||||
|
|
|
@ -9,8 +9,8 @@ Pending Removal in Python 3.15
|
||||||
* :class:`locale`: :func:`locale.getdefaultlocale` was deprecated in Python 3.11
|
* :class:`locale`: :func:`locale.getdefaultlocale` was deprecated in Python 3.11
|
||||||
and originally planned for removal in Python 3.13 (:gh:`90817`),
|
and originally planned for removal in Python 3.13 (:gh:`90817`),
|
||||||
but removal has been postponed to Python 3.15.
|
but removal has been postponed to Python 3.15.
|
||||||
Use :func:`locale.setlocale()`, :func:`locale.getencoding()` and
|
Use :func:`locale.setlocale`, :func:`locale.getencoding` and
|
||||||
:func:`locale.getlocale()` instead.
|
:func:`locale.getlocale` instead.
|
||||||
(Contributed by Hugo van Kemenade in :gh:`111187`.)
|
(Contributed by Hugo van Kemenade in :gh:`111187`.)
|
||||||
|
|
||||||
* :mod:`pathlib`:
|
* :mod:`pathlib`:
|
||||||
|
|
|
@ -513,7 +513,7 @@ were defined.
|
||||||
|
|
||||||
Descriptors are a powerful, general purpose protocol. They are the mechanism
|
Descriptors are a powerful, general purpose protocol. They are the mechanism
|
||||||
behind properties, methods, static methods, class methods, and
|
behind properties, methods, static methods, class methods, and
|
||||||
:func:`super()`. They are used throughout Python itself. Descriptors
|
:func:`super`. They are used throughout Python itself. Descriptors
|
||||||
simplify the underlying C code and offer a flexible set of new tools for
|
simplify the underlying C code and offer a flexible set of new tools for
|
||||||
everyday Python programs.
|
everyday Python programs.
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ Enum HOWTO
|
||||||
.. currentmodule:: enum
|
.. currentmodule:: enum
|
||||||
|
|
||||||
An :class:`Enum` is a set of symbolic names bound to unique values. They are
|
An :class:`Enum` is a set of symbolic names bound to unique values. They are
|
||||||
similar to global variables, but they offer a more useful :func:`repr()`,
|
similar to global variables, but they offer a more useful :func:`repr`,
|
||||||
grouping, type-safety, and a few other features.
|
grouping, type-safety, and a few other features.
|
||||||
|
|
||||||
They are most useful when you have a variable that can take one of a limited
|
They are most useful when you have a variable that can take one of a limited
|
||||||
|
@ -167,7 +167,7 @@ And a function to display the chores for a given day::
|
||||||
answer SO questions
|
answer SO questions
|
||||||
|
|
||||||
In cases where the actual values of the members do not matter, you can save
|
In cases where the actual values of the members do not matter, you can save
|
||||||
yourself some work and use :func:`auto()` for the values::
|
yourself some work and use :func:`auto` for the values::
|
||||||
|
|
||||||
>>> from enum import auto
|
>>> from enum import auto
|
||||||
>>> class Weekday(Flag):
|
>>> class Weekday(Flag):
|
||||||
|
|
|
@ -307,7 +307,7 @@ Available static markers
|
||||||
.. object:: gc__start(int generation)
|
.. object:: gc__start(int generation)
|
||||||
|
|
||||||
Fires when the Python interpreter starts a garbage collection cycle.
|
Fires when the Python interpreter starts a garbage collection cycle.
|
||||||
``arg0`` is the generation to scan, like :func:`gc.collect()`.
|
``arg0`` is the generation to scan, like :func:`gc.collect`.
|
||||||
|
|
||||||
.. object:: gc__done(long collected)
|
.. object:: gc__done(long collected)
|
||||||
|
|
||||||
|
|
|
@ -2134,7 +2134,7 @@ and classes for traversing abstract syntax trees:
|
||||||
If ``type_comments=True`` is given, the parser is modified to check
|
If ``type_comments=True`` is given, the parser is modified to check
|
||||||
and return type comments as specified by :pep:`484` and :pep:`526`.
|
and return type comments as specified by :pep:`484` and :pep:`526`.
|
||||||
This is equivalent to adding :data:`ast.PyCF_TYPE_COMMENTS` to the
|
This is equivalent to adding :data:`ast.PyCF_TYPE_COMMENTS` to the
|
||||||
flags passed to :func:`compile()`. This will report syntax errors
|
flags passed to :func:`compile`. This will report syntax errors
|
||||||
for misplaced type comments. Without this flag, type comments will
|
for misplaced type comments. Without this flag, type comments will
|
||||||
be ignored, and the ``type_comment`` field on selected AST nodes
|
be ignored, and the ``type_comment`` field on selected AST nodes
|
||||||
will always be ``None``. In addition, the locations of ``# type:
|
will always be ``None``. In addition, the locations of ``# type:
|
||||||
|
|
|
@ -91,7 +91,7 @@ Runner context manager
|
||||||
current one. By default :func:`asyncio.new_event_loop` is used and set as
|
current one. By default :func:`asyncio.new_event_loop` is used and set as
|
||||||
current event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``.
|
current event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``.
|
||||||
|
|
||||||
Basically, :func:`asyncio.run()` example can be rewritten with the runner usage::
|
Basically, :func:`asyncio.run` example can be rewritten with the runner usage::
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
|
@ -90,7 +90,7 @@ compile Python sources.
|
||||||
.. option:: -j N
|
.. option:: -j N
|
||||||
|
|
||||||
Use *N* workers to compile the files within the given directory.
|
Use *N* workers to compile the files within the given directory.
|
||||||
If ``0`` is used, then the result of :func:`os.process_cpu_count()`
|
If ``0`` is used, then the result of :func:`os.process_cpu_count`
|
||||||
will be used.
|
will be used.
|
||||||
|
|
||||||
.. option:: --invalidation-mode [timestamp|checked-hash|unchecked-hash]
|
.. option:: --invalidation-mode [timestamp|checked-hash|unchecked-hash]
|
||||||
|
|
|
@ -15,7 +15,7 @@ function and the :class:`~contextvars.Context` class should be used to
|
||||||
manage the current context in asynchronous frameworks.
|
manage the current context in asynchronous frameworks.
|
||||||
|
|
||||||
Context managers that have state should use Context Variables
|
Context managers that have state should use Context Variables
|
||||||
instead of :func:`threading.local()` to prevent their state from
|
instead of :func:`threading.local` to prevent their state from
|
||||||
bleeding to other code unexpectedly, when used in concurrent code.
|
bleeding to other code unexpectedly, when used in concurrent code.
|
||||||
|
|
||||||
See also :pep:`567` for additional details.
|
See also :pep:`567` for additional details.
|
||||||
|
@ -146,7 +146,7 @@ Manual Context Management
|
||||||
|
|
||||||
Every thread will have a different top-level :class:`~contextvars.Context`
|
Every thread will have a different top-level :class:`~contextvars.Context`
|
||||||
object. This means that a :class:`ContextVar` object behaves in a similar
|
object. This means that a :class:`ContextVar` object behaves in a similar
|
||||||
fashion to :func:`threading.local()` when values are assigned in different
|
fashion to :func:`threading.local` when values are assigned in different
|
||||||
threads.
|
threads.
|
||||||
|
|
||||||
Context implements the :class:`collections.abc.Mapping` interface.
|
Context implements the :class:`collections.abc.Mapping` interface.
|
||||||
|
|
|
@ -663,7 +663,7 @@ Data Types
|
||||||
* the result is a valid *IntFlag*: an *IntFlag* is returned
|
* the result is a valid *IntFlag*: an *IntFlag* is returned
|
||||||
* the result is not a valid *IntFlag*: the result depends on the :class:`FlagBoundary` setting
|
* the result is not a valid *IntFlag*: the result depends on the :class:`FlagBoundary` setting
|
||||||
|
|
||||||
The :func:`repr()` of unnamed zero-valued flags has changed. It is now:
|
The :func:`repr` of unnamed zero-valued flags has changed. It is now:
|
||||||
|
|
||||||
>>> Color(0)
|
>>> Color(0)
|
||||||
<Color: 0>
|
<Color: 0>
|
||||||
|
|
|
@ -161,7 +161,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
This function drops you into the debugger at the call site. Specifically,
|
This function drops you into the debugger at the call site. Specifically,
|
||||||
it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight
|
it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight
|
||||||
through. By default, ``sys.breakpointhook()`` calls
|
through. By default, ``sys.breakpointhook()`` calls
|
||||||
:func:`pdb.set_trace()` expecting no arguments. In this case, it is
|
:func:`pdb.set_trace` expecting no arguments. In this case, it is
|
||||||
purely a convenience function so you don't have to explicitly import
|
purely a convenience function so you don't have to explicitly import
|
||||||
:mod:`pdb` or type as much code to enter the debugger. However,
|
:mod:`pdb` or type as much code to enter the debugger. However,
|
||||||
:func:`sys.breakpointhook` can be set to some other function and
|
:func:`sys.breakpointhook` can be set to some other function and
|
||||||
|
@ -1336,7 +1336,7 @@ are always available. They are listed here in alphabetical order.
|
||||||
(which on *some* Unix systems, means that *all* writes append to the end of
|
(which on *some* Unix systems, means that *all* writes append to the end of
|
||||||
the file regardless of the current seek position). In text mode, if
|
the file regardless of the current seek position). In text mode, if
|
||||||
*encoding* is not specified the encoding used is platform-dependent:
|
*encoding* is not specified the encoding used is platform-dependent:
|
||||||
:func:`locale.getencoding()` is called to get the current locale encoding.
|
:func:`locale.getencoding` is called to get the current locale encoding.
|
||||||
(For reading and writing raw bytes use binary mode and leave
|
(For reading and writing raw bytes use binary mode and leave
|
||||||
*encoding* unspecified.) The available modes are:
|
*encoding* unspecified.) The available modes are:
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ The :mod:`functools` module defines the following functions:
|
||||||
Returns the same as ``lru_cache(maxsize=None)``, creating a thin
|
Returns the same as ``lru_cache(maxsize=None)``, creating a thin
|
||||||
wrapper around a dictionary lookup for the function arguments. Because it
|
wrapper around a dictionary lookup for the function arguments. Because it
|
||||||
never needs to evict old values, this is smaller and faster than
|
never needs to evict old values, this is smaller and faster than
|
||||||
:func:`lru_cache()` with a size limit.
|
:func:`lru_cache` with a size limit.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ The :mod:`getpass` module provides two functions:
|
||||||
systems which support the :mod:`pwd` module, otherwise, an :exc:`OSError`
|
systems which support the :mod:`pwd` module, otherwise, an :exc:`OSError`
|
||||||
is raised.
|
is raised.
|
||||||
|
|
||||||
In general, this function should be preferred over :func:`os.getlogin()`.
|
In general, this function should be preferred over :func:`os.getlogin`.
|
||||||
|
|
||||||
.. versionchanged:: 3.13
|
.. versionchanged:: 3.13
|
||||||
Previously, various exceptions beyond just :exc:`OSError` were raised.
|
Previously, various exceptions beyond just :exc:`OSError` were raised.
|
||||||
|
|
|
@ -1261,7 +1261,7 @@ Classes and functions
|
||||||
This function handles several details for you:
|
This function handles several details for you:
|
||||||
|
|
||||||
* If ``eval_str`` is true, values of type ``str`` will
|
* If ``eval_str`` is true, values of type ``str`` will
|
||||||
be un-stringized using :func:`eval()`. This is intended
|
be un-stringized using :func:`eval`. This is intended
|
||||||
for use with stringized annotations
|
for use with stringized annotations
|
||||||
(``from __future__ import annotations``).
|
(``from __future__ import annotations``).
|
||||||
* If ``obj`` doesn't have an annotations dict, returns an
|
* If ``obj`` doesn't have an annotations dict, returns an
|
||||||
|
@ -1275,16 +1275,16 @@ Classes and functions
|
||||||
* Always, always, always returns a freshly created dict.
|
* Always, always, always returns a freshly created dict.
|
||||||
|
|
||||||
``eval_str`` controls whether or not values of type ``str`` are replaced
|
``eval_str`` controls whether or not values of type ``str`` are replaced
|
||||||
with the result of calling :func:`eval()` on those values:
|
with the result of calling :func:`eval` on those values:
|
||||||
|
|
||||||
* If eval_str is true, :func:`eval()` is called on values of type ``str``.
|
* If eval_str is true, :func:`eval` is called on values of type ``str``.
|
||||||
(Note that ``get_annotations`` doesn't catch exceptions; if :func:`eval()`
|
(Note that ``get_annotations`` doesn't catch exceptions; if :func:`eval`
|
||||||
raises an exception, it will unwind the stack past the ``get_annotations``
|
raises an exception, it will unwind the stack past the ``get_annotations``
|
||||||
call.)
|
call.)
|
||||||
* If eval_str is false (the default), values of type ``str`` are unchanged.
|
* If eval_str is false (the default), values of type ``str`` are unchanged.
|
||||||
|
|
||||||
``globals`` and ``locals`` are passed in to :func:`eval()`; see the documentation
|
``globals`` and ``locals`` are passed in to :func:`eval`; see the documentation
|
||||||
for :func:`eval()` for more information. If ``globals`` or ``locals``
|
for :func:`eval` for more information. If ``globals`` or ``locals``
|
||||||
is ``None``, this function may replace that value with a context-specific
|
is ``None``, this function may replace that value with a context-specific
|
||||||
default, contingent on ``type(obj)``:
|
default, contingent on ``type(obj)``:
|
||||||
|
|
||||||
|
|
|
@ -950,7 +950,7 @@ Text I/O
|
||||||
:class:`TextIOBase`.
|
:class:`TextIOBase`.
|
||||||
|
|
||||||
*encoding* gives the name of the encoding that the stream will be decoded or
|
*encoding* gives the name of the encoding that the stream will be decoded or
|
||||||
encoded with. It defaults to :func:`locale.getencoding()`.
|
encoded with. It defaults to :func:`locale.getencoding`.
|
||||||
``encoding="locale"`` can be used to specify the current locale's encoding
|
``encoding="locale"`` can be used to specify the current locale's encoding
|
||||||
explicitly. See :ref:`io-text-encoding` for more information.
|
explicitly. See :ref:`io-text-encoding` for more information.
|
||||||
|
|
||||||
|
@ -1182,7 +1182,7 @@ re-enter a buffered object which it is already accessing, a :exc:`RuntimeError`
|
||||||
is raised. Note this doesn't prohibit a different thread from entering the
|
is raised. Note this doesn't prohibit a different thread from entering the
|
||||||
buffered object.
|
buffered object.
|
||||||
|
|
||||||
The above implicitly extends to text files, since the :func:`open()` function
|
The above implicitly extends to text files, since the :func:`open` function
|
||||||
will wrap a buffered object inside a :class:`TextIOWrapper`. This includes
|
will wrap a buffered object inside a :class:`TextIOWrapper`. This includes
|
||||||
standard streams and therefore affects the built-in :func:`print()` function as
|
standard streams and therefore affects the built-in :func:`print` function as
|
||||||
well.
|
well.
|
||||||
|
|
|
@ -1010,7 +1010,7 @@ The module also provides the following module level functions:
|
||||||
|
|
||||||
doesn't make sense. There are some times however, where you may wish to
|
doesn't make sense. There are some times however, where you may wish to
|
||||||
have :mod:`ipaddress` sort these anyway. If you need to do this, you can use
|
have :mod:`ipaddress` sort these anyway. If you need to do this, you can use
|
||||||
this function as the *key* argument to :func:`sorted()`.
|
this function as the *key* argument to :func:`sorted`.
|
||||||
|
|
||||||
*obj* is either a network or address object.
|
*obj* is either a network or address object.
|
||||||
|
|
||||||
|
|
|
@ -113,8 +113,8 @@ of the UTF-8 encoding:
|
||||||
|
|
||||||
* Use UTF-8 as the :term:`filesystem encoding <filesystem encoding and error
|
* Use UTF-8 as the :term:`filesystem encoding <filesystem encoding and error
|
||||||
handler>`.
|
handler>`.
|
||||||
* :func:`sys.getfilesystemencoding()` returns ``'utf-8'``.
|
* :func:`sys.getfilesystemencoding` returns ``'utf-8'``.
|
||||||
* :func:`locale.getpreferredencoding()` returns ``'utf-8'`` (the *do_setlocale*
|
* :func:`locale.getpreferredencoding` returns ``'utf-8'`` (the *do_setlocale*
|
||||||
argument has no effect).
|
argument has no effect).
|
||||||
* :data:`sys.stdin`, :data:`sys.stdout`, and :data:`sys.stderr` all use
|
* :data:`sys.stdin`, :data:`sys.stdout`, and :data:`sys.stderr` all use
|
||||||
UTF-8 as their text encoding, with the ``surrogateescape``
|
UTF-8 as their text encoding, with the ``surrogateescape``
|
||||||
|
@ -133,8 +133,8 @@ level APIs also exhibit different default behaviours:
|
||||||
|
|
||||||
* Command line arguments, environment variables and filenames are decoded
|
* Command line arguments, environment variables and filenames are decoded
|
||||||
to text using the UTF-8 encoding.
|
to text using the UTF-8 encoding.
|
||||||
* :func:`os.fsdecode()` and :func:`os.fsencode()` use the UTF-8 encoding.
|
* :func:`os.fsdecode` and :func:`os.fsencode` use the UTF-8 encoding.
|
||||||
* :func:`open()`, :func:`io.open()`, and :func:`codecs.open()` use the UTF-8
|
* :func:`open`, :func:`io.open`, and :func:`codecs.open` use the UTF-8
|
||||||
encoding by default. However, they still use the strict error handler by
|
encoding by default. However, they still use the strict error handler by
|
||||||
default so that attempting to open a binary file in text mode is likely
|
default so that attempting to open a binary file in text mode is likely
|
||||||
to raise an exception rather than producing nonsense data.
|
to raise an exception rather than producing nonsense data.
|
||||||
|
@ -794,7 +794,7 @@ process and user.
|
||||||
``socket.gethostbyaddr(socket.gethostname())``.
|
``socket.gethostbyaddr(socket.gethostname())``.
|
||||||
|
|
||||||
On macOS, iOS and Android, this returns the *kernel* name and version (i.e.,
|
On macOS, iOS and Android, this returns the *kernel* name and version (i.e.,
|
||||||
``'Darwin'`` on macOS and iOS; ``'Linux'`` on Android). :func:`platform.uname()`
|
``'Darwin'`` on macOS and iOS; ``'Linux'`` on Android). :func:`platform.uname`
|
||||||
can be used to get the user-facing operating system name and version on iOS and
|
can be used to get the user-facing operating system name and version on iOS and
|
||||||
Android.
|
Android.
|
||||||
|
|
||||||
|
@ -2860,7 +2860,7 @@ features:
|
||||||
|
|
||||||
.. versionchanged:: 3.6
|
.. versionchanged:: 3.6
|
||||||
Added support for the :term:`context manager` protocol and the
|
Added support for the :term:`context manager` protocol and the
|
||||||
:func:`~scandir.close()` method. If a :func:`scandir` iterator is neither
|
:func:`~scandir.close` method. If a :func:`scandir` iterator is neither
|
||||||
exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted
|
exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted
|
||||||
in its destructor.
|
in its destructor.
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ You can then step through the code following this statement, and continue
|
||||||
running without the debugger using the :pdbcmd:`continue` command.
|
running without the debugger using the :pdbcmd:`continue` command.
|
||||||
|
|
||||||
.. versionchanged:: 3.7
|
.. versionchanged:: 3.7
|
||||||
The built-in :func:`breakpoint()`, when called with defaults, can be used
|
The built-in :func:`breakpoint`, when called with defaults, can be used
|
||||||
instead of ``import pdb; pdb.set_trace()``.
|
instead of ``import pdb; pdb.set_trace()``.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
|
@ -150,7 +150,7 @@ Cross Platform
|
||||||
|
|
||||||
On iOS and Android, this returns the user-facing OS name (i.e, ``'iOS``,
|
On iOS and Android, this returns the user-facing OS name (i.e, ``'iOS``,
|
||||||
``'iPadOS'`` or ``'Android'``). To obtain the kernel name (``'Darwin'`` or
|
``'iPadOS'`` or ``'Android'``). To obtain the kernel name (``'Darwin'`` or
|
||||||
``'Linux'``), use :func:`os.uname()`.
|
``'Linux'``), use :func:`os.uname`.
|
||||||
|
|
||||||
.. function:: system_alias(system, release, version)
|
.. function:: system_alias(system, release, version)
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ Cross Platform
|
||||||
returned if the value cannot be determined.
|
returned if the value cannot be determined.
|
||||||
|
|
||||||
On iOS and Android, this is the user-facing OS version. To obtain the
|
On iOS and Android, this is the user-facing OS version. To obtain the
|
||||||
Darwin or Linux kernel version, use :func:`os.uname()`.
|
Darwin or Linux kernel version, use :func:`os.uname`.
|
||||||
|
|
||||||
.. function:: uname()
|
.. function:: uname()
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ The :mod:`signal` module defines the following functions:
|
||||||
signal to a particular Python thread would be to force a running system call
|
signal to a particular Python thread would be to force a running system call
|
||||||
to fail with :exc:`InterruptedError`.
|
to fail with :exc:`InterruptedError`.
|
||||||
|
|
||||||
Use :func:`threading.get_ident()` or the :attr:`~threading.Thread.ident`
|
Use :func:`threading.get_ident` or the :attr:`~threading.Thread.ident`
|
||||||
attribute of :class:`threading.Thread` objects to get a suitable value
|
attribute of :class:`threading.Thread` objects to get a suitable value
|
||||||
for *thread_id*.
|
for *thread_id*.
|
||||||
|
|
||||||
|
|
|
@ -3477,7 +3477,7 @@ place, and instead produce new objects.
|
||||||
``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters
|
``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters
|
||||||
are those byte values in the sequence ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``.
|
are those byte values in the sequence ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``.
|
||||||
|
|
||||||
Unlike :func:`str.swapcase()`, it is always the case that
|
Unlike :func:`str.swapcase`, it is always the case that
|
||||||
``bin.swapcase().swapcase() == bin`` for the binary versions. Case
|
``bin.swapcase().swapcase() == bin`` for the binary versions. Case
|
||||||
conversions are symmetrical in ASCII, even though that is not generally
|
conversions are symmetrical in ASCII, even though that is not generally
|
||||||
true for arbitrary Unicode code points.
|
true for arbitrary Unicode code points.
|
||||||
|
|
|
@ -608,7 +608,7 @@ functions.
|
||||||
|
|
||||||
If *group* is not ``None``, the setregid() system call will be made in the
|
If *group* is not ``None``, the setregid() system call will be made in the
|
||||||
child process prior to the execution of the subprocess. If the provided
|
child process prior to the execution of the subprocess. If the provided
|
||||||
value is a string, it will be looked up via :func:`grp.getgrnam()` and
|
value is a string, it will be looked up via :func:`grp.getgrnam` and
|
||||||
the value in ``gr_gid`` will be used. If the value is an integer, it
|
the value in ``gr_gid`` will be used. If the value is an integer, it
|
||||||
will be passed verbatim. (POSIX only)
|
will be passed verbatim. (POSIX only)
|
||||||
|
|
||||||
|
@ -618,7 +618,7 @@ functions.
|
||||||
If *extra_groups* is not ``None``, the setgroups() system call will be
|
If *extra_groups* is not ``None``, the setgroups() system call will be
|
||||||
made in the child process prior to the execution of the subprocess.
|
made in the child process prior to the execution of the subprocess.
|
||||||
Strings provided in *extra_groups* will be looked up via
|
Strings provided in *extra_groups* will be looked up via
|
||||||
:func:`grp.getgrnam()` and the values in ``gr_gid`` will be used.
|
:func:`grp.getgrnam` and the values in ``gr_gid`` will be used.
|
||||||
Integer values will be passed verbatim. (POSIX only)
|
Integer values will be passed verbatim. (POSIX only)
|
||||||
|
|
||||||
.. availability:: POSIX
|
.. availability:: POSIX
|
||||||
|
@ -626,7 +626,7 @@ functions.
|
||||||
|
|
||||||
If *user* is not ``None``, the setreuid() system call will be made in the
|
If *user* is not ``None``, the setreuid() system call will be made in the
|
||||||
child process prior to the execution of the subprocess. If the provided
|
child process prior to the execution of the subprocess. If the provided
|
||||||
value is a string, it will be looked up via :func:`pwd.getpwnam()` and
|
value is a string, it will be looked up via :func:`pwd.getpwnam` and
|
||||||
the value in ``pw_uid`` will be used. If the value is an integer, it will
|
the value in ``pw_uid`` will be used. If the value is an integer, it will
|
||||||
be passed verbatim. (POSIX only)
|
be passed verbatim. (POSIX only)
|
||||||
|
|
||||||
|
|
|
@ -735,11 +735,11 @@ always available.
|
||||||
regardless of their size. This function is mainly useful for tracking
|
regardless of their size. This function is mainly useful for tracking
|
||||||
and debugging memory leaks. Because of the interpreter's internal
|
and debugging memory leaks. Because of the interpreter's internal
|
||||||
caches, the result can vary from call to call; you may have to call
|
caches, the result can vary from call to call; you may have to call
|
||||||
:func:`_clear_internal_caches()` and :func:`gc.collect()` to get more
|
:func:`_clear_internal_caches` and :func:`gc.collect` to get more
|
||||||
predictable results.
|
predictable results.
|
||||||
|
|
||||||
If a Python build or implementation cannot reasonably compute this
|
If a Python build or implementation cannot reasonably compute this
|
||||||
information, :func:`getallocatedblocks()` is allowed to return 0 instead.
|
information, :func:`getallocatedblocks` is allowed to return 0 instead.
|
||||||
|
|
||||||
.. versionadded:: 3.4
|
.. versionadded:: 3.4
|
||||||
|
|
||||||
|
|
|
@ -305,7 +305,7 @@ Installation path functions
|
||||||
mix with those by the other.
|
mix with those by the other.
|
||||||
|
|
||||||
End users should not use this function, but :func:`get_default_scheme` and
|
End users should not use this function, but :func:`get_default_scheme` and
|
||||||
:func:`get_preferred_scheme()` instead.
|
:func:`get_preferred_scheme` instead.
|
||||||
|
|
||||||
.. versionadded:: 3.10
|
.. versionadded:: 3.10
|
||||||
|
|
||||||
|
|
|
@ -615,7 +615,7 @@ be finalized; only the internally used file object will be closed. See the
|
||||||
it is best practice to only do so in top-level applications or
|
it is best practice to only do so in top-level applications or
|
||||||
:mod:`site configuration <site>`.
|
:mod:`site configuration <site>`.
|
||||||
To set a global default this way, a filter function needs to be wrapped in
|
To set a global default this way, a filter function needs to be wrapped in
|
||||||
:func:`staticmethod()` to prevent injection of a ``self`` argument.
|
:func:`staticmethod` to prevent injection of a ``self`` argument.
|
||||||
|
|
||||||
.. versionchanged:: 3.14
|
.. versionchanged:: 3.14
|
||||||
|
|
||||||
|
|
|
@ -1701,7 +1701,7 @@ The :mod:`test.support.warnings_helper` module provides support for warnings tes
|
||||||
|
|
||||||
.. function:: check_warnings(*filters, quiet=True)
|
.. function:: check_warnings(*filters, quiet=True)
|
||||||
|
|
||||||
A convenience wrapper for :func:`warnings.catch_warnings()` that makes it
|
A convenience wrapper for :func:`warnings.catch_warnings` that makes it
|
||||||
easier to test that a warning was correctly raised. It is approximately
|
easier to test that a warning was correctly raised. It is approximately
|
||||||
equivalent to calling ``warnings.catch_warnings(record=True)`` with
|
equivalent to calling ``warnings.catch_warnings(record=True)`` with
|
||||||
:meth:`warnings.simplefilter` set to ``always`` and with the option to
|
:meth:`warnings.simplefilter` set to ``always`` and with the option to
|
||||||
|
|
|
@ -327,7 +327,7 @@ Functions
|
||||||
|
|
||||||
.. impl-detail::
|
.. impl-detail::
|
||||||
|
|
||||||
On CPython, use the same clock than :func:`time.monotonic()` and is a
|
On CPython, use the same clock than :func:`time.monotonic` and is a
|
||||||
monotonic clock, i.e. a clock that cannot go backwards.
|
monotonic clock, i.e. a clock that cannot go backwards.
|
||||||
|
|
||||||
Use :func:`perf_counter_ns` to avoid the precision loss caused by the
|
Use :func:`perf_counter_ns` to avoid the precision loss caused by the
|
||||||
|
@ -339,7 +339,7 @@ Functions
|
||||||
On Windows, the function is now system-wide.
|
On Windows, the function is now system-wide.
|
||||||
|
|
||||||
.. versionchanged:: 3.13
|
.. versionchanged:: 3.13
|
||||||
Use the same clock than :func:`time.monotonic()`.
|
Use the same clock than :func:`time.monotonic`.
|
||||||
|
|
||||||
|
|
||||||
.. function:: perf_counter_ns() -> int
|
.. function:: perf_counter_ns() -> int
|
||||||
|
|
|
@ -75,7 +75,7 @@ the :mod:`tokenize` module.
|
||||||
:noindex:
|
:noindex:
|
||||||
|
|
||||||
Token value indicating that a type comment was recognized. Such
|
Token value indicating that a type comment was recognized. Such
|
||||||
tokens are only produced when :func:`ast.parse()` is invoked with
|
tokens are only produced when :func:`ast.parse` is invoked with
|
||||||
``type_comments=True``.
|
``type_comments=True``.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2529,7 +2529,7 @@ Signal Handling
|
||||||
.. versionadded:: 3.2
|
.. versionadded:: 3.2
|
||||||
|
|
||||||
The :option:`-c/--catch <unittest -c>` command-line option to unittest,
|
The :option:`-c/--catch <unittest -c>` command-line option to unittest,
|
||||||
along with the ``catchbreak`` parameter to :func:`unittest.main()`, provide
|
along with the ``catchbreak`` parameter to :func:`unittest.main`, provide
|
||||||
more friendly handling of control-C during a test run. With catch break
|
more friendly handling of control-C during a test run. With catch break
|
||||||
behavior enabled control-C will allow the currently running test to complete,
|
behavior enabled control-C will allow the currently running test to complete,
|
||||||
and the test run will then end and report all the results so far. A second
|
and the test run will then end and report all the results so far. A second
|
||||||
|
|
|
@ -332,7 +332,7 @@ Formally, the Python zip application format is therefore:
|
||||||
interpreter name, and then a newline (``b'\n'``) character. The interpreter
|
interpreter name, and then a newline (``b'\n'``) character. The interpreter
|
||||||
name can be anything acceptable to the OS "shebang" processing, or the Python
|
name can be anything acceptable to the OS "shebang" processing, or the Python
|
||||||
launcher on Windows. The interpreter should be encoded in UTF-8 on Windows,
|
launcher on Windows. The interpreter should be encoded in UTF-8 on Windows,
|
||||||
and in :func:`sys.getfilesystemencoding()` on POSIX.
|
and in :func:`sys.getfilesystemencoding` on POSIX.
|
||||||
2. Standard zipfile data, as generated by the :mod:`zipfile` module. The
|
2. Standard zipfile data, as generated by the :mod:`zipfile` module. The
|
||||||
zipfile content *must* include a file called ``__main__.py`` (which must be
|
zipfile content *must* include a file called ``__main__.py`` (which must be
|
||||||
in the "root" of the zipfile - i.e., it cannot be in a subdirectory). The
|
in the "root" of the zipfile - i.e., it cannot be in a subdirectory). The
|
||||||
|
|
|
@ -380,7 +380,7 @@ Bytes
|
||||||
|
|
||||||
A bytes object is an immutable array. The items are 8-bit bytes,
|
A bytes object is an immutable array. The items are 8-bit bytes,
|
||||||
represented by integers in the range 0 <= x < 256. Bytes literals
|
represented by integers in the range 0 <= x < 256. Bytes literals
|
||||||
(like ``b'abc'``) and the built-in :func:`bytes()` constructor
|
(like ``b'abc'``) and the built-in :func:`bytes` constructor
|
||||||
can be used to create bytes objects. Also, bytes objects can be
|
can be used to create bytes objects. Also, bytes objects can be
|
||||||
decoded to strings via the :meth:`~bytes.decode` method.
|
decoded to strings via the :meth:`~bytes.decode` method.
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ accumulate to the point where they affect the final total:
|
||||||
>>> sum([0.1] * 10) == 1.0
|
>>> sum([0.1] * 10) == 1.0
|
||||||
True
|
True
|
||||||
|
|
||||||
The :func:`math.fsum()` goes further and tracks all of the "lost digits"
|
The :func:`math.fsum` goes further and tracks all of the "lost digits"
|
||||||
as values are added onto a running total so that the result has only a
|
as values are added onto a running total so that the result has only a
|
||||||
single rounding. This is slower than :func:`sum` but will be more
|
single rounding. This is slower than :func:`sum` but will be more
|
||||||
accurate in uncommon cases where large magnitude inputs mostly cancel
|
accurate in uncommon cases where large magnitude inputs mostly cancel
|
||||||
|
|
|
@ -1031,7 +1031,7 @@ conflict.
|
||||||
'surrogatepass' are used.
|
'surrogatepass' are used.
|
||||||
|
|
||||||
This may also be enabled at runtime with
|
This may also be enabled at runtime with
|
||||||
:func:`sys._enablelegacywindowsfsencoding()`.
|
:func:`sys._enablelegacywindowsfsencoding`.
|
||||||
|
|
||||||
.. availability:: Windows.
|
.. availability:: Windows.
|
||||||
|
|
||||||
|
|
|
@ -53,10 +53,10 @@ the simulator or a physical device.
|
||||||
|
|
||||||
Information about the specific runtime environment, including the iOS version,
|
Information about the specific runtime environment, including the iOS version,
|
||||||
device model, and whether the device is a simulator, can be obtained using
|
device model, and whether the device is a simulator, can be obtained using
|
||||||
:func:`platform.ios_ver()`. :func:`platform.system()` will report ``iOS`` or
|
:func:`platform.ios_ver`. :func:`platform.system` will report ``iOS`` or
|
||||||
``iPadOS``, depending on the device.
|
``iPadOS``, depending on the device.
|
||||||
|
|
||||||
:func:`os.uname()` reports kernel-level details; it will report a name of
|
:func:`os.uname` reports kernel-level details; it will report a name of
|
||||||
``Darwin``.
|
``Darwin``.
|
||||||
|
|
||||||
Standard library availability
|
Standard library availability
|
||||||
|
|
|
@ -1233,7 +1233,7 @@ also now un-stringize stringized annotations.
|
||||||
itertools
|
itertools
|
||||||
---------
|
---------
|
||||||
|
|
||||||
Add :func:`itertools.pairwise()`.
|
Add :func:`itertools.pairwise`.
|
||||||
(Contributed by Raymond Hettinger in :issue:`38200`.)
|
(Contributed by Raymond Hettinger in :issue:`38200`.)
|
||||||
|
|
||||||
linecache
|
linecache
|
||||||
|
@ -1245,14 +1245,14 @@ When a module does not define ``__loader__``, fall back to ``__spec__.loader``.
|
||||||
os
|
os
|
||||||
--
|
--
|
||||||
|
|
||||||
Add :func:`os.cpu_count()` support for VxWorks RTOS.
|
Add :func:`os.cpu_count` support for VxWorks RTOS.
|
||||||
(Contributed by Peixing Xin in :issue:`41440`.)
|
(Contributed by Peixing Xin in :issue:`41440`.)
|
||||||
|
|
||||||
Add a new function :func:`os.eventfd` and related helpers to wrap the
|
Add a new function :func:`os.eventfd` and related helpers to wrap the
|
||||||
``eventfd2`` syscall on Linux.
|
``eventfd2`` syscall on Linux.
|
||||||
(Contributed by Christian Heimes in :issue:`41001`.)
|
(Contributed by Christian Heimes in :issue:`41001`.)
|
||||||
|
|
||||||
Add :func:`os.splice()` that allows to move data between two file
|
Add :func:`os.splice` that allows to move data between two file
|
||||||
descriptors without copying between kernel address space and user
|
descriptors without copying between kernel address space and user
|
||||||
address space, where one of the file descriptors must refer to a
|
address space, where one of the file descriptors must refer to a
|
||||||
pipe. (Contributed by Pablo Galindo in :issue:`41625`.)
|
pipe. (Contributed by Pablo Galindo in :issue:`41625`.)
|
||||||
|
@ -1292,7 +1292,7 @@ functions in the :mod:`os` module.
|
||||||
platform
|
platform
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Add :func:`platform.freedesktop_os_release()` to retrieve operation system
|
Add :func:`platform.freedesktop_os_release` to retrieve operation system
|
||||||
identification from `freedesktop.org os-release
|
identification from `freedesktop.org os-release
|
||||||
<https://www.freedesktop.org/software/systemd/man/os-release.html>`_ standard file.
|
<https://www.freedesktop.org/software/systemd/man/os-release.html>`_ standard file.
|
||||||
(Contributed by Christian Heimes in :issue:`28468`.)
|
(Contributed by Christian Heimes in :issue:`28468`.)
|
||||||
|
|
|
@ -1422,9 +1422,9 @@ hashlib
|
||||||
-------
|
-------
|
||||||
|
|
||||||
* Remove the pure Python implementation of :mod:`hashlib`'s
|
* Remove the pure Python implementation of :mod:`hashlib`'s
|
||||||
:func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and
|
:func:`hashlib.pbkdf2_hmac`, deprecated in Python 3.10. Python 3.10 and
|
||||||
newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides
|
newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides
|
||||||
a C implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster.
|
a C implementation of :func:`~hashlib.pbkdf2_hmac` which is faster.
|
||||||
(Contributed by Victor Stinner in :gh:`94199`.)
|
(Contributed by Victor Stinner in :gh:`94199`.)
|
||||||
|
|
||||||
importlib
|
importlib
|
||||||
|
|
|
@ -199,7 +199,7 @@ pathlib
|
||||||
pdb
|
pdb
|
||||||
---
|
---
|
||||||
|
|
||||||
* Hard-coded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace()`) now
|
* Hard-coded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace`) now
|
||||||
reuse the most recent :class:`~pdb.Pdb` instance that calls
|
reuse the most recent :class:`~pdb.Pdb` instance that calls
|
||||||
:meth:`~pdb.Pdb.set_trace()`, instead of creating a new one each time.
|
:meth:`~pdb.Pdb.set_trace()`, instead of creating a new one each time.
|
||||||
As a result, all the instance specific data like :pdbcmd:`display` and
|
As a result, all the instance specific data like :pdbcmd:`display` and
|
||||||
|
|
|
@ -2321,7 +2321,7 @@ Multi-threading
|
||||||
intervals and reduced overhead due to lock contention and the number of
|
intervals and reduced overhead due to lock contention and the number of
|
||||||
ensuing system calls. The notion of a "check interval" to allow thread
|
ensuing system calls. The notion of a "check interval" to allow thread
|
||||||
switches has been abandoned and replaced by an absolute duration expressed in
|
switches has been abandoned and replaced by an absolute duration expressed in
|
||||||
seconds. This parameter is tunable through :func:`sys.setswitchinterval()`.
|
seconds. This parameter is tunable through :func:`sys.setswitchinterval`.
|
||||||
It currently defaults to 5 milliseconds.
|
It currently defaults to 5 milliseconds.
|
||||||
|
|
||||||
Additional details about the implementation can be read from a `python-dev
|
Additional details about the implementation can be read from a `python-dev
|
||||||
|
|
|
@ -779,8 +779,8 @@ Other Language Changes
|
||||||
Some smaller changes made to the core Python language are:
|
Some smaller changes made to the core Python language are:
|
||||||
|
|
||||||
* Added support for Unicode name aliases and named sequences.
|
* Added support for Unicode name aliases and named sequences.
|
||||||
Both :func:`unicodedata.lookup()` and ``'\N{...}'`` now resolve name aliases,
|
Both :func:`unicodedata.lookup` and ``'\N{...}'`` now resolve name aliases,
|
||||||
and :func:`unicodedata.lookup()` resolves named sequences too.
|
and :func:`unicodedata.lookup` resolves named sequences too.
|
||||||
|
|
||||||
(Contributed by Ezio Melotti in :issue:`12753`.)
|
(Contributed by Ezio Melotti in :issue:`12753`.)
|
||||||
|
|
||||||
|
|
|
@ -1967,7 +1967,7 @@ Other Improvements
|
||||||
|
|
||||||
* The ``-R`` option to the :ref:`python regression test suite <regrtest>` now
|
* The ``-R`` option to the :ref:`python regression test suite <regrtest>` now
|
||||||
also checks for memory allocation leaks, using
|
also checks for memory allocation leaks, using
|
||||||
:func:`sys.getallocatedblocks()`. (Contributed by Antoine Pitrou in
|
:func:`sys.getallocatedblocks`. (Contributed by Antoine Pitrou in
|
||||||
:issue:`13390`.)
|
:issue:`13390`.)
|
||||||
|
|
||||||
* ``python -m`` now works with namespace packages.
|
* ``python -m`` now works with namespace packages.
|
||||||
|
|
|
@ -511,10 +511,10 @@ correct.
|
||||||
Prior to Python 3.6, data loss could result when using bytes paths on Windows.
|
Prior to Python 3.6, data loss could result when using bytes paths on Windows.
|
||||||
With this change, using bytes to represent paths is now supported on Windows,
|
With this change, using bytes to represent paths is now supported on Windows,
|
||||||
provided those bytes are encoded with the encoding returned by
|
provided those bytes are encoded with the encoding returned by
|
||||||
:func:`sys.getfilesystemencoding()`, which now defaults to ``'utf-8'``.
|
:func:`sys.getfilesystemencoding`, which now defaults to ``'utf-8'``.
|
||||||
|
|
||||||
Applications that do not use str to represent paths should use
|
Applications that do not use str to represent paths should use
|
||||||
:func:`os.fsencode()` and :func:`os.fsdecode()` to ensure their bytes are
|
:func:`os.fsencode` and :func:`os.fsdecode` to ensure their bytes are
|
||||||
correctly encoded. To revert to the previous behaviour, set
|
correctly encoded. To revert to the previous behaviour, set
|
||||||
:envvar:`PYTHONLEGACYWINDOWSFSENCODING` or call
|
:envvar:`PYTHONLEGACYWINDOWSFSENCODING` or call
|
||||||
:func:`sys._enablelegacywindowsfsencoding`.
|
:func:`sys._enablelegacywindowsfsencoding`.
|
||||||
|
@ -780,7 +780,7 @@ for managing secrets, such as account authentication, tokens, and similar.
|
||||||
|
|
||||||
Note that the pseudo-random generators in the :mod:`random` module
|
Note that the pseudo-random generators in the :mod:`random` module
|
||||||
should *NOT* be used for security purposes. Use :mod:`secrets`
|
should *NOT* be used for security purposes. Use :mod:`secrets`
|
||||||
on Python 3.6+ and :func:`os.urandom()` on Python 3.5 and earlier.
|
on Python 3.6+ and :func:`os.urandom` on Python 3.5 and earlier.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
|
@ -1316,7 +1316,7 @@ Storchaka in :issue:`24164`.)
|
||||||
pickletools
|
pickletools
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
:func:`pickletools.dis()` now outputs the implicit memo index for the
|
:func:`pickletools.dis` now outputs the implicit memo index for the
|
||||||
``MEMOIZE`` opcode.
|
``MEMOIZE`` opcode.
|
||||||
(Contributed by Serhiy Storchaka in :issue:`25382`.)
|
(Contributed by Serhiy Storchaka in :issue:`25382`.)
|
||||||
|
|
||||||
|
|
|
@ -2366,7 +2366,7 @@ Changes in the Python API
|
||||||
positions 2--3. To match only blank lines, the pattern should be rewritten
|
positions 2--3. To match only blank lines, the pattern should be rewritten
|
||||||
as ``r'(?m)^[^\S\n]*$'``.
|
as ``r'(?m)^[^\S\n]*$'``.
|
||||||
|
|
||||||
:func:`re.sub()` now replaces empty matches adjacent to a previous
|
:func:`re.sub` now replaces empty matches adjacent to a previous
|
||||||
non-empty match. For example ``re.sub('x*', '-', 'abxd')`` returns now
|
non-empty match. For example ``re.sub('x*', '-', 'abxd')`` returns now
|
||||||
``'-a-b--d-'`` instead of ``'-a-b-d-'`` (the first minus between 'b' and
|
``'-a-b--d-'`` instead of ``'-a-b-d-'`` (the first minus between 'b' and
|
||||||
'd' replaces 'x', and the second minus replaces an empty string between
|
'd' replaces 'x', and the second minus replaces an empty string between
|
||||||
|
|
|
@ -936,7 +936,7 @@ Add option ``--json-lines`` to parse every input line as a separate JSON object.
|
||||||
logging
|
logging
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Added a *force* keyword argument to :func:`logging.basicConfig()`
|
Added a *force* keyword argument to :func:`logging.basicConfig`
|
||||||
When set to true, any existing handlers attached
|
When set to true, any existing handlers attached
|
||||||
to the root logger are removed and closed before carrying out the
|
to the root logger are removed and closed before carrying out the
|
||||||
configuration specified by the other arguments.
|
configuration specified by the other arguments.
|
||||||
|
@ -1175,8 +1175,8 @@ convenience functions to automate the necessary tasks usually involved when
|
||||||
creating a server socket, including accepting both IPv4 and IPv6 connections
|
creating a server socket, including accepting both IPv4 and IPv6 connections
|
||||||
on the same socket. (Contributed by Giampaolo Rodolà in :issue:`17561`.)
|
on the same socket. (Contributed by Giampaolo Rodolà in :issue:`17561`.)
|
||||||
|
|
||||||
The :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`, and
|
The :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`, and
|
||||||
:func:`socket.if_indextoname()` functions have been implemented on Windows.
|
:func:`socket.if_indextoname` functions have been implemented on Windows.
|
||||||
(Contributed by Zackery Spytz in :issue:`37007`.)
|
(Contributed by Zackery Spytz in :issue:`37007`.)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1193,10 +1193,10 @@ statistics
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Added :func:`statistics.fmean` as a faster, floating-point variant of
|
Added :func:`statistics.fmean` as a faster, floating-point variant of
|
||||||
:func:`statistics.mean()`. (Contributed by Raymond Hettinger and
|
:func:`statistics.mean`. (Contributed by Raymond Hettinger and
|
||||||
Steven D'Aprano in :issue:`35904`.)
|
Steven D'Aprano in :issue:`35904`.)
|
||||||
|
|
||||||
Added :func:`statistics.geometric_mean()`
|
Added :func:`statistics.geometric_mean`
|
||||||
(Contributed by Raymond Hettinger in :issue:`27181`.)
|
(Contributed by Raymond Hettinger in :issue:`27181`.)
|
||||||
|
|
||||||
Added :func:`statistics.multimode` that returns a list of the most
|
Added :func:`statistics.multimode` that returns a list of the most
|
||||||
|
@ -1367,9 +1367,9 @@ Added :class:`~unittest.mock.AsyncMock` to support an asynchronous version of
|
||||||
have been added as well.
|
have been added as well.
|
||||||
(Contributed by Lisa Roach in :issue:`26467`).
|
(Contributed by Lisa Roach in :issue:`26467`).
|
||||||
|
|
||||||
Added :func:`~unittest.addModuleCleanup()` and
|
Added :func:`~unittest.addModuleCleanup` and
|
||||||
:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support
|
:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support
|
||||||
cleanups for :func:`~unittest.setUpModule()` and
|
cleanups for :func:`~unittest.setUpModule` and
|
||||||
:meth:`~unittest.TestCase.setUpClass()`.
|
:meth:`~unittest.TestCase.setUpClass()`.
|
||||||
(Contributed by Lisa Roach in :issue:`24412`.)
|
(Contributed by Lisa Roach in :issue:`24412`.)
|
||||||
|
|
||||||
|
@ -1432,7 +1432,7 @@ and ``{namespace}*`` which returns all tags in the given namespace.
|
||||||
(Contributed by Stefan Behnel in :issue:`28238`.)
|
(Contributed by Stefan Behnel in :issue:`28238`.)
|
||||||
|
|
||||||
The :mod:`xml.etree.ElementTree` module provides a new function
|
The :mod:`xml.etree.ElementTree` module provides a new function
|
||||||
:func:`–xml.etree.ElementTree.canonicalize()` that implements C14N 2.0.
|
:func:`–xml.etree.ElementTree.canonicalize` that implements C14N 2.0.
|
||||||
(Contributed by Stefan Behnel in :issue:`13611`.)
|
(Contributed by Stefan Behnel in :issue:`13611`.)
|
||||||
|
|
||||||
The target object of :class:`xml.etree.ElementTree.XMLParser` can
|
The target object of :class:`xml.etree.ElementTree.XMLParser` can
|
||||||
|
|
|
@ -983,7 +983,7 @@ Removed
|
||||||
(Contributed by Victor Stinner in :issue:`37312`.)
|
(Contributed by Victor Stinner in :issue:`37312`.)
|
||||||
|
|
||||||
* ``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to
|
* ``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to
|
||||||
``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open()` have been
|
``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open` have been
|
||||||
removed. They were deprecated since Python 3.7.
|
removed. They were deprecated since Python 3.7.
|
||||||
(Contributed by Victor Stinner in :issue:`37320`.)
|
(Contributed by Victor Stinner in :issue:`37320`.)
|
||||||
|
|
||||||
|
|
|
@ -5590,7 +5590,7 @@ Library
|
||||||
- Issue #16248: Disable code execution from the user's home directory by
|
- Issue #16248: Disable code execution from the user's home directory by
|
||||||
tkinter when the -E flag is passed to Python. Patch by Zachary Ware.
|
tkinter when the -E flag is passed to Python. Patch by Zachary Ware.
|
||||||
|
|
||||||
- Issue #13390: New function :func:`sys.getallocatedblocks()` returns the
|
- Issue #13390: New function :func:`sys.getallocatedblocks` returns the
|
||||||
number of memory blocks currently allocated.
|
number of memory blocks currently allocated.
|
||||||
|
|
||||||
- Issue #16628: Fix a memory leak in ctypes.resize().
|
- Issue #16628: Fix a memory leak in ctypes.resize().
|
||||||
|
@ -6157,7 +6157,7 @@ Tests
|
||||||
starting with a ".". Patch by Sebastian Kreft.
|
starting with a ".". Patch by Sebastian Kreft.
|
||||||
|
|
||||||
- Issue #13390: The ``-R`` option to regrtest now also checks for memory
|
- Issue #13390: The ``-R`` option to regrtest now also checks for memory
|
||||||
allocation leaks, using :func:`sys.getallocatedblocks()`.
|
allocation leaks, using :func:`sys.getallocatedblocks`.
|
||||||
|
|
||||||
- Issue #16559: Add more tests for the json module, including some from the
|
- Issue #16559: Add more tests for the json module, including some from the
|
||||||
official test suite at json.org. Patch by Serhiy Storchaka.
|
official test suite at json.org. Patch by Serhiy Storchaka.
|
||||||
|
|
|
@ -1499,7 +1499,7 @@ used to cause ZeroDivisionError now cause an OverflowError instead.
|
||||||
.. nonce: rju34k
|
.. nonce: rju34k
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Add :func:`os.cpu_count()` support for VxWorks RTOS.
|
Add :func:`os.cpu_count` support for VxWorks RTOS.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -477,7 +477,7 @@ object belongs to, potentially breaking the unpickling of those objects.
|
||||||
|
|
||||||
Simplify the :mod:`importlib` external bootstrap code:
|
Simplify the :mod:`importlib` external bootstrap code:
|
||||||
``importlib._bootstrap_external`` now uses regular imports to import builtin
|
``importlib._bootstrap_external`` now uses regular imports to import builtin
|
||||||
modules. When it is imported, the builtin :func:`__import__()` function is
|
modules. When it is imported, the builtin :func:`__import__` function is
|
||||||
already fully working and so can be used to import builtin modules like
|
already fully working and so can be used to import builtin modules like
|
||||||
:mod:`sys`. Patch by Victor Stinner.
|
:mod:`sys`. Patch by Victor Stinner.
|
||||||
|
|
||||||
|
@ -517,8 +517,8 @@ Port the ``_signal`` extension module to the multi-phase initialization API
|
||||||
.. nonce: Wh5svI
|
.. nonce: Wh5svI
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`time.time()`, :func:`time.perf_counter()` and
|
:func:`time.time`, :func:`time.perf_counter` and
|
||||||
:func:`time.monotonic()` functions can no longer fail with a Python fatal
|
:func:`time.monotonic` functions can no longer fail with a Python fatal
|
||||||
error, instead raise a regular Python exception on failure.
|
error, instead raise a regular Python exception on failure.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -550,10 +550,10 @@ deduplicate, use type to cache key). Patch provided by Yurii Karabas.
|
||||||
.. nonce: iDbHrw
|
.. nonce: iDbHrw
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`time.perf_counter()` on Windows and :func:`time.monotonic()` on macOS
|
:func:`time.perf_counter` on Windows and :func:`time.monotonic` on macOS
|
||||||
are now system-wide. Previously, they used an offset computed at startup to
|
are now system-wide. Previously, they used an offset computed at startup to
|
||||||
reduce the precision loss caused by the float type. Use
|
reduce the precision loss caused by the float type. Use
|
||||||
:func:`time.perf_counter_ns()` and :func:`time.monotonic_ns()` added in
|
:func:`time.perf_counter_ns` and :func:`time.monotonic_ns` added in
|
||||||
Python 3.7 to avoid this precision loss.
|
Python 3.7 to avoid this precision loss.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -709,7 +709,7 @@ directories.
|
||||||
.. nonce: ek38d_
|
.. nonce: ek38d_
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Add :func:`os.set_blocking()` support for VxWorks RTOS.
|
Add :func:`os.set_blocking` support for VxWorks RTOS.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -654,7 +654,7 @@ support importlib.invalidate_caches(). Patch by Desmond Cheong.
|
||||||
.. nonce: 3r0HFY
|
.. nonce: 3r0HFY
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fail fast in :func:`shutil.move()` to avoid creating destination directories
|
Fail fast in :func:`shutil.move` to avoid creating destination directories
|
||||||
on failure.
|
on failure.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -701,8 +701,8 @@ sessions in :mod:`pdb`'s interactive mode.
|
||||||
When the :data:`tempfile.tempdir` global variable is set to a value of type
|
When the :data:`tempfile.tempdir` global variable is set to a value of type
|
||||||
bytes, it is now handled consistently. Previously exceptions could be
|
bytes, it is now handled consistently. Previously exceptions could be
|
||||||
raised from some tempfile APIs when the directory did not already exist in
|
raised from some tempfile APIs when the directory did not already exist in
|
||||||
this situation. Also ensures that the :func:`tempfile.gettempdir()` and
|
this situation. Also ensures that the :func:`tempfile.gettempdir` and
|
||||||
:func:`tempfile.gettempdirb()` functions *always* return ``str`` and
|
:func:`tempfile.gettempdirb` functions *always* return ``str`` and
|
||||||
``bytes`` respectively.
|
``bytes`` respectively.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -958,7 +958,7 @@ Patch by Jelle Zijlstra.
|
||||||
.. nonce: nnVd3h
|
.. nonce: nnVd3h
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Add an ``encoding`` parameter :func:`logging.fileConfig()`.
|
Add an ``encoding`` parameter :func:`logging.fileConfig`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
@ -1270,7 +1270,7 @@ Fix thread locks in zlib module may go wrong in rare case. Patch by Ma Lin.
|
||||||
.. nonce: oi6Kdb
|
.. nonce: oi6Kdb
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace()`. Patch
|
Fix dataclasses with ``InitVar``\s and :func:`~dataclasses.replace`. Patch
|
||||||
by Claudiu Popa.
|
by Claudiu Popa.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -1310,7 +1310,7 @@ functions in the :mod:`os` module.
|
||||||
.. nonce: 9adF3E
|
.. nonce: 9adF3E
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`os.path.expanduser()` now refuses to guess Windows home directories
|
:func:`os.path.expanduser` now refuses to guess Windows home directories
|
||||||
if the basename of current user's home directory does not match their
|
if the basename of current user's home directory does not match their
|
||||||
username.
|
username.
|
||||||
|
|
||||||
|
|
|
@ -2000,7 +2000,7 @@ during file extraction.
|
||||||
.. nonce: roUl0G
|
.. nonce: roUl0G
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:mod:`subprocess` on Solaris now also uses :func:`os.posix_spawn()` for
|
:mod:`subprocess` on Solaris now also uses :func:`os.posix_spawn` for
|
||||||
better performance.
|
better performance.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -58,7 +58,7 @@ may have prevented Python-to-Python calls respecting PEP 523.
|
||||||
.. nonce: -igcjS
|
.. nonce: -igcjS
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Add a closure keyword-only parameter to :func:`exec()`. It can only be specified
|
Add a closure keyword-only parameter to :func:`exec`. It can only be specified
|
||||||
when exec-ing a code object that uses free variables. When specified, it
|
when exec-ing a code object that uses free variables. When specified, it
|
||||||
must be a tuple, with exactly the number of cell variables referenced by the
|
must be a tuple, with exactly the number of cell variables referenced by the
|
||||||
code object. closure has a default value of ``None``, and it must be ``None`` if the
|
code object. closure has a default value of ``None``, and it must be ``None`` if the
|
||||||
|
|
|
@ -3221,9 +3221,9 @@ Stinner.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:mod:`hashlib`: Remove the pure Python implementation of
|
:mod:`hashlib`: Remove the pure Python implementation of
|
||||||
:func:`hashlib.pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and
|
:func:`hashlib.pbkdf2_hmac`, deprecated in Python 3.10. Python 3.10 and
|
||||||
newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides a C
|
newer requires OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides a C
|
||||||
implementation of :func:`~hashlib.pbkdf2_hmac()` which is faster. Patch by
|
implementation of :func:`~hashlib.pbkdf2_hmac` which is faster. Patch by
|
||||||
Victor Stinner.
|
Victor Stinner.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -706,7 +706,7 @@ Remove modules :mod:`!asyncore` and :mod:`!asynchat`, which were deprecated by
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fix handling of ``bytes`` :term:`path-like objects <path-like object>` in
|
Fix handling of ``bytes`` :term:`path-like objects <path-like object>` in
|
||||||
:func:`os.ismount()`.
|
:func:`os.ismount`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -611,8 +611,8 @@ random.expovariate().
|
||||||
.. nonce: bgtzMV
|
.. nonce: bgtzMV
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
A :exc:`DeprecationWarning` may be raised when :func:`os.fork()` or
|
A :exc:`DeprecationWarning` may be raised when :func:`os.fork` or
|
||||||
:func:`os.forkpty()` is called from multi-threaded processes. Forking with
|
:func:`os.forkpty` is called from multi-threaded processes. Forking with
|
||||||
threads is unsafe and can cause deadlocks, crashes and subtle problems. Lack
|
threads is unsafe and can cause deadlocks, crashes and subtle problems. Lack
|
||||||
of a warning does not indicate that the fork call was actually safe, as
|
of a warning does not indicate that the fork call was actually safe, as
|
||||||
Python may not be aware of all threads.
|
Python may not be aware of all threads.
|
||||||
|
|
|
@ -307,7 +307,7 @@ It must not drop the ``Unpack`` part.
|
||||||
.. nonce: wz4Xgc
|
.. nonce: wz4Xgc
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Add :func:`os.path.splitroot()`, which splits a path into a 3-item tuple
|
Add :func:`os.path.splitroot`, which splits a path into a 3-item tuple
|
||||||
``(drive, root, tail)``. This new function is used by :mod:`pathlib` to
|
``(drive, root, tail)``. This new function is used by :mod:`pathlib` to
|
||||||
improve the performance of path construction by up to a third.
|
improve the performance of path construction by up to a third.
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ Aasland.
|
||||||
.. nonce: DqNehf
|
.. nonce: DqNehf
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Pure python :func:`locale.getencoding()` will not warn deprecation.
|
Pure python :func:`locale.getencoding` will not warn deprecation.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -5148,7 +5148,7 @@ frame did not save the PC`` is found. Patch by Victor Stinner.
|
||||||
.. nonce: qxI4OG
|
.. nonce: qxI4OG
|
||||||
.. section: Tests
|
.. section: Tests
|
||||||
|
|
||||||
libregrtest now calls :func:`random.seed()` before running each test file
|
libregrtest now calls :func:`random.seed` before running each test file
|
||||||
when ``-r/--randomize`` command line option is used. Moreover, it's also
|
when ``-r/--randomize`` command line option is used. Moreover, it's also
|
||||||
called in worker processes. It should help to make tests more
|
called in worker processes. It should help to make tests more
|
||||||
deterministic. Previously, it was only called once in the main process
|
deterministic. Previously, it was only called once in the main process
|
||||||
|
|
|
@ -632,8 +632,8 @@ Add extra argument validation for ``alias`` command in :mod:`pdb`
|
||||||
.. nonce: FWqZIU
|
.. nonce: FWqZIU
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:mod:`time`: Make :func:`time.clock_gettime()` and
|
:mod:`time`: Make :func:`time.clock_gettime` and
|
||||||
:func:`time.clock_gettime_ns()` functions up to 2x faster by faster calling
|
:func:`time.clock_gettime_ns` functions up to 2x faster by faster calling
|
||||||
convention. Patch by Victor Stinner.
|
convention. Patch by Victor Stinner.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -674,7 +674,7 @@ Unix socket when the server is closed.
|
||||||
.. nonce: Bc8LvA
|
.. nonce: Bc8LvA
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Added :func:`io.text_encoding()`, :data:`io.DEFAULT_BUFFER_SIZE`, and
|
Added :func:`io.text_encoding`, :data:`io.DEFAULT_BUFFER_SIZE`, and
|
||||||
:class:`io.IncrementalNewlineDecoder` to ``io.__all__``.
|
:class:`io.IncrementalNewlineDecoder` to ``io.__all__``.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -736,7 +736,7 @@ which allows to format :exc:`ExceptionGroup` instances.
|
||||||
.. nonce: 5ePgFl
|
.. nonce: 5ePgFl
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Another attempt at fixing :func:`asyncio.Server.wait_closed()`. It now
|
Another attempt at fixing :func:`asyncio.Server.wait_closed`. It now
|
||||||
blocks until both conditions are true: the server is closed, *and* there are
|
blocks until both conditions are true: the server is closed, *and* there are
|
||||||
no more active connections. (This means that in some cases where in 3.12.0
|
no more active connections. (This means that in some cases where in 3.12.0
|
||||||
this function would *incorrectly* have returned immediately, it will now
|
this function would *incorrectly* have returned immediately, it will now
|
||||||
|
@ -880,7 +880,7 @@ Make :mod:`pdb` enter post-mortem mode even for :exc:`SyntaxError`
|
||||||
.. nonce: _M-cQC
|
.. nonce: _M-cQC
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Set ``f_trace_lines = True`` on all frames upon :func:`pdb.set_trace()`
|
Set ``f_trace_lines = True`` on all frames upon :func:`pdb.set_trace`
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -555,7 +555,7 @@ Added :data:`mmap.MAP_NORESERVE`, :data:`mmap.MAP_NOEXTEND`,
|
||||||
.. nonce: kXoCy0
|
.. nonce: kXoCy0
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`asyncio.TaskGroup()` and :func:`asyncio.timeout()` context managers
|
:func:`asyncio.TaskGroup` and :func:`asyncio.timeout` context managers
|
||||||
now handle :exc:`~asyncio.CancelledError` subclasses as well as exact
|
now handle :exc:`~asyncio.CancelledError` subclasses as well as exact
|
||||||
:exc:`!CancelledError`.
|
:exc:`!CancelledError`.
|
||||||
|
|
||||||
|
@ -607,7 +607,7 @@ with the documentation)
|
||||||
.. nonce: xN2LuL
|
.. nonce: xN2LuL
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`asyncio.Condition.wait()` now re-raises the same
|
:func:`asyncio.Condition.wait` now re-raises the same
|
||||||
:exc:`CancelledError` instance that may have caused it to be interrupted.
|
:exc:`CancelledError` instance that may have caused it to be interrupted.
|
||||||
Fixed race condition in :func:`asyncio.Semaphore.acquire` when interrupted
|
Fixed race condition in :func:`asyncio.Semaphore.acquire` when interrupted
|
||||||
with a :exc:`CancelledError`.
|
with a :exc:`CancelledError`.
|
||||||
|
@ -1805,7 +1805,7 @@ size.
|
||||||
.. nonce: xPOBBY
|
.. nonce: xPOBBY
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`warnings.filterwarnings()` and :func:`warnings.simplefilter()` now
|
:func:`warnings.filterwarnings` and :func:`warnings.simplefilter` now
|
||||||
raise appropriate exceptions instead of ``AssertionError``. Patch
|
raise appropriate exceptions instead of ``AssertionError``. Patch
|
||||||
contributed by Rémi Lapeyre.
|
contributed by Rémi Lapeyre.
|
||||||
|
|
||||||
|
|
|
@ -336,7 +336,7 @@ for decorated functions.
|
||||||
.. nonce: RzxNYT
|
.. nonce: RzxNYT
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fix several :func:`format()` bugs when using the C implementation of
|
Fix several :func:`format` bugs when using the C implementation of
|
||||||
:class:`~decimal.Decimal`: * memory leak in some rare cases when using the
|
:class:`~decimal.Decimal`: * memory leak in some rare cases when using the
|
||||||
``z`` format option (coerce negative 0) * incorrect output when applying the
|
``z`` format option (coerce negative 0) * incorrect output when applying the
|
||||||
``z`` format option to type ``F`` (fixed-point with capital ``NAN`` /
|
``z`` format option to type ``F`` (fixed-point with capital ``NAN`` /
|
||||||
|
@ -1283,7 +1283,7 @@ Update macOS installer to use OpenSSL 3.0.13.
|
||||||
.. nonce: FrQOQ0
|
.. nonce: FrQOQ0
|
||||||
.. section: macOS
|
.. section: macOS
|
||||||
|
|
||||||
Add Mach-O linkage support for :func:`platform.architecture()`.
|
Add Mach-O linkage support for :func:`platform.architecture`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -446,7 +446,7 @@ regardless of *lineterminator* value.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Restore support of space delimiter with ``skipinitialspace=True`` in
|
Restore support of space delimiter with ``skipinitialspace=True`` in
|
||||||
:mod:`csv`. :func:`csv.writer()` now quotes empty fields if delimiter is a
|
:mod:`csv`. :func:`csv.writer` now quotes empty fields if delimiter is a
|
||||||
space and skipinitialspace is true and raises exception if quoting is not
|
space and skipinitialspace is true and raises exception if quoting is not
|
||||||
possible.
|
possible.
|
||||||
|
|
||||||
|
@ -606,10 +606,10 @@ is complete.
|
||||||
.. nonce: SQ998l
|
.. nonce: SQ998l
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`posixpath.commonpath()` now raises a :exc:`ValueError` exception when
|
:func:`posixpath.commonpath` now raises a :exc:`ValueError` exception when
|
||||||
passed an empty iterable. Previously, :exc:`IndexError` was raised.
|
passed an empty iterable. Previously, :exc:`IndexError` was raised.
|
||||||
|
|
||||||
:func:`posixpath.commonpath()` now raises a :exc:`TypeError` exception when
|
:func:`posixpath.commonpath` now raises a :exc:`TypeError` exception when
|
||||||
passed ``None``. Previously, :exc:`ValueError` was raised.
|
passed ``None``. Previously, :exc:`ValueError` was raised.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -264,7 +264,7 @@ Improve performance of :func:`os.path.join` and :func:`os.path.expanduser`.
|
||||||
.. nonce: hqk9Hn
|
.. nonce: hqk9Hn
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Raise :exc:`TypeError` for non-paths in :func:`posixpath.relpath()`.
|
Raise :exc:`TypeError` for non-paths in :func:`posixpath.relpath`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
@ -582,7 +582,7 @@ in other tests (like importlib.resources).
|
||||||
.. nonce: LV16SL
|
.. nonce: LV16SL
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
On Windows, :func:`time.time()` now uses the
|
On Windows, :func:`time.time` now uses the
|
||||||
``GetSystemTimePreciseAsFileTime()`` clock to have a resolution better than
|
``GetSystemTimePreciseAsFileTime()`` clock to have a resolution better than
|
||||||
1 us, instead of the ``GetSystemTimeAsFileTime()`` clock which has a
|
1 us, instead of the ``GetSystemTimeAsFileTime()`` clock which has a
|
||||||
resolution of 15.6 ms. Patch by Victor Stinner.
|
resolution of 15.6 ms. Patch by Victor Stinner.
|
||||||
|
@ -673,14 +673,14 @@ fused multiply-add function. Patch by Mark Dickinson and Victor Stinner.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
The :mod:`importlib.resources` functions
|
The :mod:`importlib.resources` functions
|
||||||
:func:`~importlib.resources.is_resource()`,
|
:func:`~importlib.resources.is_resource`,
|
||||||
:func:`~importlib.resources.open_binary()`,
|
:func:`~importlib.resources.open_binary`,
|
||||||
:func:`~importlib.resources.open_text()`,
|
:func:`~importlib.resources.open_text`,
|
||||||
:func:`~importlib.resources.path()`,
|
:func:`~importlib.resources.path`,
|
||||||
:func:`~importlib.resources.read_binary()`, and
|
:func:`~importlib.resources.read_binary`, and
|
||||||
:func:`~importlib.resources.read_text()` are un-deprecated, and support
|
:func:`~importlib.resources.read_text` are un-deprecated, and support
|
||||||
subdirectories via multiple positional arguments. The
|
subdirectories via multiple positional arguments. The
|
||||||
:func:`~importlib.resources.contents()` function also allows subdirectories,
|
:func:`~importlib.resources.contents` function also allows subdirectories,
|
||||||
but remains deprecated.
|
but remains deprecated.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -1061,7 +1061,7 @@ when available. Contributed by vxiiduu.
|
||||||
.. nonce: Bwfmp7
|
.. nonce: Bwfmp7
|
||||||
.. section: Windows
|
.. section: Windows
|
||||||
|
|
||||||
On Windows, :func:`time.monotonic()` now uses the
|
On Windows, :func:`time.monotonic` now uses the
|
||||||
``QueryPerformanceCounter()`` clock to have a resolution better than 1 us,
|
``QueryPerformanceCounter()`` clock to have a resolution better than 1 us,
|
||||||
instead of the ``GetTickCount64()`` clock which has a resolution of 15.6 ms.
|
instead of the ``GetTickCount64()`` clock which has a resolution of 15.6 ms.
|
||||||
Patch by Victor Stinner.
|
Patch by Victor Stinner.
|
||||||
|
|
|
@ -1213,7 +1213,7 @@ changed from ``'r'`` to ``'rb'``.
|
||||||
.. nonce: eeS6w7
|
.. nonce: eeS6w7
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fix :func:`inspect.signature()` to correctly handle parameter defaults on
|
Fix :func:`inspect.signature` to correctly handle parameter defaults on
|
||||||
methods in extension modules that use names defined in the module namespace.
|
methods in extension modules that use names defined in the module namespace.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -474,7 +474,7 @@ platforms with OpenSSL 1.0.2+ or inet_pton.
|
||||||
.. nonce: ideco
|
.. nonce: ideco
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`urllib.parse.urlsplit()` does not convert zone-id (scope) to lower
|
:func:`urllib.parse.urlsplit` does not convert zone-id (scope) to lower
|
||||||
case for scoped IPv6 addresses in hostnames now.
|
case for scoped IPv6 addresses in hostnames now.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -434,7 +434,7 @@ loop.getaddrinfo, loop.getnameinfo.
|
||||||
.. nonce: ideco
|
.. nonce: ideco
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`urllib.parse.urlsplit()` does not convert zone-id (scope) to lower
|
:func:`urllib.parse.urlsplit` does not convert zone-id (scope) to lower
|
||||||
case for scoped IPv6 addresses in hostnames now.
|
case for scoped IPv6 addresses in hostnames now.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -463,7 +463,7 @@ Fix ``stop_serving`` in asyncio proactor loop kill all listening servers
|
||||||
.. nonce: CUbsb2
|
.. nonce: CUbsb2
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`re.sub()` now replaces empty matches adjacent to a previous non-empty
|
:func:`re.sub` now replaces empty matches adjacent to a previous non-empty
|
||||||
match.
|
match.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -274,7 +274,7 @@ collections.ChainMap() preserves the order of the underlying mappings.
|
||||||
.. nonce: -T77_c
|
.. nonce: -T77_c
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`fnmatch.translate()` no longer produces patterns which contain set
|
:func:`fnmatch.translate` no longer produces patterns which contain set
|
||||||
operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
|
operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
|
||||||
will be interpreted differently in regular expressions in future versions.
|
will be interpreted differently in regular expressions in future versions.
|
||||||
Currently they emit warnings. fnmatch.translate() now avoids producing
|
Currently they emit warnings. fnmatch.translate() now avoids producing
|
||||||
|
|
|
@ -235,7 +235,7 @@ End framing at the end of C implementation of :func:`pickle.Pickler.dump`.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Improved error handling and fixed a reference leak in
|
Improved error handling and fixed a reference leak in
|
||||||
:func:`os.posix_spawn()`.
|
:func:`os.posix_spawn`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -625,7 +625,7 @@ Spytz.
|
||||||
|
|
||||||
The C function ``property_descr_get()`` uses a "cached" tuple to optimize
|
The C function ``property_descr_get()`` uses a "cached" tuple to optimize
|
||||||
function calls. But this tuple can be discovered in debug mode with
|
function calls. But this tuple can be discovered in debug mode with
|
||||||
:func:`sys.getobjects()`. Remove the optimization, it's not really worth it
|
:func:`sys.getobjects`. Remove the optimization, it's not really worth it
|
||||||
and it causes 3 different crashes last years.
|
and it causes 3 different crashes last years.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -3211,9 +3211,9 @@ bytes objects. (microoptimization)
|
||||||
.. nonce: i-F_E5
|
.. nonce: i-F_E5
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Add :func:`~unittest.addModuleCleanup()` and
|
Add :func:`~unittest.addModuleCleanup` and
|
||||||
:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support cleanups
|
:meth:`~unittest.TestCase.addClassCleanup()` to unittest to support cleanups
|
||||||
for :func:`~unittest.setUpModule()` and
|
for :func:`~unittest.setUpModule` and
|
||||||
:meth:`~unittest.TestCase.setUpClass()`. Patch by Lisa Roach.
|
:meth:`~unittest.TestCase.setUpClass()`. Patch by Lisa Roach.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -3458,7 +3458,7 @@ Running the :mod:`trace` module no longer creates the ``trace.cover`` file.
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Fix crash when an ``ABC``-derived class with invalid ``__subclasses__`` is
|
Fix crash when an ``ABC``-derived class with invalid ``__subclasses__`` is
|
||||||
passed as the second argument to :func:`issubclass()`. Patch by Alexey
|
passed as the second argument to :func:`issubclass`. Patch by Alexey
|
||||||
Izbyshev.
|
Izbyshev.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -5269,7 +5269,7 @@ performance and smaller size compared to protocol 3 introduced in Python
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Improved error handling and fixed a reference leak in
|
Improved error handling and fixed a reference leak in
|
||||||
:func:`os.posix_spawn()`.
|
:func:`os.posix_spawn`.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
@ -5857,7 +5857,7 @@ collections.ChainMap() preserves the order of the underlying mappings.
|
||||||
.. nonce: -T77_c
|
.. nonce: -T77_c
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`fnmatch.translate()` no longer produces patterns which contain set
|
:func:`fnmatch.translate` no longer produces patterns which contain set
|
||||||
operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
|
operations. Sets starting with '[' or containing '--', '&&', '~~' or '||'
|
||||||
will be interpreted differently in regular expressions in future versions.
|
will be interpreted differently in regular expressions in future versions.
|
||||||
Currently they emit warnings. fnmatch.translate() now avoids producing
|
Currently they emit warnings. fnmatch.translate() now avoids producing
|
||||||
|
|
|
@ -176,8 +176,8 @@ Added new ``replace()`` method to the code type (:class:`types.CodeType`).
|
||||||
.. nonce: d1SOtF
|
.. nonce: d1SOtF
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Implement :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`,
|
Implement :func:`socket.if_nameindex`, :func:`socket.if_nametoindex`,
|
||||||
and :func:`socket.if_indextoname()` on Windows.
|
and :func:`socket.if_indextoname` on Windows.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
||||||
|
|
|
@ -149,7 +149,7 @@ exception in :meth:`float.__getformat__`.
|
||||||
.. nonce: 9-vKtO
|
.. nonce: 9-vKtO
|
||||||
.. section: Core and Builtins
|
.. section: Core and Builtins
|
||||||
|
|
||||||
Optimized :func:`math.floor()`, :func:`math.ceil()` and :func:`math.trunc()`
|
Optimized :func:`math.floor`, :func:`math.ceil` and :func:`math.trunc`
|
||||||
for floats.
|
for floats.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -2990,7 +2990,7 @@ mode.
|
||||||
.. nonce: FRGH4I
|
.. nonce: FRGH4I
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`ctypes.create_unicode_buffer()` now also supports non-BMP characters
|
:func:`ctypes.create_unicode_buffer` now also supports non-BMP characters
|
||||||
on platforms with 16-bit :c:type:`wchar_t` (for example, Windows and AIX).
|
on platforms with 16-bit :c:type:`wchar_t` (for example, Windows and AIX).
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -3054,7 +3054,7 @@ Change the format of feature_version to be a (major, minor) tuple.
|
||||||
.. nonce: 5_mJkQ
|
.. nonce: 5_mJkQ
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Eliminate :exc:`RuntimeError` raised by :func:`asyncio.all_tasks()` if
|
Eliminate :exc:`RuntimeError` raised by :func:`asyncio.all_tasks` if
|
||||||
internal tasks weak set is changed by another thread during iteration.
|
internal tasks weak set is changed by another thread during iteration.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
@ -3536,7 +3536,7 @@ Add :meth:`~pathlib.Path.readlink`. Patch by Girts Folkmanis.
|
||||||
.. nonce: La3TZz
|
.. nonce: La3TZz
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Made :func:`urllib.parse.unquote()` accept bytes in addition to strings.
|
Made :func:`urllib.parse.unquote` accept bytes in addition to strings.
|
||||||
Patch by Stein Karlsen.
|
Patch by Stein Karlsen.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -548,7 +548,7 @@ large for an AF_UNIX socket address. Patch by Pablo Galindo.
|
||||||
.. nonce: mxr5m8
|
.. nonce: mxr5m8
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
:func:`ast.dump()` no longer outputs optional fields and attributes with
|
:func:`ast.dump` no longer outputs optional fields and attributes with
|
||||||
default values. The default values for optional fields and attributes of AST
|
default values. The default values for optional fields and attributes of AST
|
||||||
nodes are now set as class attributes (e.g. ``Constant.kind`` is set to
|
nodes are now set as class attributes (e.g. ``Constant.kind`` is set to
|
||||||
``None``).
|
``None``).
|
||||||
|
|
|
@ -866,7 +866,7 @@ of source of the class. Patch by Karthikeyan Singaravelan.
|
||||||
.. nonce: vHC7YQ
|
.. nonce: vHC7YQ
|
||||||
.. section: Library
|
.. section: Library
|
||||||
|
|
||||||
Deprecate passing None as an argument for :func:`shlex.split()`'s ``s``
|
Deprecate passing None as an argument for :func:`shlex.split`'s ``s``
|
||||||
parameter. Patch by Zackery Spytz.
|
parameter. Patch by Zackery Spytz.
|
||||||
|
|
||||||
..
|
..
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Specializations for sums with float and complex inputs in :func:`sum()` now
|
Specializations for sums with float and complex inputs in :func:`sum` now
|
||||||
always use compensated summation. Also, for integer items in above
|
always use compensated summation. Also, for integer items in above
|
||||||
specializations: :c:func:`PyLong_AsDouble` is used, instead of
|
specializations: :c:func:`PyLong_AsDouble` is used, instead of
|
||||||
:c:func:`PyLong_AsLongAndOverflow`. Patch by Sergey B Kirpichev.
|
:c:func:`PyLong_AsLongAndOverflow`. Patch by Sergey B Kirpichev.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Fix memory leak in :func:`re.sub()` when the replacement string contains backreferences.
|
Fix memory leak in :func:`re.sub` when the replacement string contains backreferences.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Hard-coded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace()`) now
|
Hard-coded breakpoints (:func:`breakpoint` and :func:`pdb.set_trace`) now
|
||||||
reuse the most recent ``Pdb`` instance that calls ``Pdb.set_trace()``,
|
reuse the most recent ``Pdb`` instance that calls ``Pdb.set_trace()``,
|
||||||
instead of creating a new one each time. As a result, all the instance specific
|
instead of creating a new one each time. As a result, all the instance specific
|
||||||
data like ``display`` and ``commands`` are preserved across Hard-coded breakpoints.
|
data like ``display`` and ``commands`` are preserved across Hard-coded breakpoints.
|
||||||
|
|
Loading…
Reference in New Issue