.. bpo: 42278
.. date: 2021-08-29-12-39-44
.. nonce: jvmQz_
.. release date: 2021-10-05
.. section: Security

Replaced usage of :func:`tempfile.mktemp` with
:class:`~tempfile.TemporaryDirectory` to avoid a potential race condition.

..

.. bpo: 44600
.. date: 2021-07-25-20-04-54
.. nonce: 0WMldg
.. section: Security

Fix incorrect line numbers while tracing some failed patterns in :ref:`match
<match>` statements. Patch by Charles Burkland.

..

.. bpo: 41180
.. date: 2021-06-29-23-40-22
.. nonce: uTWHv_
.. section: Security

Add auditing events to the :mod:`marshal` module, and stop raising
``code.__init__`` events for every unmarshalled code object. Directly
instantiated code objects will continue to raise an event, and audit event
handlers should inspect or collect the raw marshal data. This reduces a
significant performance overhead when loading from ``.pyc`` files.

..

.. bpo: 44394
.. date: 2021-06-29-02-45-53
.. nonce: A220N1
.. section: Security

Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix
for the :cve:`2013-0340` "Billion Laughs" vulnerability. This copy is most used
on Windows and macOS.

..

.. bpo: 43124
.. date: 2021-05-08-11-50-46
.. nonce: 2CTM6M
.. section: Security

Made the internal ``putcmd`` function in :mod:`smtplib` sanitize input for
presence of ``\r`` and ``\n`` characters to avoid (unlikely) command
injection.

..

.. bpo: 44022
.. date: 2021-05-05-17-37-04
.. nonce: bS3XJ9
.. section: Security

:mod:`http.client` now avoids infinitely reading potential HTTP headers
after a ``100 Continue`` status response from the server.

..

.. bpo: 43760
.. date: 2021-10-04-16-11-50
.. nonce: R9QoUv
.. section: Core and Builtins

The number of hardware branches per instruction dispatch is reduced from two
to one by adding a special instruction for tracing. Patch by Mark Shannon.

..

.. bpo: 45061
.. date: 2021-09-21-22-27-25
.. nonce: 5IOUf0
.. section: Core and Builtins

Add a deallocator to the bool type to detect refcount bugs in C extensions
which call Py_DECREF(Py_True) or Py_DECREF(Py_False) by mistake. Detect also
refcount bugs when the empty tuple singleton or the Unicode empty string
singleton is destroyed by mistake. Patch by Victor Stinner.

..

.. bpo: 24076
.. date: 2021-09-20-10-02-12
.. nonce: ZFgFSj
.. section: Core and Builtins

sum() was further optimised for summing up single digit integers.

..

.. bpo: 45190
.. date: 2021-09-14-10-02-12
.. nonce: ZFRgSj
.. section: Core and Builtins

Update Unicode databases to Unicode 14.0.0.

..

.. bpo: 45167
.. date: 2021-09-14-09-23-59
.. nonce: CPSSoV
.. section: Core and Builtins

Fix deepcopying of :class:`types.GenericAlias` objects.

..

.. bpo: 45155
.. date: 2021-09-09-15-05-17
.. nonce: JRw9TG
.. section: Core and Builtins

:meth:`int.to_bytes` and :meth:`int.from_bytes` now take a default value of
``"big"`` for the ``byteorder`` argument.  :meth:`int.to_bytes` also takes a
default value of ``1`` for the ``length`` argument.

..

.. bpo: 44219
.. date: 2021-09-09-10-32-33
.. nonce: WiYyjz
.. section: Library

Release the GIL while performing ``isatty`` system calls on arbitrary file
descriptors. In particular, this affects :func:`os.isatty`,
:func:`os.device_encoding` and :class:`io.TextIOWrapper`. By extension,
:func:`io.open` in text mode is also affected. This change solves a deadlock
in :func:`os.isatty`. Patch by Vincent Michel in :issue:`44219`.

..

.. bpo: 44959
.. date: 2021-09-08-08-29-41
.. nonce: OSwwPf
.. section: Core and Builtins

Added fallback to extension modules with '.sl' suffix on HP-UX

..

.. bpo: 45121
.. date: 2021-09-07-17-10-16
.. nonce: iG-Hsf
.. section: Library

Fix issue where ``Protocol.__init__`` raises ``RecursionError`` when it's
called directly or via ``super()``. Patch provided by Yurii Karabas.

..

.. bpo: 44348
.. date: 2021-09-07-00-21-04
.. nonce: f8w_Td
.. section: Core and Builtins

The deallocator function of the :exc:`BaseException` type now uses the
trashcan mechanism to prevent stack overflow. For example, when a
:exc:`RecursionError` instance is raised, it can be linked to another
RecursionError through the ``__context__`` attribute or the
``__traceback__`` attribute, and then a chain of exceptions is created. When
the chain is destroyed, nested deallocator function calls can crash with a
stack overflow if the chain is too long compared to the available stack
memory. Patch by Victor Stinner.

..

.. bpo: 45123
.. date: 2021-09-06-21-52-45
.. nonce: 8Eh9iI
.. section: Core and Builtins

Fix PyAiter_Check to only check for the __anext__ presence (not for
__aiter__). Rename PyAiter_Check to PyAIter_Check, PyObject_GetAiter ->
PyObject_GetAIter.

..

.. bpo: 1514420
.. date: 2021-09-03-16-18-10
.. nonce: 2Lumpj
.. section: Core and Builtins

Interpreter no longer attempts to open files with names in angle brackets
(like "<string>" or "<stdin>") when formatting an exception.

..

.. bpo: 41031
.. date: 2021-09-03-12-35-17
.. nonce: yPSJEs
.. section: Core and Builtins

Match C and Python code formatting of unprintable exceptions and exceptions
in the :mod:`__main__` module.

..

.. bpo: 37330
.. date: 2021-09-02-01-28-01
.. nonce: QDjM_l
.. section: Core and Builtins

:func:`open`, :func:`io.open`, :func:`codecs.open` and
:class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline")
in the file mode. This flag was deprecated since Python 3.3. Patch by Victor
Stinner.

..

.. bpo: 45083
.. date: 2021-09-01-23-55-49
.. nonce: cLi9G3
.. section: Core and Builtins

When the interpreter renders an exception, its name now has a complete
qualname. Previously only the class name was concatenated to the module
name, which sometimes resulted in an incorrect full name being displayed.

(This issue impacted only the C code exception rendering, the
:mod:`traceback` module was using qualname already).

..

.. bpo: 34561
.. date: 2021-09-01-19-21-48
.. nonce: uMAVA-
.. section: Core and Builtins

List sorting now uses the merge-ordering strategy from Munro and Wild's
``powersort()``. Unlike the former strategy, this is provably near-optimal
in the entropy of the distribution of run lengths. Most uses of
``list.sort()`` probably won't see a significant time difference, but may
see significant improvements in cases where the former strategy was
exceptionally poor. However, as these are all fast linear-time
approximations to a problem that's inherently at best quadratic-time to
solve truly optimally, it's also possible to contrive cases where the former
strategy did better.

..

.. bpo: 45056
.. date: 2021-09-01-16-55-43
.. nonce: 7AK2d9
.. section: Core and Builtins

Compiler now removes trailing unused constants from co_consts.

..

.. bpo: 45020
.. date: 2021-08-31-17-44-51
.. nonce: ZPI_3L
.. section: Core and Builtins

Add a new command line option, "-X frozen_modules=[on|off]" to opt out of
(or into) using optional frozen modules.  This defaults to "on" (or "off" if
it's running out of the source tree).

..

.. bpo: 45012
.. date: 2021-08-31-11-09-52
.. nonce: ueeOcx
.. section: Library

In :mod:`posix`, release GIL during ``stat()``, ``lstat()``, and
``fstatat()`` syscalls made by :func:`os.DirEntry.stat`. Patch by Stanisław
Skonieczny.

..

.. bpo: 45018
.. date: 2021-08-26-18-44-03
.. nonce: pu8H9L
.. section: Core and Builtins

Fixed pickling of range iterators that iterated for over ``2**32`` times.

..

.. bpo: 45000
.. date: 2021-08-25-23-17-32
.. nonce: XjmyLl
.. section: Core and Builtins

A :exc:`SyntaxError` is now raised when trying to delete :const:`__debug__`.
Patch by Donghee Na.

..

.. bpo: 44963
.. date: 2021-08-25-23-07-10
.. nonce: 5EET8y
.. section: Core and Builtins

Implement ``send()`` and ``throw()`` methods for ``anext_awaitable``
objects. Patch by Pablo Galindo.

..

.. bpo: 44962
.. date: 2021-08-23-19-55-08
.. nonce: J00ftt
.. section: Library

Fix a race in WeakKeyDictionary, WeakValueDictionary and WeakSet when two
threads attempt to commit the last pending removal. This fixes
asyncio.create_task and fixes a data loss in asyncio.run where
shutdown_asyncgens is not run

..

.. bpo: 24234
.. date: 2021-08-23-10-36-55
.. nonce: MGVUQi
.. section: Core and Builtins

Implement the :meth:`__bytes__` special method on the :class:`bytes` type,
so a bytes object ``b``  passes an ``isinstance(b, typing.SupportsBytes)``
check.

..

.. bpo: 24234
.. date: 2021-08-22-12-28-50
.. nonce: n3oTdx
.. section: Core and Builtins

Implement the :meth:`__complex__` special method on the :class:`complex`
type, so a complex number ``z`` passes an ``isinstance(z,
typing.SupportsComplex)`` check.

..

.. bpo: 44954
.. date: 2021-08-19-14-43-24
.. nonce: dLn3lg
.. section: Core and Builtins

Fixed a corner case bug where the result of ``float.fromhex('0x.8p-1074')``
was rounded the wrong way.

..

.. bpo: 44947
.. date: 2021-08-18-19-09-28
.. nonce: mcvGdS
.. section: Core and Builtins

Refine the syntax error for trailing commas in import statements. Patch by
Pablo Galindo.

..

.. bpo: 44945
.. date: 2021-08-18-11-14-38
.. nonce: CO3s77
.. section: Core and Builtins

Specialize the BINARY_ADD instruction using the PEP 659 machinery. Adds five
new instructions:

* BINARY_ADD_ADAPTIVE
* BINARY_ADD_FLOAT
* BINARY_ADD_INT
* BINARY_ADD_UNICODE
* BINARY_ADD_UNICODE_INPLACE_FAST

..

.. bpo: 44929
.. date: 2021-08-16-23-16-17
.. nonce: qpMEky
.. section: Library

Fix some edge cases of ``enum.Flag`` string representation in the REPL.
Patch by Pablo Galindo.

..

.. bpo: 44914
.. date: 2021-08-16-11-36-02
.. nonce: 6Lgrx3
.. section: Core and Builtins

Class version tags are no longer recycled.

This means that a version tag serves as a unique identifier for the state of
a class. We rely on this for effective specialization of the LOAD_ATTR and
other instructions.

..

.. bpo: 44698
.. date: 2021-08-15-10-39-06
.. nonce: lITKNc
.. section: Core and Builtins

Restore behaviour of complex exponentiation with integer-valued exponent of
type :class:`float` or :class:`complex`.

..

.. bpo: 44895
.. date: 2021-08-14-20-13-21
.. nonce: Ic9m90
.. section: Core and Builtins

A debug variable :envvar:`PYTHONDUMPREFSFILE` is added for creating a dump
file which is generated by :option:`--with-trace-refs`. Patch by Donghee
Na.

..

.. bpo: 44900
.. date: 2021-08-12-14-00-57
.. nonce: w2gpwy
.. section: Core and Builtins

Add five superinstructions for PEP 659 quickening:

* LOAD_FAST LOAD_FAST
* STORE_FAST LOAD_FAST
* LOAD_FAST LOAD_CONST
* LOAD_CONST LOAD_FAST
* STORE_FAST STORE_FAST

..

.. bpo: 44889
.. date: 2021-08-11-20-45-02
.. nonce: 2T3nTn
.. section: Core and Builtins

Initial implementation of adaptive specialization of ``LOAD_METHOD``. The
following specialized forms were added:

* ``LOAD_METHOD_CACHED``

* ``LOAD_METHOD_MODULE``

* ``LOAD_METHOD_CLASS``

..

.. bpo: 44890
.. date: 2021-08-11-16-46-27
.. nonce: PwNg8N
.. section: Core and Builtins

Specialization stats are always collected in debug builds.

..

.. bpo: 44885
.. date: 2021-08-11-15-39-57
.. nonce: i4noUO
.. section: Core and Builtins

Correct the ast locations of f-strings with format specs and repeated
expressions. Patch by Pablo Galindo

..

.. bpo: 44878
.. date: 2021-08-11-14-12-41
.. nonce: pAbBfc
.. section: Core and Builtins

Remove the loop from the bytecode interpreter. All instructions end with a
DISPATCH macro, so the loop is now redundant.

..

.. bpo: 44878
.. date: 2021-08-11-12-03-52
.. nonce: nEhjLi
.. section: Core and Builtins

Remove switch statement for interpreter loop when using computed gotos. This
makes sure that we only have one dispatch table in the interpreter.

..

.. bpo: 44874
.. date: 2021-08-09-19-05-20
.. nonce: oOcfU4
.. section: Core and Builtins

Deprecate the old trashcan macros
(``Py_TRASHCAN_SAFE_BEGIN``/``Py_TRASHCAN_SAFE_END``). They should be
replaced by the new macros ``Py_TRASHCAN_BEGIN`` and ``Py_TRASHCAN_END``.

..

.. bpo: 44872
.. date: 2021-08-09-16-16-03
.. nonce: OKRlhK
.. section: Core and Builtins

Use new trashcan macros (Py_TRASHCAN_BEGIN/END) in frameobject.c instead of
the old ones (Py_TRASHCAN_SAFE_BEGIN/END).

..

.. bpo: 33930
.. date: 2021-08-09-14-29-52
.. nonce: --5LQ-
.. section: Core and Builtins

Fix segmentation fault with deep recursion when cleaning method objects.
Patch by Augusto Goulart and Pablo Galindo.

..

.. bpo: 25782
.. date: 2021-08-07-21-39-19
.. nonce: B22lMx
.. section: Core and Builtins

Fix bug where ``PyErr_SetObject`` hangs when the current exception has a
cycle in its context chain.

..

.. bpo: 44856
.. date: 2021-08-07-01-26-12
.. nonce: 9rk3li
.. section: Core and Builtins

Fix reference leaks in the error paths of ``update_bases()`` and
``__build_class__``. Patch by Pablo Galindo.

..

.. bpo: 44826
.. date: 2021-08-05-17-49-55
.. nonce: zQsyK5
.. section: Core and Builtins

Initial implementation of adaptive specialization of STORE_ATTR

Three specialized forms of STORE_ATTR are added:

* STORE_ATTR_SLOT

* STORE_ATTR_SPLIT_KEYS

* STORE_ATTR_WITH_HINT

..

.. bpo: 44838
.. date: 2021-08-05-17-42-03
.. nonce: r_Lkj_
.. section: Core and Builtins

Fixed a bug that was causing the parser to raise an incorrect custom
:exc:`SyntaxError` for invalid 'if' expressions. Patch by Pablo Galindo.

..

.. bpo: 44821
.. date: 2021-08-04-11-37-38
.. nonce: 67YHGI
.. section: Core and Builtins

Create instance dictionaries (__dict__) eagerly, to improve regularity of
object layout and assist specialization.

..

.. bpo: 44792
.. date: 2021-07-31-12-12-57
.. nonce: mOReTW
.. section: Core and Builtins

Improve syntax errors for if expressions. Patch by Miguel Brito

..

.. bpo: 34013
.. date: 2021-07-27-11-14-22
.. nonce: SjLFe-
.. section: Core and Builtins

Generalize the invalid legacy statement custom error message (like the one
generated when "print" is called without parentheses) to include more
generic expressions. Patch by Pablo Galindo

..

.. bpo: 44732
.. date: 2021-07-26-15-27-03
.. nonce: IxObt3
.. section: Core and Builtins

Rename ``types.Union`` to ``types.UnionType``.

..

.. bpo: 44725
.. date: 2021-07-23-15-17-01
.. nonce: qcuKaa
.. section: Core and Builtins

Expose specialization stats in python via
:func:`!_opcode.get_specialization_stats`.

..

.. bpo: 44717
.. date: 2021-07-23-01-52-13
.. nonce: -vVmAh
.. section: Core and Builtins

Improve AttributeError on circular imports of submodules.

..

.. bpo: 44698
.. date: 2021-07-21-15-26-56
.. nonce: DA4_0o
.. section: Core and Builtins

Fix undefined behaviour in complex object exponentiation.

..

.. bpo: 44653
.. date: 2021-07-19-20-49-06
.. nonce: WcqGyI
.. section: Core and Builtins

Support :mod:`typing` types in parameter substitution in the union type.

..

.. bpo: 44676
.. date: 2021-07-19-19-53-46
.. nonce: WgIMvh
.. section: Core and Builtins

Add ability to serialise ``types.Union`` objects. Patch provided by Yurii
Karabas.

..

.. bpo: 44633
.. date: 2021-07-17-21-04-04
.. nonce: 5-zKeI
.. section: Core and Builtins

Parameter substitution of the union type with wrong types now raises
``TypeError`` instead of returning :data:`NotImplemented`.

..

.. bpo: 44661
.. date: 2021-07-17-14-20-59
.. nonce: BQbXiH
.. section: Core and Builtins

Update ``property_descr_set`` to use vectorcall if possible. Patch by
Donghee Na.

..

.. bpo: 44662
.. date: 2021-07-17-13-41-58
.. nonce: q22kWR
.. section: Core and Builtins

Add ``__module__`` to ``types.Union``. This also fixes ``types.Union``
issues with ``typing.Annotated``. Patch provided by Yurii Karabas.

..

.. bpo: 44655
.. date: 2021-07-16-21-35-14
.. nonce: 95I7M6
.. section: Core and Builtins

Include the name of the type in unset __slots__ attribute errors. Patch by
Pablo Galindo

..

.. bpo: 44655
.. date: 2021-07-16-20-25-37
.. nonce: I3wRjL
.. section: Core and Builtins

Don't include a missing attribute with the same name as the failing one when
offering suggestions for missing attributes. Patch by Pablo Galindo

..

.. bpo: 44646
.. date: 2021-07-16-09-59-13
.. nonce: Yb6s05
.. section: Core and Builtins

Fix the hash of the union type: it no longer depends on the order of
arguments.

..

.. bpo: 44636
.. date: 2021-07-16-09-36-12
.. nonce: ZWebi8
.. section: Core and Builtins

Collapse union of equal types. E.g. the result of ``int | int`` is now
``int``. Fix comparison of the union type with non-hashable objects. E.g.
``int | str == {}`` no longer raises a TypeError.

..

.. bpo: 44611
.. date: 2021-07-16-01-01-11
.. nonce: LcfHN-
.. section: Library

On Windows, :func:`os.urandom`: uses BCryptGenRandom API instead of
CryptGenRandom API which is deprecated from Microsoft Windows API. Patch by
Donghee Na.

..

.. bpo: 44635
.. date: 2021-07-14-13-54-07
.. nonce: 7ZMAdB
.. section: Core and Builtins

Convert ``None`` to ``type(None)`` in the union type constructor.

..

.. bpo: 26280
.. date: 2021-07-14-10-31-10
.. nonce: cgpM4B
.. section: Core and Builtins

Implement adaptive specialization for BINARY_SUBSCR

Three specialized forms of BINARY_SUBSCR are added:

* BINARY_SUBSCR_LIST_INT

* BINARY_SUBSCR_TUPLE_INT

* BINARY_SUBSCR_DICT

..

.. bpo: 44589
.. date: 2021-07-13-23-19-41
.. nonce: 59OH8T
.. section: Core and Builtins

Mapping patterns in ``match`` statements with two or more equal literal keys
will now raise a :exc:`SyntaxError` at compile-time.

..

.. bpo: 44606
.. date: 2021-07-13-20-22-12
.. nonce: S3Bv2w
.. section: Core and Builtins

Fix ``__instancecheck__`` and ``__subclasscheck__`` for the union type.

..

.. bpo: 42073
.. date: 2021-07-13-17-47-32
.. nonce: 9wopiC
.. section: Core and Builtins

The ``@classmethod`` decorator can now wrap other classmethod-like
descriptors.

..

.. bpo: 41972
.. date: 2021-07-12-04-06-57
.. nonce: nDX5k_
.. section: Core and Builtins

Tuned the string-searching algorithm of fastsearch.h to have a shorter inner
loop for most cases.

..

.. bpo: 44590
.. date: 2021-07-09-12-08-17
.. nonce: a2ntVX
.. section: Core and Builtins

All necessary data for executing a Python function (local variables, stack,
etc) is now kept in a per-thread stack. Frame objects are lazily allocated
on demand. This increases performance by about 7% on the standard benchmark
suite. Introspection and debugging are unaffected as frame objects are
always available when needed. Patch by Mark Shannon.

..

.. bpo: 44584
.. date: 2021-07-08-12-18-56
.. nonce: qKnSqV
.. section: Core and Builtins

The threading debug (:envvar:`!PYTHONTHREADDEBUG` environment variable) is
deprecated in Python 3.10 and will be removed in Python 3.12. This feature
requires a debug build of Python. Patch by Victor Stinner.

..

.. bpo: 43895
.. date: 2021-07-07-16-05-35
.. nonce: JFjR0-
.. section: Core and Builtins

An obsolete internal cache of shared object file handles added in 1995 that
attempted, but did not guarantee, that a .so would not be dlopen'ed twice to
work around flaws in mid-1990s posix-ish operating systems has been removed
from dynload_shlib.c.

..

.. bpo: 44490
.. date: 2021-07-06-22-22-15
.. nonce: BJxPbZ
.. section: Library

:mod:`typing` now searches for type parameters in ``types.Union`` objects.
``get_type_hints`` will also properly resolve annotations with nested
``types.Union`` objects. Patch provided by Yurii Karabas.

..

.. bpo: 43950
.. date: 2021-07-06-15-27-11
.. nonce: LhL2-q
.. section: Core and Builtins

Code objects can now provide the column information for instructions when
available. This is levaraged during traceback printing to show the
expressions responsible for errors.

Contributed by Pablo Galindo, Batuhan Taskaya and Ammar Askar as part of
:pep:`657`.

..

.. bpo: 44562
.. date: 2021-07-04-23-38-51
.. nonce: QdeRQo
.. section: Core and Builtins

Remove uses of :c:func:`PyObject_GC_Del` in error path when initializing
:class:`types.GenericAlias`.

..

.. bpo: 41486
.. date: 2021-07-04-17-41-47
.. nonce: DiM24a
.. section: Library

Fix a memory consumption and copying performance regression in earlier 3.10
beta releases if someone used an output buffer larger than 4GiB with
zlib.decompress on input data that expands that large.

..

.. bpo: 43908
.. date: 2021-07-03-00-20-39
.. nonce: YHuV_s
.. section: Core and Builtins

Heap types with the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag can now inherit
the :pep:`590` vectorcall protocol.  Previously, this was only possible for
:ref:`static types <static-types>`.  Patch by Erlend E. Aasland.

..

.. bpo: 44553
.. date: 2021-07-02-22-54-41
.. nonce: l9YqGg
.. section: Core and Builtins

Implement GC methods for ``types.Union`` to break reference cycles and
prevent memory leaks.

..

.. bpo: 44490
.. date: 2021-07-01-11-59-34
.. nonce: xY80VR
.. section: Core and Builtins

Add ``__parameters__`` attribute and ``__getitem__`` operator to
``types.Union``. Patch provided by Yurii Karabas.

..

.. bpo: 44523
.. date: 2021-06-29-11-49-29
.. nonce: 67-ZIP
.. section: Core and Builtins

Remove the pass-through for :func:`hash` of :class:`weakref.proxy` objects
to prevent unintended consequences when the original referred object dies
while the proxy is part of a hashable object. Patch by Pablo Galindo.

..

.. bpo: 44483
.. date: 2021-06-22-19-08-19
.. nonce: eq2f7T
.. section: Core and Builtins

Fix a crash in ``types.Union`` objects when creating a union of an object
with bad ``__module__`` field.

..

.. bpo: 44486
.. date: 2021-06-22-10-55-23
.. nonce: wct-9X
.. section: Core and Builtins

Modules will always have a dictionary, even when created by
``types.ModuleType.__new__()``

..

.. bpo: 44472
.. date: 2021-06-21-11-19-54
.. nonce: Vvm1yn
.. section: Core and Builtins

Fix ltrace functionality when exceptions are raised. Patch by Pablo Galindo

..

.. bpo: 12022
.. date: 2021-06-20-10-53-21
.. nonce: SW240M
.. section: Core and Builtins

A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in
:keyword:`with` and :keyword:`async with` statements for objects which do
not support the :term:`context manager` or :term:`asynchronous context
manager` protocols correspondingly.

..

.. bpo: 44297
.. date: 2021-06-19-12-41-13
.. nonce: F53vHj
.. section: Core and Builtins

Make sure that the line number is set when entering a comprehension scope.
This ensures that backtraces including generator expressions show the correct
line number.

..

.. bpo: 44456
.. date: 2021-06-18-22-08-25
.. nonce: L0Rhko
.. section: Core and Builtins

Improve the syntax error when mixing positional and keyword patterns. Patch
by Pablo Galindo.

..

.. bpo: 44409
.. date: 2021-06-13-23-12-18
.. nonce: eW4LS-
.. section: Core and Builtins

Fix error location information for tokenizer errors raised on initialization
of the tokenizer. Patch by Pablo Galindo.

..

.. bpo: 44396
.. date: 2021-06-11-18-17-42
.. nonce: Z9EKim
.. section: Core and Builtins

Fix a possible crash in the tokenizer when raising syntax errors for
unclosed strings. Patch by Pablo Galindo.

..

.. bpo: 44376
.. date: 2021-06-11-17-37-15
.. nonce: zhM1UW
.. section: Core and Builtins

Exact integer exponentiation (like ``i**2`` or ``pow(i, 2)``) with a small
exponent is much faster, due to reducing overhead in such cases.

..

.. bpo: 44313
.. date: 2021-06-10-16-10-39
.. nonce: 34RjI8
.. section: Core and Builtins

Directly imported objects and modules (through import and from import
statements) don't generate ``LOAD_METHOD``/``CALL_METHOD`` for directly
accessed objects on their namespace. They now use the regular
``LOAD_ATTR``/``CALL_FUNCTION``.

..

.. bpo: 44338
.. date: 2021-06-10-10-06-18
.. nonce: c4Myr4
.. section: Core and Builtins

Implement adaptive specialization for LOAD_GLOBAL

Two specialized forms of LOAD_GLOBAL are added:

* LOAD_GLOBAL_MODULE

* LOAD_GLOBAL_BUILTIN

..

.. bpo: 44368
.. date: 2021-06-09-22-56-59
.. nonce: vgT0Cx
.. section: Core and Builtins

Improve syntax errors for invalid "as" targets. Patch by Pablo Galindo

..

.. bpo: 44349
.. date: 2021-06-08-22-49-06
.. nonce: xgEgeA
.. section: Core and Builtins

Fix an edge case when displaying text from files with encoding in syntax
errors. Patch by Pablo Galindo.

..

.. bpo: 44337
.. date: 2021-06-08-10-22-46
.. nonce: RTjmIt
.. section: Core and Builtins

Initial implementation of adaptive specialization of LOAD_ATTR

Four specialized forms of LOAD_ATTR are added:

* LOAD_ATTR_SLOT

* LOAD_ATTR_SPLIT_KEYS

* LOAD_ATTR_WITH_HINT

* LOAD_ATTR_MODULE

..

.. bpo: 44335
.. date: 2021-06-08-01-13-47
.. nonce: GQTTkl
.. section: Core and Builtins

Fix a regression when identifying incorrect characters in syntax errors.
Patch by Pablo Galindo

..

.. bpo: 43693
.. date: 2021-06-07-15-13-44
.. nonce: c_zDeY
.. section: Core and Builtins

Computation of the offsets of cell variables is done in the compiler instead
of at runtime. This reduces the overhead of handling cell and free
variables, especially in the case where a variable is both an argument and
cell variable.

..

.. bpo: 44317
.. date: 2021-06-06-00-29-14
.. nonce: xPPhcZ
.. section: Core and Builtins

Improve tokenizer error with improved locations. Patch by Pablo Galindo.

..

.. bpo: 44304
.. date: 2021-06-05-02-34-57
.. nonce: _MAoPc
.. section: Library

Fix a crash in the :mod:`sqlite3` module that happened when the garbage
collector clears :class:`sqlite.Statement` objects. Patch by Pablo Galindo

..

.. bpo: 44305
.. date: 2021-06-03-22-51-50
.. nonce: 66dVDG
.. section: Core and Builtins

Improve error message for ``try`` blocks without ``except`` or ``finally``
blocks. Patch by Pablo Galindo.

..

.. bpo: 43413
.. date: 2021-05-30-16-37-47
.. nonce: vYFPPC
.. section: Core and Builtins

Constructors of subclasses of some builtin classes (e.g. :class:`tuple`,
:class:`list`, :class:`frozenset`) no longer accept arbitrary keyword
arguments. [reverted in 3.11a4] Subclass of :class:`set` can now define a ``__new__()`` method
with additional keyword parameters without overriding also ``__init__()``.

..

.. bpo: 43667
.. date: 2021-05-27-17-34-29
.. nonce: ND9jP3
.. section: Core and Builtins

Improve Unicode support in non-UTF locales on Oracle Solaris. This issue
does not affect other Solaris systems.

..

.. bpo: 43693
.. date: 2021-05-26-19-10-47
.. nonce: 1KSG9u
.. section: Core and Builtins

A new opcode MAKE_CELL has been added that effectively moves some of the
work done on function entry into the compiler and into the eval loop.  In
addition to creating the required cell objects, the new opcode converts
relevant arguments (and other locals) to cell variables on function entry.

..

.. bpo: 44232
.. date: 2021-05-25-18-20-10
.. nonce: DMcCCf
.. section: Core and Builtins

Fix a regression in :func:`type` when a metaclass raises an exception. The C
function :c:func:`type_new` must properly report the exception when a
metaclass constructor raises an exception and the winner class is not the
metaclass. Patch by Victor Stinner.

..

.. bpo: 44201
.. date: 2021-05-21-21-16-03
.. nonce: bGaSjt
.. section: Core and Builtins

Avoid side effects of checking for specialized syntax errors in the REPL
that was causing it to ask for extra tokens after a syntax error had been
detected. Patch by Pablo Galindo

..

.. bpo: 43693
.. date: 2021-05-21-20-53-49
.. nonce: -NN3J_
.. section: Core and Builtins

``PyCodeObject`` gained ``co_fastlocalnames`` and ``co_fastlocalkinds`` as
the authoritative source of fast locals info.  Marshaled code objects
have changed accordingly.

..

.. bpo: 44184
.. date: 2021-05-21-01-42-45
.. nonce: 9qOptC
.. section: Core and Builtins

Fix a crash at Python exit when a deallocator function removes the last
strong reference to a heap type. Patch by Victor Stinner.

..

.. bpo: 44187
.. date: 2021-05-20-12-43-04
.. nonce: 3lk0L1
.. section: Core and Builtins

Implement quickening in the interpreter. This offers no advantages as yet,
but is an enabler of future optimizations. See PEP 659 for full explanation.

..

.. bpo: 44180
.. date: 2021-05-19-20-33-36
.. nonce: mQVaAs
.. section: Core and Builtins

The parser doesn't report generic syntax errors that happen in a position
further away that the one it reached in the first pass. Patch by Pablo
Galindo

..

.. bpo: 44168
.. date: 2021-05-18-11-27-02
.. nonce: mgB-rt
.. section: Core and Builtins

Fix error message in the parser involving keyword arguments with invalid
expressions. Patch by Pablo Galindo

..

.. bpo: 44156
.. date: 2021-05-17-20-44-45
.. nonce: 8KSp9l
.. section: Core and Builtins

String caches in ``compile.c`` are now subinterpreter compatible.

..

.. bpo: 44143
.. date: 2021-05-15-17-30-57
.. nonce: 7UTS6H
.. section: Core and Builtins

Fixed a crash in the parser that manifest when raising tokenizer errors when
an existing exception was present. Patch by Pablo Galindo.

..

.. bpo: 44032
.. date: 2021-05-14-20-03-32
.. nonce: OzT1ob
.. section: Core and Builtins

Move 'fast' locals and other variables from the frame object to a per-thread
datastack.

..

.. bpo: 44114
.. date: 2021-05-12-14-26-16
.. nonce: p-WfAE
.. section: Core and Builtins

Fix incorrect dictkeys_reversed and dictitems_reversed function signatures
in C code, which broke webassembly builds.

..

.. bpo: 44110
.. date: 2021-05-11-21-52-44
.. nonce: VqbAsB
.. section: Core and Builtins

Improve :func:`str.__getitem__` error message

..

.. bpo: 26110
.. date: 2021-05-10-18-49-13
.. nonce: EQzqqA
.. section: Core and Builtins

Add ``CALL_METHOD_KW`` opcode to speed up method calls with keyword
arguments.  Idea originated from PyPy.  A side effect is executing
``CALL_METHOD`` is now branchless in the evaluation loop.

..

.. bpo: 28307
.. date: 2021-05-08-19-54-57
.. nonce: 7ysaVW
.. section: Core and Builtins

Compiler now optimizes simple C-style formatting with literal format
containing only format codes %s, %r and %a by converting them to f-string
expressions.

..

.. bpo: 43149
.. date: 2021-05-08-17-18-37
.. nonce: Kp5FxD
.. section: Core and Builtins

Correct the syntax error message regarding multiple exception types to not
refer to "exception groups". Patch by Pablo Galindo

..

.. bpo: 43822
.. date: 2021-05-04-01-01-04
.. nonce: 9VeCg0
.. section: Core and Builtins

The parser will prioritize tokenizer errors over custom syntax errors when
raising exceptions. Patch by Pablo Galindo.

..

.. bpo: 40222
.. date: 2021-04-30-15-48-36
.. nonce: j3VxeX
.. section: Core and Builtins

"Zero cost" exception handling.

* Uses a lookup table to determine how to handle exceptions.
* Removes SETUP_FINALLY and POP_TOP block instructions, eliminating the runtime overhead of try statements.
* Reduces the size of the frame object by about 60%.

Patch by Mark Shannon

..

.. bpo: 43918
.. date: 2021-04-23-03-46-45
.. nonce: nNDY3S
.. section: Core and Builtins

Document the signature and ``default`` argument in the docstring of the new
``anext`` builtin.

..

.. bpo: 43833
.. date: 2021-04-18-18-07-33
.. nonce: oChkCi
.. section: Core and Builtins

Emit a deprecation warning if the numeric literal is immediately followed by
one of keywords: and, else, for, if, in, is, or. Raise a syntax error with
more informative message if it is immediately followed by other keyword or
identifier.

..

.. bpo: 43879
.. date: 2021-04-17-16-08-00
.. nonce: zkyJgh
.. section: Core and Builtins

Add native_thread_id to PyThreadState. Patch by Gabriele N. Tornetta.

..

.. bpo: 43693
.. date: 2021-04-02-15-02-16
.. nonce: l3Ureu
.. section: Core and Builtins

Compute cell offsets relative to locals in compiler. Allows the interpreter
to treats locals and cells a single array, which is slightly more efficient.
Also make the LOAD_CLOSURE opcode an alias for LOAD_FAST.  Preserving
LOAD_CLOSURE helps keep bytecode a bit more readable.

..

.. bpo: 17792
.. date: 2021-03-22-17-50-30
.. nonce: _zssjS
.. section: Core and Builtins

More accurate error messages for access of unbound locals or free vars.

..

.. bpo: 28146
.. date: 2021-01-13-19-34-41
.. nonce: AZBBkH
.. section: Core and Builtins

Fix a confusing error message in :func:`str.format`.

..

.. bpo: 11105
.. date: 2020-06-02-13-21-14
.. nonce: wceryW
.. section: Core and Builtins

When compiling :class:`ast.AST` objects with recursive references through
:func:`compile`, the interpreter doesn't crash anymore instead it raises a
:exc:`RecursionError`.

..

.. bpo: 39091
.. date: 2019-12-21-14-18-32
.. nonce: dOexgQ
.. section: Core and Builtins

Fix crash when using passing a non-exception to a generator's ``throw()``
method. Patch by Noah Oxer

..

.. bpo: 33346
.. date: 2018-05-11-12-44-03
.. nonce: ZgBkvB
.. section: Core and Builtins

Asynchronous comprehensions are now allowed inside comprehensions in
asynchronous functions.  Outer comprehensions implicitly become
asynchronous.

..

.. bpo: 45371
.. date: 2021-10-05-11-03-48
.. nonce: NOwcDJ
.. section: Library

Fix clang rpath issue in ``distutils``. The UnixCCompiler now uses
correct clang option to add a runtime library directory (rpath) to a shared
library.

..

.. bpo: 45329
.. date: 2021-10-01-13-09-53
.. nonce: 9iMYaO
.. section: Library

Fix freed memory access in :class:`pyexpat.xmlparser` when building it with
an installed expat library <= 2.2.0.

..

.. bpo: 41710
.. date: 2021-09-30-23-00-18
.. nonce: svuloZ
.. section: Library

On Unix, if the ``sem_clockwait()`` function is available in the C library
(glibc 2.30 and newer), the :meth:`threading.Lock.acquire` method now uses
the monotonic clock (:const:`time.CLOCK_MONOTONIC`) for the timeout, rather
than using the system clock (:const:`time.CLOCK_REALTIME`), to not be
affected by system clock changes. Patch by Victor Stinner.

..

.. bpo: 1596321
.. date: 2021-09-24-17-20-23
.. nonce: 3nhPUk
.. section: Library

Fix the :func:`threading._shutdown` function when the :mod:`threading`
module was imported first from a thread different than the main thread: no
longer log an error at Python exit.

..

.. bpo: 45274
.. date: 2021-09-23-22-17-26
.. nonce: gPpa4E
.. section: Library

Fix a race condition in the :meth:`Thread.join() <threading.Thread.join>`
method of the :mod:`threading` module. If the function is interrupted by a
signal and the signal handler raises an exception, make sure that the thread
remains in a consistent state to prevent a deadlock. Patch by Victor
Stinner.

..

.. bpo: 21302
.. date: 2021-09-22-23-56-15
.. nonce: vvQ3Su
.. section: Library

In Unix operating systems, :func:`time.sleep` now uses the ``nanosleep()``
function, if ``clock_nanosleep()`` is not available but ``nanosleep()`` is
available. ``nanosleep()`` allows to sleep with nanosecond precision.

..

.. bpo: 21302
.. date: 2021-09-20-22-46-40
.. nonce: h56430
.. section: Library

On Windows, :func:`time.sleep` now uses a waitable timer which has a
resolution of 100 nanoseconds (10\ :sup:`-7` seconds). Previously, it had a
resolution of 1 millisecond (10\ :sup:`-3` seconds). Patch by Benjamin Szőke and
Victor Stinner.

..

.. bpo: 45238
.. date: 2021-09-18-16-56-33
.. nonce: Hng_9V
.. section: Library

Fix :meth:`unittest.IsolatedAsyncioTestCase.debug`: it runs now asynchronous
methods and callbacks.

..

.. bpo: 36674
.. date: 2021-09-18-13-14-57
.. nonce: a2k5Zb
.. section: Library

:meth:`unittest.TestCase.debug` raises now a :class:`unittest.SkipTest` if
the class or the test method are decorated with the skipping decorator.

..

.. bpo: 45235
.. date: 2021-09-17-16-55-37
.. nonce: sXnmPA
.. section: Library

Fix an issue where argparse would not preserve values in a provided
namespace when using a subparser with defaults.

..

.. bpo: 45183
.. date: 2021-09-17-15-58-53
.. nonce: Vv_vch
.. section: Library

Have zipimport.zipimporter.find_spec() not raise an exception when the
underlying zip file has been deleted and the internal cache has been reset
via invalidate_cache().

..

.. bpo: 45234
.. date: 2021-09-17-11-20-55
.. nonce: qUcTVt
.. section: Library

Fixed a regression in :func:`~shutil.copyfile`, :func:`~shutil.copy`,
:func:`~shutil.copy2` raising :exc:`FileNotFoundError` when source is a
directory, which should raise :exc:`IsADirectoryError`

..

.. bpo: 45228
.. date: 2021-09-17-09-59-33
.. nonce: WV1dcT
.. section: Library

Fix stack buffer overflow in parsing J1939 network address.

..

.. bpo: 45225
.. date: 2021-09-16-19-02-14
.. nonce: xmKV4i
.. section: Library

use map function instead of genexpr in capwords.

..

.. bpo: 42135
.. date: 2021-09-13-19-32-58
.. nonce: 1ZAHqR
.. section: Library

Fix typo: ``importlib.find_loader`` is really slated for removal in Python
3.12 not 3.10, like the others in PR 25169.

Patch by Hugo van Kemenade.

..

.. bpo: 20524
.. date: 2021-09-13-14-59-01
.. nonce: PMQ1Fh
.. section: Library

Improves error messages on ``.format()`` operation for ``str``, ``float``,
``int``, and ``complex``. New format now shows the problematic pattern and
the object type.

..

.. bpo: 45168
.. date: 2021-09-13-14-28-49
.. nonce: Z1mfW4
.. section: Library

Change :func:`dis.dis` output to omit op arg values that cannot be resolved
due to ``co_consts``, ``co_names`` etc not being provided. Previously the
oparg itself was repeated in the value field, which is not useful and can be
confusing.

..

.. bpo: 21302
.. date: 2021-09-11-18-44-40
.. nonce: QxHRpR
.. section: Library

In Unix operating systems, :func:`time.sleep` now uses the
``clock_nanosleep()`` function, if available, which allows to sleep for an
interval specified with nanosecond precision.

..

.. bpo: 45173
.. date: 2021-09-11-17-46-20
.. nonce: UptGAn
.. section: Library

Remove from the :mod:`configparser` module: the :class:`!SafeConfigParser`
class, the :attr:`!filename` property of the :class:`~configparser.ParsingError` class, the
:meth:`!readfp` method of the :class:`~configparser.ConfigParser` class, deprecated since
Python 3.2.

Patch by Hugo van Kemenade.

..

.. bpo: 44987
.. date: 2021-09-11-14-41-02
.. nonce: Mt8DiX
.. section: Library

Pure ASCII strings are now normalized in constant time by
:func:`unicodedata.normalize`. Patch by Donghee Na.

..

.. bpo: 35474
.. date: 2021-09-11-10-45-12
.. nonce: tEY3SD
.. section: Library

Calling :func:`mimetypes.guess_all_extensions` with ``strict=False`` no
longer affects the result of the following call with ``strict=True``. Also,
mutating the returned list no longer affects the global state.

..

.. bpo: 45166
.. date: 2021-09-10-21-35-53
.. nonce: UHipXF
.. section: Library

:func:`typing.get_type_hints` now works with :data:`~typing.Final` wrapped
in :class:`~typing.ForwardRef`.

..

.. bpo: 45162
.. date: 2021-09-10-13-20-53
.. nonce: 2Jh-lq
.. section: Library

Remove many old deprecated :mod:`unittest` features:

* "``fail*``" and "``assert*``" aliases of :class:`~unittest.TestCase` methods.
* Broken from start :class:`~unittest.TestCase` method ``assertDictContainsSubset()``.
* Ignored :meth:`<unittest.TestLoader.loadTestsFromModule> TestLoader.loadTestsFromModule` parameter *use_load_tests*.
* Old alias ``_TextTestResult`` of :class:`~unittest.TextTestResult`.

..

.. bpo: 38371
.. date: 2021-09-08-13-19-29
.. nonce: y1kEfP
.. section: Library

Remove the deprecated ``split()`` method of :class:`!_tkinter.TkappType`.
Patch by Erlend E. Aasland.

..

.. bpo: 20499
.. date: 2021-09-08-01-19-31
.. nonce: tSxx8Y
.. section: Library

Improve the speed and accuracy of statistics.pvariance().

..

.. bpo: 45132
.. date: 2021-09-07-16-33-51
.. nonce: WI9zQY
.. section: Library

Remove :meth:`~object.__getitem__` methods of
:class:`xml.dom.pulldom.DOMEventStream`, :class:`wsgiref.util.FileWrapper`
and :class:`fileinput.FileInput`, deprecated since Python 3.9.

Patch by Hugo van Kemenade.

..

.. bpo: 45129
.. date: 2021-09-07-14-27-39
.. nonce: vXH0gw
.. section: Library

Due to significant security concerns, the *reuse_address* parameter of
:meth:`asyncio.loop.create_datagram_endpoint`, disabled in Python 3.9, is
now entirely removed. This is because of the behavior of the socket option
``SO_REUSEADDR`` in UDP.

Patch by Hugo van Kemenade.

..

.. bpo: 45124
.. date: 2021-09-07-09-13-27
.. nonce: Kw5AUs
.. section: Library

The ``bdist_msi`` command, deprecated in Python 3.9, is now removed.

Use ``bdist_wheel`` (wheel packages) instead.

Patch by Hugo van Kemenade.

..

.. bpo: 30856
.. date: 2021-09-05-21-37-28
.. nonce: jj86y0
.. section: Library

:class:`unittest.TestResult` methods
:meth:`~unittest.TestResult.addFailure`,
:meth:`~unittest.TestResult.addError`, :meth:`~unittest.TestResult.addSkip`
and :meth:`~unittest.TestResult.addSubTest` are now called immediately after
raising an exception in test or finishing a subtest. Previously they were
called only after finishing the test clean up.

..

.. bpo: 45034
.. date: 2021-09-05-20-33-25
.. nonce: 62NLD5
.. section: Library

Changes how error is formatted for ``struct.pack`` with ``'H'`` and ``'h'``
modes and too large / small numbers. Now it shows the actual numeric limits,
while previously it was showing arithmetic expressions.

..

.. bpo: 25894
.. date: 2021-09-05-13-15-08
.. nonce: zjbi2f
.. section: Library

:mod:`unittest` now always reports skipped and failed subtests separately:
separate characters in default mode and separate lines in verbose mode. Also
the test description is now output for errors in test method, class and
module cleanups.

..

.. bpo: 45081
.. date: 2021-09-02-12-42-25
.. nonce: tOjJ1k
.. section: Library

Fix issue when dataclasses that inherit from ``typing.Protocol`` subclasses
have wrong ``__init__``. Patch provided by Yurii Karabas.

..

.. bpo: 45085
.. date: 2021-09-02-00-47-14
.. nonce: mMnaDv
.. section: Library

The ``binhex`` module, deprecated in Python 3.9, is now removed. The
following :mod:`binascii` functions, deprecated in Python 3.9, are now also
removed:

* ``a2b_hqx()``, ``b2a_hqx()``;
* ``rlecode_hqx()``, ``rledecode_hqx()``.

The :func:`binascii.crc_hqx` function remains available.

Patch by Victor Stinner.

..

.. bpo: 40360
.. date: 2021-09-02-00-18-32
.. nonce: 9nmMtB
.. section: Library

The :mod:`!lib2to3` package is now deprecated and may not be able to parse
Python 3.10 or newer. See the :pep:`617` (New PEG parser for CPython). Patch
by Victor Stinner.

..

.. bpo: 45075
.. date: 2021-09-01-15-27-00
.. nonce: 9xUpvt
.. section: Library

Rename :meth:`traceback.StackSummary.format_frame` to
:meth:`traceback.StackSummary.format_frame_summary`. This method was added
for 3.11 so it was not released yet.

Updated code and docs to better distinguish frame and FrameSummary.

..

.. bpo: 31299
.. date: 2021-08-30-13-55-09
.. nonce: 9QzjZs
.. section: Library

Add option to completely drop frames from a traceback by returning ``None``
from a :meth:`~traceback.StackSummary.format_frame` override.

..

.. bpo: 41620
.. date: 2021-08-29-14-49-22
.. nonce: WJ6PFL
.. section: Library

:meth:`~unittest.TestCase.run` now always return a
:class:`~unittest.TestResult` instance. Previously it returned ``None`` if
the test class or method was decorated with a skipping decorator.

..

.. bpo: 45021
.. date: 2021-08-28-13-00-12
.. nonce: rReeaj
.. section: Library

Fix a potential deadlock at shutdown of forked children when using
:mod:`concurrent.futures` module

..

.. bpo: 43913
.. date: 2021-08-27-23-40-51
.. nonce: Uo1Gt5
.. section: Library

Fix bugs in cleaning up classes and modules in :mod:`unittest`:

* Functions registered with :func:`~unittest.addModuleCleanup` were not called unless the user defines ``tearDownModule()`` in their test module.
* Functions registered with :meth:`~unittest.TestCase.addClassCleanup` were not called if ``tearDownClass`` is set to ``None``.
* Buffering in :class:`~unittest.TestResult` did not work with functions registered with ``addClassCleanup()`` and ``addModuleCleanup()``.
* Errors in functions registered with ``addClassCleanup()`` and ``addModuleCleanup()`` were not handled correctly in buffered and debug modes.
* Errors in ``setUpModule()`` and functions registered with ``addModuleCleanup()`` were reported in wrong order.
* And several lesser bugs.

..

.. bpo: 45030
.. date: 2021-08-27-19-01-23
.. nonce: tAmBbY
.. section: Library

Fix integer overflow in pickling and copying the range iterator.

..

.. bpo: 45001
.. date: 2021-08-26-16-25-48
.. nonce: tn_dKp
.. section: Library

Made email date parsing more robust against malformed input, namely a
whitespace-only ``Date:`` header. Patch by Wouter Bolsterlee.

..

.. bpo: 45010
.. date: 2021-08-26-09-54-14
.. nonce: Cn23bQ
.. section: Library

Remove support of special method ``__div__`` in :mod:`unittest.mock`. It is
not used in Python 3.

..

.. bpo: 39218
.. date: 2021-08-25-20-18-31
.. nonce: BlO6jW
.. section: Library

Improve accuracy of variance calculations by using ``x*x`` instead of
``x**2``.

..

.. bpo: 43613
.. date: 2021-08-25-10-28-49
.. nonce: WkYmI0
.. section: Library

Improve the speed of :func:`gzip.compress` and :func:`gzip.decompress` by
compressing and decompressing at once in memory instead of in a streamed
fashion.

..

.. bpo: 37596
.. date: 2021-08-23-21-39-59
.. nonce: ojRcwB
.. section: Library

Ensure that :class:`set` and :class:`frozenset` objects are always
:mod:`marshalled <marshal>` reproducibly.

..

.. bpo: 44019
.. date: 2021-08-22-13-25-17
.. nonce: BN8HDy
.. section: Library

A new function ``operator.call`` has been added, such that
``operator.call(obj, *args, **kwargs) == obj(*args, **kwargs)``.

..

.. bpo: 42255
.. date: 2021-08-19-23-49-10
.. nonce: ofe3ms
.. section: Library

:class:`!webbrowser.MacOSX` is deprecated and will be removed in Python 3.13.
It is untested and undocumented and also not used by :mod:`webbrowser` itself.
Patch by Donghee Na.

..

.. bpo: 44955
.. date: 2021-08-19-15-03-54
.. nonce: 1mxFQS
.. section: Library

Method :meth:`~unittest.TestResult.stopTestRun` is now always called in pair
with method :meth:`~unittest.TestResult.startTestRun` for
:class:`~unittest.TestResult` objects implicitly created in
:meth:`~unittest.TestCase.run`. Previously it was not called for test
methods and classes decorated with a skipping decorator.

..

.. bpo: 39039
.. date: 2021-08-18-10-36-14
.. nonce: A63LYh
.. section: Library

tarfile.open raises :exc:`~tarfile.ReadError` when a zlib error occurs
during file extraction.

..

.. bpo: 44935
.. date: 2021-08-17-16-01-44
.. nonce: roUl0G
.. section: Library

:mod:`subprocess` on Solaris now also uses :func:`os.posix_spawn` for
better performance.

..

.. bpo: 44911
.. date: 2021-08-14-00-55-16
.. nonce: uk3hYk
.. section: Library

:class:`~unittest.IsolatedAsyncioTestCase` will no longer throw an exception
while cancelling leaked tasks. Patch by Bar Harel.

..

.. bpo: 41322
.. date: 2021-08-12-16-22-16
.. nonce: utscTd
.. section: Library

Added ``DeprecationWarning`` for tests and async tests that return a
value!=None (as this may indicate an improperly written test, for example a
test written as a generator function).

..

.. bpo: 44524
.. date: 2021-08-10-16-57-10
.. nonce: dk9QX4
.. section: Library

Make exception message more useful when subclass from typing special form
alias. Patch provided by Yurii Karabas.

..

.. bpo: 38956
.. date: 2021-08-09-13-17-10
.. nonce: owWLNv
.. section: Library

:class:`argparse.BooleanOptionalAction`'s default value is no longer printed
twice when used with :class:`argparse.ArgumentDefaultsHelpFormatter`.

..

.. bpo: 44860
.. date: 2021-08-07-22-51-32
.. nonce: PTvRrU
.. section: Library

Fix the ``posix_user`` scheme in :mod:`sysconfig` to not depend on
:data:`sys.platlibdir`.

..

.. bpo: 44859
.. date: 2021-08-07-17-28-56
.. nonce: CCopjk
.. section: Library

Improve error handling in :mod:`sqlite3` and raise more accurate exceptions.

* :exc:`MemoryError` is now raised instead of :exc:`sqlite3.Warning` when memory is not enough for encoding a statement to UTF-8 in ``Connection.__call__()`` and ``Cursor.execute()``.
* :exc:`UnicodEncodeError` is now raised instead of :exc:`sqlite3.Warning` when the statement contains surrogate characters in ``Connection.__call__()`` and ``Cursor.execute()``.
* :exc:`TypeError` is now raised instead of :exc:`ValueError` for non-string script argument in ``Cursor.executescript()``.
* :exc:`ValueError` is now raised for script containing the null character instead of truncating it in ``Cursor.executescript()``.
* Correctly handle exceptions raised when getting boolean value of the result of the progress handler.
* Add many tests covering different corner cases.

..

.. bpo: 44581
.. date: 2021-08-06-19-15-52
.. nonce: oFDBTB
.. section: Library

Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0

..

.. bpo: 44849
.. date: 2021-08-06-13-00-28
.. nonce: O78F_f
.. section: Library

Fix the :func:`os.set_inheritable` function on FreeBSD 14 for file
descriptor opened with the :const:`~os.O_PATH` flag: ignore the
:const:`~errno.EBADF` error on ``ioctl()``, fallback on the ``fcntl()``
implementation. Patch by Victor Stinner.

..

.. bpo: 44605
.. date: 2021-08-06-09-43-50
.. nonce: q4YSBZ
.. section: Library

The @functools.total_ordering() decorator now works with metaclasses.

..

.. bpo: 44524
.. date: 2021-08-05-18-20-17
.. nonce: 9T1tfe
.. section: Library

Fixed an issue wherein the ``__name__`` and ``__qualname__`` attributes of
subscribed specialforms could be ``None``.

..

.. bpo: 44839
.. date: 2021-08-05-14-59-39
.. nonce: MURNL9
.. section: Library

:class:`MemoryError` raised in user-defined functions will now produce a
``MemoryError`` in :mod:`sqlite3`. :class:`OverflowError` will now be
converted to :class:`~sqlite3.DataError`. Previously
:class:`~sqlite3.OperationalError` was produced in these cases.

..

.. bpo: 44822
.. date: 2021-08-04-12-29-00
.. nonce: zePNXA
.. section: Library

:mod:`sqlite3` user-defined functions and aggregators returning
:class:`strings <str>` with embedded NUL characters are no longer truncated.
Patch by Erlend E. Aasland.

..

.. bpo: 44801
.. date: 2021-08-03-20-37-45
.. nonce: i49Aug
.. section: Library

Ensure that the :class:`~typing.ParamSpec` variable in Callable can only be
substituted with a parameters expression (a list of types, an ellipsis,
ParamSpec or Concatenate).

..

.. bpo: 44806
.. date: 2021-08-02-14-37-32
.. nonce: wOW_Qn
.. section: Library

Non-protocol subclasses of :class:`typing.Protocol` ignore now the
``__init__`` method inherited from protocol base classes.

..

.. bpo: 27275
.. date: 2021-08-01-19-49-09
.. nonce: QsvE0k
.. section: Library

:meth:`collections.OrderedDict.popitem` and
:meth:`collections.OrderedDict.pop` no longer call ``__getitem__`` and
``__delitem__`` methods of the OrderedDict subclasses.

..

.. bpo: 44793
.. date: 2021-07-31-20-28-20
.. nonce: woaQSg
.. section: Library

Fix checking the number of arguments when subscribe a generic type with
``ParamSpec`` parameter.

..

.. bpo: 44784
.. date: 2021-07-31-08-45-31
.. nonce: fIMIDS
.. section: Library

In importlib.metadata tests, override warnings behavior under expected
DeprecationWarnings (importlib_metadata 4.6.3).

..

.. bpo: 44667
.. date: 2021-07-30-23-27-30
.. nonce: tu0Xrv
.. section: Library

The :func:`tokenize.tokenize` doesn't incorrectly generate a ``NEWLINE``
token if the source doesn't end with a new line character but the last line
is a comment, as the function is already generating a ``NL`` token. Patch by
Pablo Galindo

..

.. bpo: 44771
.. date: 2021-07-28-22-53-18
.. nonce: BvLdnU
.. section: Library

Added ``importlib.simple`` module implementing adapters from a low-level
resources reader interface to a ``TraversableResources`` interface. Legacy
API (``path``, ``contents``, ...) is now supported entirely by the
``.files()`` API with a compatibility shim supplied for resource loaders
without that functionality. Feature parity with ``importlib_resources`` 5.2.

..

.. bpo: 44752
.. date: 2021-07-27-22-11-29
.. nonce: _bvbrZ
.. section: Library

:mod:`rcompleter` does not call :func:`getattr` on :class:`property` objects
to avoid the side-effect of  evaluating the corresponding method.

..

.. bpo: 44747
.. date: 2021-07-27-12-06-19
.. nonce: epUzZz
.. section: Library

Refactor usage of ``sys._getframe`` in ``typing`` module. Patch provided by
Yurii Karabas.

..

.. bpo: 42378
.. date: 2021-07-25-08-17-55
.. nonce: WIhUZK
.. section: Library

Fixes the issue with log file being overwritten when
:class:`logging.FileHandler` is used in :mod:`atexit` with *filemode* set to
``'w'``. Note this will cause the message in *atexit* not being logged if
the log stream is already closed due to shutdown of logging.

..

.. bpo: 44720
.. date: 2021-07-24-02-17-59
.. nonce: shU5Qm
.. section: Library

``weakref.proxy`` objects referencing non-iterators now raise ``TypeError``
rather than dereferencing the null ``tp_iternext`` slot and crashing.

..

.. bpo: 44704
.. date: 2021-07-21-23-16-30
.. nonce: iqHLxQ
.. section: Library

The implementation of ``collections.abc.Set._hash()`` now matches that of
``frozenset.__hash__()``.

..

.. bpo: 44666
.. date: 2021-07-21-10-43-22
.. nonce: CEThkv
.. section: Library

Fixed issue in :func:`compileall.compile_file` when ``sys.stdout`` is
redirected. Patch by Stefan Hölzl.

..

.. bpo: 44688
.. date: 2021-07-20-23-28-26
.. nonce: buFgz3
.. section: Library

:meth:`sqlite3.Connection.create_collation` now accepts non-ASCII collation
names. Patch by Erlend E. Aasland.

..

.. bpo: 44690
.. date: 2021-07-20-22-03-24
.. nonce: tV7Zjg
.. section: Library

Adopt *binacii.a2b_base64*'s strict mode in *base64.b64decode*.

..

.. bpo: 42854
.. date: 2021-07-20-21-51-35
.. nonce: ThuDMI
.. section: Library

Fixed a bug in the :mod:`!_ssl` module that was throwing :exc:`OverflowError`
when using :meth:`!_ssl._SSLSocket.write` and :meth:`!_ssl._SSLSocket.read`
for a big value of the ``len`` parameter. Patch by Pablo Galindo.

..

.. bpo: 44686
.. date: 2021-07-20-19-35-49
.. nonce: ucCGhu
.. section: Library

Replace ``unittest.mock._importer`` with ``pkgutil.resolve_name``.

..

.. bpo: 44353
.. date: 2021-07-20-18-34-16
.. nonce: ATuYq4
.. section: Library

Make ``NewType.__call__`` faster by implementing it in C. Patch provided by
Yurii Karabas.

..

.. bpo: 44682
.. date: 2021-07-20-00-11-47
.. nonce: 3m2qVV
.. section: Library

Change the :mod:`pdb` *commands* directive to disallow setting commands for
an invalid breakpoint and to display an appropriate error.

..

.. bpo: 44353
.. date: 2021-07-19-22-43-15
.. nonce: HF81_Q
.. section: Library

Refactor ``typing.NewType`` from function into callable class. Patch
provided by Yurii Karabas.

..

.. bpo: 44678
.. date: 2021-07-19-18-45-00
.. nonce: YMEAu0
.. section: Library

Added a separate error message for discontinuous padding in
*binascii.a2b_base64* strict mode.

..

.. bpo: 44524
.. date: 2021-07-19-14-04-42
.. nonce: Nbf2JC
.. section: Library

Add missing ``__name__`` and ``__qualname__`` attributes to ``typing``
module classes. Patch provided by Yurii Karabas.

..

.. bpo: 40897
.. date: 2021-07-16-13-40-31
.. nonce: aveAre
.. section: Library

Give priority to using the current class constructor in
:func:`inspect.signature`. Patch by Weipeng Hong.

..

.. bpo: 44638
.. date: 2021-07-16-08-57-27
.. nonce: EwYKne
.. section: Library

Add a reference to the zipp project and hint as to how to use it.

..

.. bpo: 44648
.. date: 2021-07-15-16-51-32
.. nonce: 2o49TB
.. section: Library

Fixed wrong error being thrown by :func:`inspect.getsource` when examining a
class in the interactive session. Instead of :exc:`TypeError`, it should be
:exc:`OSError` with appropriate error message.

..

.. bpo: 44608
.. date: 2021-07-13-09-01-33
.. nonce: R3IcM1
.. section: Library

Fix memory leak in :func:`!_tkinter._flatten` if it is called with a sequence
or set, but not list or tuple.

..

.. bpo: 44594
.. date: 2021-07-12-10-32-48
.. nonce: eEa5zi
.. section: Library

Fix an edge case of :class:`ExitStack` and :class:`AsyncExitStack` exception
chaining.  They will now match ``with`` block behavior when ``__context__``
is explicitly set to ``None`` when the exception is in flight.

..

.. bpo: 42799
.. date: 2021-07-10-19-55-13
.. nonce: ad4tq8
.. section: Library

In :mod:`fnmatch`, the cache size for compiled regex patterns
(:func:`functools.lru_cache`) was bumped up from 256 to 32768, affecting
functions: :func:`fnmatch.fnmatch`, :func:`fnmatch.fnmatchcase`,
:func:`fnmatch.filter`.

..

.. bpo: 41928
.. date: 2021-07-09-07-14-37
.. nonce: Q1jMrr
.. section: Library

Update :func:`shutil.copyfile` to raise :exc:`FileNotFoundError` instead of
confusing :exc:`IsADirectoryError` when a path ending with a
:const:`os.path.sep` does not exist; :func:`shutil.copy` and
:func:`shutil.copy2` are also affected.

..

.. bpo: 44569
.. date: 2021-07-08-12-22-54
.. nonce: KZ02v9
.. section: Library

Added the :func:`StackSummary.format_frame` function in :mod:`traceback`.
This allows users to customize the way individual lines are formatted in
tracebacks without re-implementing logic to handle recursive tracebacks.

..

.. bpo: 44566
.. date: 2021-07-05-18-13-25
.. nonce: o51Bd1
.. section: Library

handle StopIteration subclass raised from @contextlib.contextmanager
generator

..

.. bpo: 44558
.. date: 2021-07-04-21-16-53
.. nonce: cm7Slv
.. section: Library

Make the implementation consistency of :func:`~operator.indexOf` between C
and Python versions. Patch by Donghee Na.

..

.. bpo: 41249
.. date: 2021-07-04-11-33-34
.. nonce: sHdwBE
.. section: Library

Fixes ``TypedDict`` to work with ``typing.get_type_hints()`` and postponed
evaluation of annotations across modules.

..

.. bpo: 44554
.. date: 2021-07-02-18-17-56
.. nonce: aBUmJo
.. section: Library

Refactor argument processing in :func:`pdb.main` to simplify detection of
errors in input loading and clarify behavior around module or script
invocation.

..

.. bpo: 34798
.. date: 2021-06-30-13-29-49
.. nonce: t7FCa0
.. section: Library

Break up paragraph about :class:`pprint.PrettyPrinter` construction
parameters to make it easier to read.

..

.. bpo: 44539
.. date: 2021-06-30-11-34-35
.. nonce: nP0Xi4
.. section: Library

Added support for recognizing JPEG files without JFIF or Exif markers.

..

.. bpo: 44461
.. date: 2021-06-29-21-17-17
.. nonce: acqRnV
.. section: Library

Fix bug with :mod:`pdb`'s handling of import error due to a package which
does not have a ``__main__`` module

..

.. bpo: 43625
.. date: 2021-06-29-07-27-08
.. nonce: ZlAxhp
.. section: Library

Fix a bug in the detection of CSV file headers by
:meth:`csv.Sniffer.has_header` and improve documentation of same.

..

.. bpo: 44516
.. date: 2021-06-26-12-27-14
.. nonce: BVyX_y
.. section: Library

Update vendored pip to 21.1.3

..

.. bpo: 42892
.. date: 2021-06-24-19-16-20
.. nonce: qvRNhI
.. section: Library

Fixed an exception thrown while parsing a malformed multipart email by
:class:`email.message.EmailMessage`.

..

.. bpo: 44468
.. date: 2021-06-23-19-02-00
.. nonce: -klV5-
.. section: Library

:func:`typing.get_type_hints` now finds annotations in classes and base
classes with unexpected ``__module__``. Previously, it skipped those MRO
elements.

..

.. bpo: 44491
.. date: 2021-06-23-01-33-01
.. nonce: tiOlr5
.. section: Library

Allow clearing the :mod:`sqlite3` authorizer callback by passing
:const:`None` to :meth:`~sqlite3.Connection.set_authorizer`. Patch by Erlend
E. Aasland.

..

.. bpo: 43977
.. date: 2021-06-22-16-45-48
.. nonce: bamAGF
.. section: Library

Set the proper :c:macro:`Py_TPFLAGS_MAPPING` and :c:macro:`Py_TPFLAGS_SEQUENCE`
flags for subclasses created before a parent has been registered as a
:class:`collections.abc.Mapping` or :class:`collections.abc.Sequence`.

..

.. bpo: 44482
.. date: 2021-06-22-08-43-04
.. nonce: U9GznK
.. section: Library

Fix very unlikely resource leak in :mod:`glob` in alternate Python
implementations.

..

.. bpo: 44466
.. date: 2021-06-21-12-43-04
.. nonce: NSm6mv
.. section: Library

The :mod:`faulthandler` module now detects if a fatal error occurs during a
garbage collector collection. Patch by Victor Stinner.

..

.. bpo: 44471
.. date: 2021-06-21-10-46-58
.. nonce: 2QjXv_
.. section: Library

A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in
:meth:`contextlib.ExitStack.enter_context` and
:meth:`contextlib.AsyncExitStack.enter_async_context` for objects which do
not support the :term:`context manager` or :term:`asynchronous context
manager` protocols correspondingly.

..

.. bpo: 44404
.. date: 2021-06-20-19-01-11
.. nonce: McfrYB
.. section: Library

:mod:`tkinter`'s ``after()`` method now supports callables without the
``__name__`` attribute.

..

.. bpo: 41546
.. date: 2021-06-20-14-03-18
.. nonce: lO1jXU
.. section: Library

Make :mod:`pprint` (like the builtin ``print``) not attempt to write to
``stdout`` when it is ``None``.

..

.. bpo: 44458
.. date: 2021-06-20-07-14-46
.. nonce: myqCQ0
.. section: Library

``BUFFER_BLOCK_SIZE`` is now declared static, to avoid linking collisions
when bz2, lmza or zlib are statically linked.

..

.. bpo: 44464
.. date: 2021-06-19-21-52-27
.. nonce: U2oa-a
.. section: Library

Remove exception for flake8 in deprecated importlib.metadata interfaces.
Sync with importlib_metadata 4.6.

..

.. bpo: 44446
.. date: 2021-06-17-22-39-34
.. nonce: qwdRic
.. section: Library

Take into account that ``lineno`` might be ``None`` in
:class:`traceback.FrameSummary`.

..

.. bpo: 44439
.. date: 2021-06-17-15-01-51
.. nonce: 1S7QhT
.. section: Library

Fix in :meth:`bz2.BZ2File.write` / :meth:`lzma.LZMAFile.write` methods, when
the input data is an object that supports the buffer protocol, the file
length may be wrong.

..

.. bpo: 44434
.. date: 2021-06-16-16-52-14
.. nonce: SQS4Pg
.. section: Library

_thread.start_new_thread() no longer calls PyThread_exit_thread() explicitly
at the thread exit, the call was redundant. On Linux with the glibc,
pthread_exit() aborts the whole process if dlopen() fails to open
libgcc_s.so file (ex: EMFILE error). Patch by Victor Stinner.

..

.. bpo: 42972
.. date: 2021-06-15-13-51-25
.. nonce: UnyYo1
.. section: Library

The _thread.RLock type now fully implement the GC protocol: add a traverse
function and the :c:macro:`Py_TPFLAGS_HAVE_GC` flag. Patch by Victor Stinner.

..

.. bpo: 44422
.. date: 2021-06-14-23-28-17
.. nonce: BlWOgv
.. section: Library

The :func:`threading.enumerate` function now uses a reentrant lock to
prevent a hang on reentrant call. Patch by Victor Stinner.

..

.. bpo: 38291
.. date: 2021-06-14-14-19-11
.. nonce: ee4cSX
.. section: Library

Importing typing.io or typing.re now prints a ``DeprecationWarning``.

..

.. bpo: 37880
.. date: 2021-06-13-00-16-56
.. nonce: 5bTrkw
.. section: Library

argparse actions store_const and append_const each receive a default value
of ``None`` when the ``const`` kwarg is not provided. Previously, this raised a
:exc:`TypeError`.

..

.. bpo: 44389
.. date: 2021-06-12-22-58-20
.. nonce: WTRnoC
.. section: Library

Fix deprecation of :data:`ssl.OP_NO_TLSv1_3`

..

.. bpo: 27827
.. date: 2021-06-12-21-25-35
.. nonce: TMWh1i
.. section: Library

:meth:`pathlib.PureWindowsPath.is_reserved` now identifies a greater range
of reserved filenames, including those with trailing spaces or colons.

..

.. bpo: 44395
.. date: 2021-06-12-10-08-14
.. nonce: PcW6Sx
.. section: Library

Fix :meth:`~email.message.MIMEPart.as_string` to pass unixfrom properly.
Patch by Donghee Na.

..

.. bpo: 34266
.. date: 2021-06-10-21-53-46
.. nonce: k3fxnm
.. section: Library

Handle exceptions from parsing the arg of :mod:`pdb`'s run/restart command.

..

.. bpo: 44362
.. date: 2021-06-10-20-07-32
.. nonce: oVOMfd
.. section: Library

Improve :mod:`ssl` module's deprecation messages, error reporting, and
documentation for deprecations.

..

.. bpo: 44342
.. date: 2021-06-10-15-06-47
.. nonce: qqkGlj
.. section: Library

[Enum] Change pickling from by-value to by-name.

..

.. bpo: 44356
.. date: 2021-06-10-08-35-38
.. nonce: 6oDFhO
.. section: Library

[Enum] Allow multiple data-type mixins if they are all the same.

..

.. bpo: 44351
.. date: 2021-06-10-07-26-12
.. nonce: rvyf2v
.. section: Library

Restore back :func:`parse_makefile` in ``distutils.sysconfig`` because it
behaves differently than the similar implementation in :mod:`sysconfig`.

..

.. bpo: 35800
.. date: 2021-06-09-10-08-32
.. nonce: 3hmkWw
.. section: Library

:class:`!smtpd.MailmanProxy` is now removed as it is unusable without an
external module, ``mailman``. Patch by Donghee Na.

..

.. bpo: 44357
.. date: 2021-06-09-08-32-39
.. nonce: 70Futb
.. section: Library

Added a function that returns cube root of the given number
:func:`math.cbrt`

..

.. bpo: 44339
.. date: 2021-06-08-17-47-38
.. nonce: 9JwMSc
.. section: Library

Change ``math.pow(±0.0, -math.inf)`` to return ``inf`` instead of raising
``ValueError``. This brings the special-case handling of ``math.pow`` into
compliance with the IEEE 754 standard.

..

.. bpo: 44242
.. date: 2021-06-07-10-26-14
.. nonce: MKeMCQ
.. section: Library

Remove missing flag check from Enum creation and move into a ``verify``
decorator.

..

.. bpo: 44246
.. date: 2021-05-31-11-34-56
.. nonce: yHAkF0
.. section: Library

In ``importlib.metadata``, restore compatibility in the result from
``Distribution.entry_points`` (``EntryPoints``) to honor expectations in
older implementations and issuing deprecation warnings for these cases: A.
``EntryPoints`` objects are once again mutable, allowing   for ``sort()``
and other list-based mutation operations.   Avoid deprecation warnings by
casting to a   mutable sequence (e.g.   ``list(dist.entry_points).sort()``).
B. ``EntryPoints`` results once again allow   for access by index. To avoid
deprecation warnings,   cast the result to a Sequence first   (e.g.
``tuple(dist.entry_points)[0]``).

..

.. bpo: 44246
.. date: 2021-05-31-11-28-03
.. nonce: nhmt-v
.. section: Library

In importlib.metadata.entry_points, de-duplication of distributions no
longer requires loading the full metadata for PathDistribution objects,
improving entry point loading performance by ~10x.

..

.. bpo: 43858
.. date: 2021-05-31-04-51-02
.. nonce: r7LOu6
.. section: Library

Added a function that returns a copy of a dict of logging levels:
:func:`logging.getLevelNamesMapping`

..

.. bpo: 44260
.. date: 2021-05-30-13-32-09
.. nonce: ROEbVd
.. section: Library

The :class:`random.Random` constructor no longer reads system entropy
without need.

..

.. bpo: 44254
.. date: 2021-05-29-01-05-43
.. nonce: f06xDm
.. section: Library

On Mac, give turtledemo button text a color that works on both light or dark
background.  Programmers cannot control the latter.

..

.. bpo: 44258
.. date: 2021-05-28-09-43-33
.. nonce: nh5F7R
.. section: Library

Support PEP 515 for Fraction's initialization from string.

..

.. bpo: 44235
.. date: 2021-05-26-22-04-40
.. nonce: qFBYpp
.. section: Library

Remove deprecated functions in the :mod:`gettext`. Patch by Donghee Na.

..

.. bpo: 38693
.. date: 2021-05-26-14-50-06
.. nonce: NkMacJ
.. section: Library

Prefer f-strings to ``.format`` in importlib.resources.

..

.. bpo: 33693
.. date: 2021-05-26-13-34-37
.. nonce: 3okzdo
.. section: Library

Importlib.metadata now prefers f-strings to .format.

..

.. bpo: 44241
.. date: 2021-05-26-13-15-51
.. nonce: TBqej8
.. section: Library

Incorporate minor tweaks from importlib_metadata 4.1: SimplePath protocol,
support for Metadata 2.2.

..

.. bpo: 43216
.. date: 2021-05-25-23-26-38
.. nonce: xTUyyX
.. section: Library

Remove the :deco:`asyncio.coroutine` :term:`decorator`
enabling legacy generator-based coroutines to be compatible with async/await
code; remove :class:`asyncio.coroutines.CoroWrapper` used for wrapping
legacy coroutine objects in the debug mode. The decorator has been
deprecated since Python 3.8 and the removal was initially scheduled for
Python 3.10. Patch by Illia Volochii.

..

.. bpo: 44210
.. date: 2021-05-21-21-23-43
.. nonce: 5afQ3K
.. section: Library

Make importlib.metadata._meta.PackageMetadata public.

..

.. bpo: 43643
.. date: 2021-05-21-12-12-35
.. nonce: GWnmcF
.. section: Library

Declare readers.MultiplexedPath.name as a property per the spec.

..

.. bpo: 27334
.. date: 2021-05-18-00-17-21
.. nonce: 32EJZi
.. section: Library

The :mod:`sqlite3` context manager now performs a rollback (thus releasing
the database lock) if commit failed.  Patch by Luca Citi and Erlend E.
Aasland.

..

.. bpo: 4928
.. date: 2021-05-17-21-05-06
.. nonce: Ot2yjO
.. section: Library

Documented existing behavior on POSIX: NamedTemporaryFiles are not deleted
when creating process is killed with SIGKILL

..

.. bpo: 44154
.. date: 2021-05-17-07-24-24
.. nonce: GRI5bf
.. section: Library

Optimize :class:`fractions.Fraction` pickling for large components.

..

.. bpo: 33433
.. date: 2021-05-16-17-48-24
.. nonce: MyzO71
.. section: Library

For IPv4 mapped IPv6 addresses (:rfc:`4291` Section 2.5.5.2), the
:mod:`ipaddress.IPv6Address.is_private` check is deferred to the mapped IPv4
address. This solves a bug where public mapped IPv4 addresses were
considered private by the IPv6 check.

..

.. bpo: 44150
.. date: 2021-05-16-11-57-38
.. nonce: xAhhik
.. section: Library

Add optional *weights* argument to statistics.fmean().

..

.. bpo: 44142
.. date: 2021-05-16-02-24-23
.. nonce: t-XU8k
.. section: Library

:func:`ast.unparse` will now drop the redundant parentheses when tuples used
as assignment targets (e.g in for loops).

..

.. bpo: 44145
.. date: 2021-05-16-00-00-38
.. nonce: ko5SJ7
.. section: Library

:mod:`hmac` computations were not releasing the GIL while calling the
OpenSSL ``HMAC_Update`` C API (a new feature in 3.9).  This unintentionally
prevented parallel computation as other :mod:`hashlib` algorithms support.

..

.. bpo: 44095
.. date: 2021-05-14-16-06-02
.. nonce: v_pLwY
.. section: Library

:class:`zipfile.Path` now supports :attr:`zipfile.Path.stem`,
:attr:`zipfile.Path.suffixes`, and :attr:`zipfile.Path.suffix` attributes.

..

.. bpo: 44077
.. date: 2021-05-13-19-44-38
.. nonce: 04b2a4
.. section: Library

It's now possible to receive the type of service (ToS), a.k.a.
differentiated services (DS), a.k.a. differentiated services code point
(DSCP) and explicit congestion notification (ECN) IP header fields with
``socket.IP_RECVTOS``.

..

.. bpo: 37788
.. date: 2021-05-13-19-07-28
.. nonce: adeFcf
.. section: Library

Fix a reference leak when a Thread object is never joined.

..

.. bpo: 38908
.. date: 2021-05-12-16-43-21
.. nonce: nM2_rO
.. section: Library

Subclasses of ``typing.Protocol`` which only have data variables declared
will now raise a ``TypeError`` when checked with ``isinstance`` unless they
are decorated with :func:`runtime_checkable`.  Previously, these checks
passed silently. Patch provided by Yurii Karabas.

..

.. bpo: 44098
.. date: 2021-05-10-17-45-00
.. nonce: _MoxuZ
.. section: Library

``typing.ParamSpec`` will no longer be found in the ``__parameters__`` of
most :mod:`typing` generics except in valid use locations specified by
:pep:`612`. This prevents incorrect usage like ``typing.List[P][int]``. This
change means incorrect usage which may have passed silently in 3.10 beta 1
and earlier will now error.

..

.. bpo: 44089
.. date: 2021-05-09-22-52-34
.. nonce: IoANsN
.. section: Library

Allow subclassing ``csv.Error`` in 3.10 (it was allowed in 3.9 and earlier
but was disallowed in early versions of 3.10).

..

.. bpo: 44081
.. date: 2021-05-09-03-26-31
.. nonce: A-Mrto
.. section: Library

:func:`ast.unparse` now doesn't use redundant spaces to separate ``lambda``
and the ``:`` if there are no parameters.

..

.. bpo: 44061
.. date: 2021-05-07-08-39-23
.. nonce: MvElG6
.. section: Library

Fix regression in previous release when calling :func:`pkgutil.iter_modules`
with a list of :class:`pathlib.Path` objects

..

.. bpo: 44059
.. date: 2021-05-06-16-01-55
.. nonce: GF5r6O
.. section: Library

Register the SerenityOS Browser in the :mod:`webbrowser` module.

..

.. bpo: 36515
.. date: 2021-05-05-11-44-49
.. nonce: uOSa3q
.. section: Library

The :mod:`hashlib` module no longer does unaligned memory accesses when
compiled for ARM platforms.

..

.. bpo: 40465
.. date: 2021-05-03-19-59-14
.. nonce: 1tB4Y0
.. section: Library

Remove random module features deprecated in Python 3.9.

..

.. bpo: 44018
.. date: 2021-05-03-10-07-43
.. nonce: VDyW8f
.. section: Library

random.seed() no longer mutates bytearray inputs.

..

.. bpo: 38352
.. date: 2021-05-02-13-54-25
.. nonce: N9MlhV
.. section: Library

Add ``IO``, ``BinaryIO``, ``TextIO``, ``Match``, and ``Pattern`` to
``typing.__all__``. Patch by Jelle Zijlstra.

..

.. bpo: 44002
.. date: 2021-05-01-15-43-37
.. nonce: KLT_wd
.. section: Library

:mod:`urllib.parse` now uses :func:`functool.lru_cache` for its internal URL
splitting and quoting caches instead of rolling its own like its the '90s.

The undocumented internal :mod:`urllib.parse` ``Quoted`` class API is now
deprecated, for removal in 3.14.

..

.. bpo: 43972
.. date: 2021-04-30-16-58-24
.. nonce: Y2r9lg
.. section: Library

When :class:`http.server.SimpleHTTPRequestHandler` sends a ``301 (Moved
Permanently)`` for a directory path not ending with ``/``, add a
``Content-Length: 0`` header. This improves the behavior for certain
clients.

..

.. bpo: 28528
.. date: 2021-04-29-00-48-00
.. nonce: JLAVWj
.. section: Library

Fix a bug in :mod:`pdb` where :meth:`~pdb.Pdb.checkline` raises
:exc:`AttributeError` if it is called after :meth:`~pdb.Pdb.reset`.

..

.. bpo: 43853
.. date: 2021-04-15-12-02-17
.. nonce: XXCVAp
.. section: Library

Improved string handling for :mod:`sqlite3` user-defined functions and
aggregates:

* It is now possible to pass strings with embedded null characters to UDFs
* Conversion failures now correctly raise :exc:`MemoryError`

Patch by Erlend E. Aasland.

..

.. bpo: 43666
.. date: 2021-03-30-08-39-08
.. nonce: m72tlH
.. section: Library

AIX: ``Lib/_aix_support.get_platform()`` may fail in an AIX WPAR. The fileset
bos.rte appears to have a builddate in both LPAR and WPAR so this fileset is
queried rather than bos.mp64. To prevent a similar situation (no builddate
in ODM) a value (9988) sufficient for completing a build is provided. Patch
by M Felt.

..

.. bpo: 43650
.. date: 2021-03-29-00-23-30
.. nonce: v01tic
.. section: Library

Fix :exc:`MemoryError` in :func:`shutil.unpack_archive` which fails inside
:func:`shutil._unpack_zipfile` on large files. Patch by Igor Bolshakov.

..

.. bpo: 43612
.. date: 2021-03-24-09-40-02
.. nonce: vMGZ4y
.. section: Library

:func:`zlib.compress` now accepts a wbits parameter which allows users to
compress data as a raw deflate block without zlib headers and trailers in
one go. Previously this required instantiating a ``zlib.compressobj``. It
also provides a faster alternative to ``gzip.compress`` when wbits=31 is
used.

..

.. bpo: 43392
.. date: 2021-03-03-13-32-37
.. nonce: QQumou
.. section: Library

:func:`importlib._bootstrap._find_and_load` now implements a two-step check
to avoid locking when modules have been already imported and are ready. This
improves performance of repeated calls to :func:`importlib.import_module`
and :func:`importlib.__import__`.

..

.. bpo: 43318
.. date: 2021-02-25-08-32-06
.. nonce: bZJw6V
.. section: Library

Fix a bug where :mod:`pdb` does not always echo cleared breakpoints.

..

.. bpo: 43234
.. date: 2021-02-15-22-14-31
.. nonce: F-vKAT
.. section: Library

Prohibit passing non-:class:`concurrent.futures.ThreadPoolExecutor`
executors to :meth:`loop.set_default_executor` following a deprecation in
Python 3.8. Patch by Illia Volochii.

..

.. bpo: 43232
.. date: 2021-02-15-21-17-46
.. nonce: awc4yZ
.. section: Library

Prohibit previously deprecated potentially disruptive operations on
:class:`asyncio.trsock.TransportSocket`. Patch by Illia Volochii.

..

.. bpo: 30077
.. date: 2021-02-04-23-16-03
.. nonce: v6TqAi
.. section: Library

Added support for Apple's aifc/sowt pseudo-compression

..

.. bpo: 42971
.. date: 2021-02-02-20-11-14
.. nonce: OpVoFu
.. section: Library

Add definition of ``errno.EQFULL`` for platforms that define this constant
(such as macOS).

..

.. bpo: 43086
.. date: 2021-01-31-18-24-54
.. nonce: 2_P-SH
.. section: Library

Added a new optional :code:`strict_mode` parameter to *binascii.a2b_base64*.
When :code:`scrict_mode` is set to :code:`True`, the *a2b_base64* function
will accept only valid base64 content. More details about what "valid base64
content" is, can be found in the function's documentation.

..

.. bpo: 43024
.. date: 2021-01-25-21-24-55
.. nonce: vAUrIi
.. section: Library

Improve the help signature of :func:`traceback.print_exception`,
:func:`traceback.format_exception` and
:func:`traceback.format_exception_only`.

..

.. bpo: 33809
.. date: 2021-01-16-18-36-00
.. nonce: BiMK6V
.. section: Library

Add the :meth:`traceback.TracebackException.print` method which prints the
formatted exception information.

..

.. bpo: 42862
.. date: 2021-01-13-00-02-44
.. nonce: Z6ACLN
.. section: Library

:mod:`sqlite3` now utilizes :meth:`functools.lru_cache` to implement the
connection statement cache. As a small optimisation, the default statement
cache size has been increased from 100 to 128. Patch by Erlend E. Aasland.

..

.. bpo: 41818
.. date: 2020-12-08-01-08-58
.. nonce: zO8vV7
.. section: Library

Soumendra Ganguly: add termios.tcgetwinsize(), termios.tcsetwinsize().

..

.. bpo: 40497
.. date: 2020-10-18-09-42-53
.. nonce: CRz2sG
.. section: Library

:meth:`subprocess.check_output` now raises :exc:`ValueError` when the
invalid keyword argument *check* is passed by user code. Previously such use
would fail later with a :exc:`TypeError`. Patch by Rémi Lapeyre.

..

.. bpo: 37449
.. date: 2020-10-11-20-23-48
.. nonce: f-t3V6
.. section: Library

``ensurepip`` now uses ``importlib.resources.files()`` traversable APIs

..

.. bpo: 40956
.. date: 2020-10-01-21-46-34
.. nonce: _tvsZ7
.. section: Library

Use Argument Clinic in :mod:`sqlite3`.  Patches by Erlend E. Aasland.

..

.. bpo: 41730
.. date: 2020-09-10-07-23-24
.. nonce: DyKFi9
.. section: Library

``DeprecationWarning`` is now raised when importing :mod:`tkinter.tix`,
which has been deprecated in documentation since Python 3.6.

..

.. bpo: 20684
.. date: 2020-07-30-14-37-15
.. nonce: qV35GU
.. section: Library

Remove unused ``_signature_get_bound_param`` function from :mod:`inspect` -
by Anthony Sottile.

..

.. bpo: 41402
.. date: 2020-07-26-18-17-30
.. nonce: YRkVkp
.. section: Library

Fix :meth:`email.message.EmailMessage.set_content` when called with binary
data and ``7bit`` content transfer encoding.

..

.. bpo: 32695
.. date: 2020-07-13-23-46-59
.. nonce: tTqqXe
.. section: Library

The *compresslevel* and *preset* keyword arguments of :func:`tarfile.open`
are now both documented and tested.

..

.. bpo: 41137
.. date: 2020-07-01-17-42-41
.. nonce: AnqbP-
.. section: Library

Use utf-8 encoding while reading .pdbrc files. Patch by Srinivas Reddy
Thatiparthy

..

.. bpo: 24391
.. date: 2020-05-30-10-48-04
.. nonce: ZCTnhX
.. section: Library

Improved reprs of :mod:`threading` synchronization objects:
:class:`~threading.Semaphore`, :class:`~threading.BoundedSemaphore`,
:class:`~threading.Event` and :class:`~threading.Barrier`.

..

.. bpo: 5846
.. date: 2020-05-25-23-58-29
.. nonce: O9BIfm
.. section: Library

Deprecated the following :mod:`unittest` functions, scheduled for removal in
Python 3.13:

* :func:`!findTestCases`
* :func:`!makeSuite`
* :func:`!getTestCaseNames`

Use :class:`~unittest.TestLoader` methods instead:

* :meth:`unittest.TestLoader.loadTestsFromModule`
* :meth:`unittest.TestLoader.loadTestsFromTestCase`
* :meth:`unittest.TestLoader.getTestCaseNames`

Patch by Erlend E. Aasland.

..

.. bpo: 40563
.. date: 2020-05-21-01-42-32
.. nonce: fDn5bP
.. section: Library

Support pathlike objects on dbm/shelve. Patch by Hakan Çelik and
Henry-Joseph Audéoud.

..

.. bpo: 34990
.. date: 2020-04-24-20-39-38
.. nonce: 3SmL9M
.. section: Library

Fixed a Y2k38 bug in the compileall module where it would fail to compile
files with a modification time after the year 2038.

..

.. bpo: 39549
.. date: 2020-02-03-21-18-31
.. nonce: l4a8uH
.. section: Library

Whereas the code for reprlib.Repr had previously used a hardcoded string
value of '...', this PR updates it to use of a “fillvalue” attribute, whose
value defaults to '...' and can be reset in either individual reprlib.Repr
instances or in subclasses thereof.

..

.. bpo: 37022
.. date: 2020-01-25-12-58-20
.. nonce: FUZI25
.. section: Library

:mod:`pdb` now displays exceptions from ``repr()`` with its ``p`` and ``pp``
commands.

..

.. bpo: 38840
.. date: 2020-01-16-23-41-16
.. nonce: VzzYZz
.. section: Library

Fix ``test___all__`` on platforms lacking a shared memory implementation.

..

.. bpo: 39359
.. date: 2020-01-16-13-54-28
.. nonce: hzTu0h
.. section: Library

Add one missing check that the password is a bytes object for an encrypted
zipfile.

..

.. bpo: 38741
.. date: 2019-11-12-18-59-33
.. nonce: W7IYkq
.. section: Library

:mod:`configparser`: using ']' inside a section header will no longer cut
the section name short at the ']'

..

.. bpo: 38415
.. date: 2019-10-08-14-08-59
.. nonce: N1bUw6
.. section: Library

Added missing behavior to :func:`contextlib.asynccontextmanager` to match
:func:`contextlib.contextmanager` so decorated functions can themselves be
decorators.

..

.. bpo: 30256
.. date: 2019-09-25-13-54-41
.. nonce: wBkzox
.. section: Library

Pass multiprocessing BaseProxy argument ``manager_owned`` through AutoProxy.

..

.. bpo: 27513
.. date: 2019-06-03-23-53-25
.. nonce: qITN7d
.. section: Library

:func:`email.utils.getaddresses` now accepts :class:`email.header.Header`
objects along with string values. Patch by Zackery Spytz.

..

.. bpo: 16379
.. date: 2019-05-08-15-14-32
.. nonce: rN5JVe
.. section: Library

Add SQLite error code and name to :mod:`sqlite3` exceptions. Patch by Aviv
Palivoda, Daniel Shahaf, and Erlend E. Aasland.

..

.. bpo: 26228
.. date: 2019-02-26-09-31-59
.. nonce: wyrHKc
.. section: Library

pty.spawn no longer hangs on FreeBSD, macOS, and Solaris.

..

.. bpo: 33349
.. date: 2018-04-24-14-25-07
.. nonce: Y_0LIr
.. section: Library

lib2to3 now recognizes async generators everywhere.

..

.. bpo: 29298
.. date: 2017-09-20-14-43-03
.. nonce: _78CSN
.. section: Library

Fix ``TypeError`` when required subparsers without ``dest`` do not receive
arguments. Patch by Anthony Sottile.

..

.. bpo: 45216
.. date: 2021-09-18-13-45-19
.. nonce: o56nyt
.. section: Documentation

Remove extra documentation listing methods in ``difflib``. It was rendering
twice in pydoc and was outdated in some places.

..

.. bpo: 45024
.. date: 2021-09-08-17-20-19
.. nonce: dkNPNi
.. section: Documentation

:mod:`collections.abc` documentation has been expanded to explicitly cover
how instance and subclass checks work, with additional doctest examples and
an exhaustive list of ABCs which test membership purely by presence of the
right :term:`special method`\s. Patch by Raymond Hettinger.

..

.. bpo: 44957
.. date: 2021-08-19-15-53-08
.. nonce: imqrh3
.. section: Documentation

Promote PEP 604 union syntax by using it where possible. Also, mention ``X |
Y`` more prominently in section about ``Union`` and mention ``X | None`` at
all in section about ``Optional``.

..

.. bpo: 16580
.. date: 2021-08-13-20-17-59
.. nonce: MZ_iK9
.. section: Documentation

Added code equivalents for the :meth:`int.to_bytes` and
:meth:`int.from_bytes` methods, as well as tests ensuring that these code
equivalents are valid.

..

.. bpo: 44903
.. date: 2021-08-13-19-08-03
.. nonce: aJuvQF
.. section: Documentation

Removed the ``othergui.rst`` file, any references to it, and the list of GUI
frameworks in the FAQ. In their place I've added links to the Python Wiki
`page on GUI frameworks <https://wiki.python.org/moin/GuiProgramming>`_.

..

.. bpo: 33479
.. date: 2021-08-11-18-02-06
.. nonce: rCe4c5
.. section: Documentation

Tkinter documentation has been greatly expanded with new "Architecture" and
"Threading model" sections.

..

.. bpo: 36700
.. date: 2021-08-09-19-58-45
.. nonce: WPNW5f
.. section: Documentation

:mod:`base64` RFC references were updated to point to :rfc:`4648`; a section
was added to point users to the new "security considerations" section of the
RFC.

..

.. bpo: 44740
.. date: 2021-07-26-23-48-31
.. nonce: zMFGMV
.. section: Documentation

Replaced occurrences of uppercase "Web" and "Internet" with lowercase
versions per the 2016 revised Associated Press Style Book.

..

.. bpo: 44693
.. date: 2021-07-25-23-04-15
.. nonce: JuCbNq
.. section: Documentation

Update the definition of __future__ in the glossary by replacing the
confusing word "pseudo-module" with a more accurate description.

..

.. bpo: 35183
.. date: 2021-07-22-08-28-03
.. nonce: p9BWTB
.. section: Documentation

Add typical examples to os.path.splitext docs

..

.. bpo: 30511
.. date: 2021-07-20-21-03-18
.. nonce: eMFkRi
.. section: Documentation

Clarify that :func:`shutil.make_archive` is not thread-safe due to reliance
on changing the current working directory.

..

.. bpo: 44561
.. date: 2021-07-18-22-43-14
.. nonce: T7HpWm
.. section: Documentation

Update of three expired hyperlinks in Doc/distributing/index.rst: "Project
structure", "Building and packaging the project", and "Uploading the project
to the Python Packaging Index".

..

.. bpo: 44651
.. date: 2021-07-18-22-26-02
.. nonce: SjT9iY
.. section: Documentation

Delete entry "coercion" in Doc/glossary.rst for its outdated definition.

..

.. bpo: 42958
.. date: 2021-07-15-11-19-03
.. nonce: gC5IHM
.. section: Documentation

Updated the docstring and docs of :func:`filecmp.cmp` to be more accurate
and less confusing especially in respect to *shallow* arg.

..

.. bpo: 44631
.. date: 2021-07-13-22-25-13
.. nonce: qkGwe4
.. section: Documentation

Refactored the ``repr()`` code of the ``_Environ`` (os module).

..

.. bpo: 44613
.. date: 2021-07-12-11-39-20
.. nonce: DIXNzc
.. section: Documentation

importlib.metadata is no longer provisional.

..

.. bpo: 44558
.. date: 2021-07-03-18-25-17
.. nonce: 0pTknl
.. section: Documentation

Match the docstring and python implementation of :func:`~operator.countOf`
to the behavior of its c implementation.

..

.. bpo: 44544
.. date: 2021-07-02-14-02-29
.. nonce: _5_aCz
.. section: Documentation

List all kwargs for :func:`textwrap.wrap`, :func:`textwrap.fill`, and
:func:`textwrap.shorten`. Now, there are nav links to attributes of
:class:`TextWrap`, which makes navigation much easier while minimizing
duplication in the documentation.

..

.. bpo: 38062
.. date: 2021-06-28-12-13-48
.. nonce: 9Ehp9O
.. section: Documentation

Clarify that atexit uses equality comparisons internally.

..

.. bpo: 40620
.. date: 2021-06-26-17-41-06
.. nonce: PAYDrB
.. section: Documentation

Convert examples in tutorial controlflow.rst section 4.3 to be
interpreter-demo style.

..

.. bpo: 43066
.. date: 2021-06-24-14-37-16
.. nonce: Ti7ahX
.. section: Documentation

Added a warning to :mod:`zipfile` docs: filename arg with a leading slash
may cause archive to be un-openable on Windows systems.

..

.. bpo: 39452
.. date: 2021-06-23-15-21-36
.. nonce: o_I-6d
.. section: Documentation

Rewrote ``Doc/library/__main__.rst``. Broadened scope of the document to
explicitly discuss and differentiate between ``__main__.py`` in packages
versus the ``__name__ == '__main__'`` expression (and the idioms that
surround it).

..

.. bpo: 13814
.. date: 2021-06-21-15-46-32
.. nonce: LDcslu
.. section: Documentation

In the Design FAQ, answer "Why don't generators support the with statement?"

..

.. bpo: 27752
.. date: 2021-06-18-18-04-53
.. nonce: NEByNk
.. section: Documentation

Documentation of csv.Dialect is more descriptive.

..

.. bpo: 44453
.. date: 2021-06-18-06-44-45
.. nonce: 3PIkj2
.. section: Documentation

Fix documentation for the return type of :func:`sysconfig.get_path`.

..

.. bpo: 44392
.. date: 2021-06-16-18-09-49
.. nonce: 6RF1Sc
.. section: Documentation

Added a new section in the C API documentation for types used in type
hinting.  Documented ``Py_GenericAlias`` and ``Py_GenericAliasType``.

..

.. bpo: 38291
.. date: 2021-06-14-09-20-37
.. nonce: VMYa_Q
.. section: Documentation

Mark ``typing.io`` and ``typing.re`` as deprecated since Python 3.8 in the
documentation. They were never properly supported by type checkers.

..

.. bpo: 44322
.. date: 2021-06-06-14-12-00
.. nonce: K0PHfE
.. section: Documentation

Document that SyntaxError args have a details tuple and that details are
adjusted for errors in f-string field replacement expressions.

..

.. bpo: 42392
.. date: 2021-05-26-11-16-33
.. nonce: oxRx6E
.. section: Documentation

Document the deprecation and removal of the ``loop`` parameter for many
functions and classes in :mod:`asyncio`.

..

.. bpo: 44195
.. date: 2021-05-23-09-11-28
.. nonce: 1bqkOs
.. section: Documentation

Corrected references to ``TraversableResources`` in docs. There is no
``TraversableReader``.

..

.. bpo: 41963
.. date: 2021-05-17-20-03-47
.. nonce: eUz9_o
.. section: Documentation

Document that ``ConfigParser`` strips off comments when reading
configuration files.

..

.. bpo: 44072
.. date: 2021-05-08-09-48-05
.. nonce: fb2x5I
.. section: Documentation

Correct where in the numeric ABC hierarchy ``**`` support is added, i.e., in
numbers.Complex, not numbers.Integral.

..

.. bpo: 43558
.. date: 2021-05-07-12-27-09
.. nonce: UGhA8R
.. section: Documentation

Add the remark to :mod:`dataclasses` documentation that the :meth:`__init__`
of any base class has to be called in :meth:`__post_init__`, along with a
code example.

..

.. bpo: 44025
.. date: 2021-05-03-22-08-08
.. nonce: gcB7iP
.. section: Documentation

Clarify when '_' in match statements is a keyword, and when not.

..

.. bpo: 41706
.. date: 2020-09-03-13-37-19
.. nonce: _zXWOR
.. section: Documentation

Fix docs about how methods like ``__add__`` are invoked when evaluating
operator expressions.

..

.. bpo: 41621
.. date: 2020-08-24-13-35-04
.. nonce: nqaw9G
.. section: Documentation

Document that :class:`collections.defaultdict` parameter ``default_factory``
defaults to ``None`` and is positional-only.

..

.. bpo: 41576
.. date: 2020-08-21-22-59-37
.. nonce: 7a6CQR
.. section: Documentation

document BaseException in favor of bare except

..

.. bpo: 21760
.. date: 2020-03-21-01-19-28
.. nonce: CqofIc
.. section: Documentation

The description for __file__ fixed. Patch by Furkan Onder

..

.. bpo: 39498
.. date: 2020-01-30-05-18-48
.. nonce: Nu3sFL
.. section: Documentation

Add a "Security Considerations" index which links to standard library
modules that have explicitly documented security considerations.

..

.. bpo: 33479
.. date: 2018-05-19-15-59-29
.. nonce: 4cLlxo
.. section: Documentation

Remove the unqualified claim that tkinter is threadsafe. It has not been
true for several years and likely never was. An explanation of what is true
may be added later, after more discussion, and possibly after patching
_tkinter.c,

..

.. bpo: 40173
.. date: 2021-09-30-16-54-39
.. nonce: J_slCw
.. section: Tests

Fix :func:`test.support.import_helper.import_fresh_module`.

..

.. bpo: 45280
.. date: 2021-09-25-11-05-31
.. nonce: 3MA6lC
.. section: Tests

Add a test case for empty :class:`typing.NamedTuple`.

..

.. bpo: 45269
.. date: 2021-09-24-10-41-49
.. nonce: 8jKEr8
.. section: Tests

Cover case when invalid ``markers`` type is supplied to ``c_make_encoder``.

..

.. bpo: 45128
.. date: 2021-09-16-17-22-35
.. nonce: Jz6fl2
.. section: Tests

Fix ``test_multiprocessing_fork`` failure due to ``test_logging`` and
``sys.modules`` manipulation.

..

.. bpo: 45209
.. date: 2021-09-15-23-32-39
.. nonce: 55ntL5
.. section: Tests

Fix ``UserWarning: resource_tracker`` warning in
``_test_multiprocessing._TestSharedMemory.test_shared_memory_cleaned_after_process_termination``

..

.. bpo: 45185
.. date: 2021-09-14-14-54-04
.. nonce: qFx5I6
.. section: Tests

Enables ``TestEnumerations`` test cases in ``test_ssl`` suite.

..

.. bpo: 45195
.. date: 2021-09-14-13-16-18
.. nonce: EyQR1G
.. section: Tests

Fix test_readline.test_nonascii(): sometimes, the newline character is not
written at the end, so don't expect it in the output. Patch by Victor
Stinner.

..

.. bpo: 45156
.. date: 2021-09-13-00-28-17
.. nonce: 8oomV3
.. section: Tests

Fixes infinite loop on :func:`unittest.mock.seal` of mocks created by
:func:`~unittest.create_autospec`.

..

.. bpo: 45125
.. date: 2021-09-11-22-08-18
.. nonce: FVSzs2
.. section: Tests

Improves pickling tests and docs of ``SharedMemory`` and ``SharableList``
objects.

..

.. bpo: 44860
.. date: 2021-09-08-13-01-37
.. nonce: qXd0kx
.. section: Tests

Update ``test_sysconfig.test_user_similar()`` for the posix_user scheme:
``platlib`` doesn't use :data:`sys.platlibdir`. Patch by Victor Stinner.

..

.. bpo: 45052
.. date: 2021-09-06-19-00-29
.. nonce: yrOK3J
.. section: Tests

``WithProcessesTestSharedMemory.test_shared_memory_basics`` test was
ignored, because ``self.assertEqual(sms.size, sms2.size)`` line was failing.
It is now removed and test is unskipped.

The main motivation for this line to be removed from the test is that the
``size`` of ``SharedMemory`` is not ever guaranteed to be the same. It is
decided by the platform.

..

.. bpo: 44895
.. date: 2021-09-01-17-17-44
.. nonce: kV7H77
.. section: Tests

libregrtest now clears the type cache later to reduce the risk of false
alarm when checking for reference leaks. Previously, the type cache was
cleared too early and libregrtest raised a false alarm about reference leaks
under very specific conditions. Patch by Irit Katriel and Victor Stinner.

..

.. bpo: 45042
.. date: 2021-08-30-11-54-14
.. nonce: QMz3X8
.. section: Tests

Fixes that test classes decorated with
``@hashlib_helper.requires_hashdigest`` were skipped all the time.

..

.. bpo: 25130
.. date: 2021-08-27-22-37-19
.. nonce: ig4oJe
.. section: Tests

Add calls of :func:`gc.collect` in tests to support PyPy.

..

.. bpo: 45011
.. date: 2021-08-26-14-20-44
.. nonce: mQZdXU
.. section: Tests

Made tests relying on the :mod:`!_asyncio` C extension module optional to
allow running on alternative Python implementations. Patch by Serhiy
Storchaka.

..

.. bpo: 44949
.. date: 2021-08-18-18-30-12
.. nonce: VE5ENv
.. section: Tests

Fix auto history tests of test_readline: sometimes, the newline character is
not written at the end, so don't expect it in the output.

..

.. bpo: 44891
.. date: 2021-08-13-12-11-06
.. nonce: T9_mBT
.. section: Tests

Tests were added to clarify :func:`id` is preserved when ``obj * 1`` is used
on :class:`str` and :class:`bytes` objects. Patch by Nikita Sobolev.

..

.. bpo: 44852
.. date: 2021-08-06-18-36-04
.. nonce: sUL8YX
.. section: Tests

Add ability to wholesale silence DeprecationWarnings while running the
regression test suite.

..

.. bpo: 40928
.. date: 2021-08-06-00-07-15
.. nonce: aIwb6G
.. section: Tests

Notify users running test_decimal regression tests on macOS of potential
harmless "malloc can't allocate region" messages spewed by test_decimal.

..

.. bpo: 44734
.. date: 2021-07-24-20-09-15
.. nonce: KKsNOV
.. section: Tests

Fixed floating-point precision issue in turtle tests.

..

.. bpo: 44708
.. date: 2021-07-22-16-38-39
.. nonce: SYNaac
.. section: Tests

Regression tests, when run with -w, are now re-running only the affected
test methods instead of re-running the entire test file.

..

.. bpo: 42095
.. date: 2021-07-17-11-41-20
.. nonce: kCB7oj
.. section: Tests

Added interop tests for Apple plists: generate plist files with Python
plistlib and parse with Apple plutil; and the other way round.

..

.. bpo: 44647
.. date: 2021-07-16-14-02-33
.. nonce: 5LzqIy
.. section: Tests

Added a permanent Unicode-valued environment variable to regression tests to
ensure they handle this use case in the future. If your test environment
breaks because of that, report a bug to us, and temporarily set
PYTHONREGRTEST_UNICODE_GUARD=0 in your test environment.

..

.. bpo: 44515
.. date: 2021-06-26-18-37-36
.. nonce: e9fO6f
.. section: Tests

Adjust recently added contextlib tests to avoid assuming the use of a
refcounted GC

..

.. bpo: 44287
.. date: 2021-06-21-17-53-41
.. nonce: YON57s
.. section: Tests

Fix asyncio test_popen() of test_windows_utils by using a longer timeout.
Use military grade battle-tested :data:`test.support.SHORT_TIMEOUT` timeout
rather than a hardcoded timeout of 10 seconds: it's 30 seconds by default,
but it is made longer on slow buildbots. Patch by Victor Stinner.

..

.. bpo: 44451
.. date: 2021-06-18-15-19-35
.. nonce: aj5pqE
.. section: Tests

Reset ``DeprecationWarning`` filters in
``test.test_importlib.test_metadata_api.APITests.test_entry_points_by_index``
to avoid ``StopIteration`` error if ``DeprecationWarnings`` are ignored.

..

.. bpo: 44363
.. date: 2021-06-10-11-19-43
.. nonce: -K9jD0
.. section: Tests

Account for address sanitizer in test_capi. test_capi now passes when run
GCC address sanitizer.

..

.. bpo: 44364
.. date: 2021-06-09-15-32-05
.. nonce: zu9Zee
.. section: Tests

Add non integral tests for :func:`math.sqrt` function.

..

.. bpo: 43921
.. date: 2021-06-03-03-29-34
.. nonce: nwH1FS
.. section: Tests

Fix test_ssl.test_wrong_cert_tls13(): use ``suppress_ragged_eofs=False``,
since ``read()`` can raise :exc:`ssl.SSLEOFError` on Windows. Patch by
Victor Stinner.

..

.. bpo: 43921
.. date: 2021-06-02-17-41-42
.. nonce: xP7yZ4
.. section: Tests

Fix test_pha_required_nocert() of test_ssl: catch two more EOF cases (when
the ``recv()`` method returns an empty string). Patch by Victor Stinner.

..

.. bpo: 44131
.. date: 2021-05-14-14-13-44
.. nonce: YPizoC
.. section: Tests

Add test_frozenmain to test_embed to test the :c:func:`Py_FrozenMain` C
function. Patch by Victor Stinner.

..

.. bpo: 31904
.. date: 2021-05-07-15-46-04
.. nonce: 8dk3la
.. section: Tests

Ignore error string case in test_file_not_exists().

..

.. bpo: 42083
.. date: 2021-05-04-18-10-57
.. nonce: EMS2TK
.. section: Tests

Add test to check that ``PyStructSequence_NewType`` accepts a
``PyStructSequence_Desc`` with ``doc`` field set to ``NULL``.

..

.. bpo: 35753
.. date: 2020-10-25-19-20-26
.. nonce: 2LT-hO
.. section: Tests

Fix crash in doctest when doctest parses modules that include unwrappable
functions by skipping those functions.

..

.. bpo: 30256
.. date: 2019-09-25-18-10-10
.. nonce: A5i76Q
.. section: Tests

Add test for nested queues when using ``multiprocessing`` shared objects
``AutoProxy[Queue]`` inside ``ListProxy`` and ``DictProxy``

..

.. bpo: 45220
.. date: 2021-09-16-18-00-43
.. nonce: TgbkvW
.. section: Build

Avoid building with the Windows 11 SDK previews automatically. This may be
overridden by setting the ``DefaultWindowsSDKVersion`` environment variable
before building.

..

.. bpo: 45020
.. date: 2021-09-14-10-07-23
.. nonce: _VGGPv
.. section: Build

Freeze stdlib modules that are imported during startup.  This provides
significant performance improvements to startup.  If necessary, use the
previously added "-X frozen_modules=off" commandline option to force
importing the source modules.

..

.. bpo: 45188
.. date: 2021-09-14-00-47-57
.. nonce: MNbo_T
.. section: Build

Windows builds now regenerate frozen modules as the first part of the build.
Previously the regeneration was later in the build, which would require it
to be restarted if any modules had changed.

..

.. bpo: 45163
.. date: 2021-09-11-06-05-23
.. nonce: q7xT93
.. section: Build

Fixes Haiku platform build.

..

.. bpo: 45067
.. date: 2021-09-09-16-45-26
.. nonce: mFmY92
.. section: Build

The ncurses function extended_color_content was introduced in 2017

(https://invisible-island.net/ncurses/NEWS.html#index-t20170401).  The

ncurses-devel package in CentOS 7 had a older version ncurses resulted in
compilation error.  For compiling ncurses with extended color support, we
verify the version of the ncurses library >= 20170401.

..

.. bpo: 45019
.. date: 2021-08-26-13-10-46
.. nonce: e0mo49
.. section: Build

Generate lines in relevant files for frozen modules.  Up until now each of
the files had to be edited manually.  This change makes it easier to add to
and modify the frozen modules.

..

.. bpo: 44340
.. date: 2021-07-19-01-09-56
.. nonce: JNeOf4
.. section: Build

Add support for building with clang thin lto via --with-lto=thin/full. Patch
by Donghee Na and Brett Holman.

..

.. bpo: 44535
.. date: 2021-06-30-02-32-46
.. nonce: M9iN4-
.. section: Build

Enable building using a Visual Studio 2022 install on Windows.

..

.. bpo: 43298
.. date: 2021-06-19-11-50-03
.. nonce: 9ircMb
.. section: Build

Improved error message when building without a Windows SDK installed.

..

.. bpo: 44381
.. date: 2021-06-10-18-08-44
.. nonce: Xpc1iX
.. section: Build

The Windows build now accepts :envvar:`EnableControlFlowGuard` set to
``guard`` to enable CFG.

..

.. bpo: 41282
.. date: 2021-05-24-03-31-17
.. nonce: L8nP44
.. section: Build

Fix broken ``make install`` that caused standard library extension modules
to be unnecessarily and incorrectly rebuilt during the install phase of
cpython.

..

.. bpo: 45375
.. date: 2021-10-05-12-41-53
.. nonce: CohPP-
.. section: Windows

Fixes an assertion failure due to searching for the standard library in
unnormalised paths.

..

.. bpo: 45022
.. date: 2021-09-03-18-05-21
.. nonce: bgpD_r
.. section: Windows

Update Windows release to include libffi 3.4.2

..

.. bpo: 45007
.. date: 2021-08-27-23-50-02
.. nonce: NIBlVG
.. section: Windows

Update to OpenSSL 1.1.1l in Windows build

..

.. bpo: 44848
.. date: 2021-08-06-10-11-07
.. nonce: ib3Jcz
.. section: Windows

Upgrade Windows installer to use SQLite 3.36.0.

..

.. bpo: 44572
.. date: 2021-07-13-15-32-49
.. nonce: gXvhDc
.. section: Windows

Avoid consuming standard input in the :mod:`platform` module

..

.. bpo: 44582
.. date: 2021-07-07-21-07-18
.. nonce: 4Mm6Hh
.. section: Windows

Accelerate speed of :mod:`mimetypes` initialization using a native
implementation of the registry scan.

..

.. bpo: 41299
.. date: 2021-06-06-16-36-13
.. nonce: Rg-vb_
.. section: Windows

Fix 16 milliseconds jitter when using timeouts in :mod:`threading`, such as
with :meth:`threading.Lock.acquire` or :meth:`threading.Condition.wait`.

..

.. bpo: 42686
.. date: 2021-01-01-21-21-03
.. nonce: G_f-TC
.. section: Windows

Build :mod:`sqlite3` with math functions enabled. Patch by Erlend E.
Aasland.

..

.. bpo: 40263
.. date: 2020-04-13-15-20-28
.. nonce: 1KKEbu
.. section: Windows

This is a follow-on bug from https://bugs.python.org/issue26903. Once that
is applied we run into an off-by-one assertion problem. The assert was not
correct.

..

.. bpo: 45007
.. date: 2021-08-30-00-04-10
.. nonce: pixqUB
.. section: macOS

Update macOS installer builds to use OpenSSL 1.1.1l.

..

.. bpo: 34602
.. date: 2021-08-27-16-55-10
.. nonce: ZjHsYJ
.. section: macOS

When building CPython on macOS with ``./configure
--with-undefined-behavior-sanitizer --with-pydebug``, the stack size is now
quadrupled to allow for the entire test suite to pass.

..

.. bpo: 44848
.. date: 2021-08-06-10-08-41
.. nonce: 0uYXsE
.. section: macOS

Update macOS installer to use SQLite 3.36.0.

..

.. bpo: 44689
.. date: 2021-07-20-22-27-01
.. nonce: mmT_xH
.. section: macOS

:meth:`ctypes.util.find_library` now works correctly on macOS 11 Big Sur
even if Python is built on an older version of macOS.  Previously, when
built on older macOS systems, ``find_library`` was not able to find  macOS
system libraries when running on Big Sur due to changes in  how system
libraries are stored.

..

.. bpo: 41972
.. date: 2021-07-12-15-42-02
.. nonce: yUjE8j
.. section: macOS

The framework build's user header path in sysconfig is changed to add a
'pythonX.Y' component to match distutils's behavior.

..

.. bpo: 43109
.. date: 2021-05-24-21-15-41
.. nonce: npKJ9c
.. section: macOS

Allow --with-lto configure option to work with Apple-supplied Xcode or
Command Line Tools.

..

.. bpo: 34932
.. date: 2021-03-29-21-11-23
.. nonce: f3Hdyd
.. section: macOS

Add socket.TCP_KEEPALIVE support for macOS. Patch by Shane Harvey.

..

.. bpo: 45296
.. date: 2021-09-27-01-21-59
.. nonce: 9H8rdY
.. section: IDLE

On Windows, change exit/quit message to suggest Ctrl-D, which works, instead
of <Ctrl-Z Return>, which does not work in IDLE.

..

.. bpo: 45193
.. date: 2021-09-15-03-20-06
.. nonce: G61_GV
.. section: IDLE

Make completion boxes appear on Ubuntu again.

..

.. bpo: 40128
.. date: 2021-06-11-17-43-39
.. nonce: 7vDN3U
.. section: IDLE

Mostly fix completions on macOS when not using tcl/tk 8.6.11 (as with 3.9).
The added update_idletask call should be harmless and possibly helpful
otherwise.

..

.. bpo: 33962
.. date: 2021-06-10-00-50-02
.. nonce: ikAUNg
.. section: IDLE

Move the indent space setting from the Font tab to the new Windows tab.
Patch by Mark Roseman and Terry Jan Reedy.

..

.. bpo: 40468
.. date: 2021-06-08-03-04-51
.. nonce: tUCGUb
.. section: IDLE

Split the settings dialog General tab into Windows and Shell/ED tabs. Move
help sources, which extend the Help menu, to the Extensions tab. Make space
for new options and shorten the dialog. The latter makes the dialog better
fit small screens.

..

.. bpo: 41611
.. date: 2021-05-27-18-22-46
.. nonce: jOKpfc
.. section: IDLE

Avoid uncaught exceptions in ``AutoCompleteWindow.winconfig_event()``.

..

.. bpo: 41611
.. date: 2021-05-27-13-39-43
.. nonce: liNQqj
.. section: IDLE

Fix IDLE sometimes freezing upon tab-completion on macOS.

..

.. bpo: 44010
.. date: 2021-05-09-09-02-09
.. nonce: TaLe9x
.. section: IDLE

Highlight the new :ref:`match <match>` statement's :ref:`soft keywords
<soft-keywords>`: :keyword:`match`, :keyword:`case <match>`, and :keyword:`_
<wildcard-patterns>`. However, this highlighting is not perfect and will be
incorrect in some rare cases, including some ``_``-s in ``case`` patterns.

..

.. bpo: 44026
.. date: 2021-05-05-09-45-24
.. nonce: m2Z0zR
.. section: IDLE

Include interpreter's typo fix suggestions in message line for NameErrors
and AttributeErrors.  Patch by E. Paine.

..

.. bpo: 44786
.. date: 2021-09-14-11-44-26
.. nonce: DU0LC0
.. section: Tools/Demos

Fix a warning in regular expression in the c-analyzer script.

..

.. bpo: 44967
.. date: 2021-08-26-11-57-31
.. nonce: UT1RMV
.. section: Tools/Demos

pydoc now returns a non-zero status code when a module cannot be found.

..

.. bpo: 44978
.. date: 2021-08-22-11-45-31
.. nonce: QupKV3
.. section: Tools/Demos

Allow the Argument Clinic tool to handle ``__complex__`` special methods.

..

.. bpo: 43425
.. date: 2021-07-01-22-21-25
.. nonce: t65len
.. section: Tools/Demos

Removed the 'test2to3' demo project that demonstrated using lib2to3 to
support Python 2.x and Python 3.x from a single source in a distutils
package. Patch by Donghee Na

..

.. bpo: 44074
.. date: 2021-05-08-13-57-00
.. nonce: F09kCK
.. section: Tools/Demos

Make patchcheck automatically detect the correct base branch name
(previously it was hardcoded to 'master')

..

.. bpo: 20291
.. date: 2020-02-25-18-22-09
.. nonce: AyrDiZ
.. section: Tools/Demos

Added support for variadic positional parameters in Argument Clinic.

..

.. bpo: 41710
.. date: 2021-09-30-03-14-35
.. nonce: DDWJKx
.. section: C API

The PyThread_acquire_lock_timed() function now clamps the timeout if it is
too large, rather than aborting the process. Patch by Victor Stinner.

..

.. bpo: 44687
.. date: 2021-09-19-17-18-25
.. nonce: 3fqDRC
.. section: C API

:meth:`BufferedReader.peek` no longer raises :exc:`ValueError` when the
entire file has already been buffered.

..

.. bpo: 45116
.. date: 2021-09-16-18-05-20
.. nonce: WxXewl
.. section: C API

Add the :c:macro:`Py_ALWAYS_INLINE` macro to ask the compiler to always
inline a static inline function. The compiler can ignore it and decides to
not inline the function. Patch by Victor Stinner.

..

.. bpo: 45094
.. date: 2021-09-03-15-53-43
.. nonce: tinXwL
.. section: C API

Add the :c:macro:`Py_NO_INLINE` macro to disable inlining on a function.
Patch by Victor Stinner.

..

.. bpo: 45061
.. date: 2021-08-31-15-21-36
.. nonce: ZH0HVe
.. section: C API

Add a deallocator to the :class:`bool` type to detect refcount bugs in C
extensions which call ``Py_DECREF(Py_True);`` or ``Py_DECREF(Py_False);`` by
mistake. Patch by Victor Stinner.

..

.. bpo: 42035
.. date: 2021-08-02-20-49-36
.. nonce: HTBcZt
.. section: C API

Add a new :c:func:`PyType_GetQualName` function to get type's qualified
name.

..

.. bpo: 41103
.. date: 2021-07-29-16-04-28
.. nonce: hiKKcF
.. section: C API

Reverts removal of the old buffer protocol because they are part of stable
ABI.

..

.. bpo: 44751
.. date: 2021-07-27-17-29-12
.. nonce: 4qmbDG
.. section: C API

Remove ``crypt.h`` include from the public ``Python.h`` header.

..

.. bpo: 42747
.. date: 2021-07-20-16-21-06
.. nonce: rRxjUY
.. section: C API

The ``Py_TPFLAGS_HAVE_VERSION_TAG`` type flag now does nothing. The
``Py_TPFLAGS_HAVE_AM_SEND`` flag (which was added in 3.10) is removed. Both
were unnecessary because it is not possible to have type objects with the
relevant fields missing.

..

.. bpo: 44530
.. date: 2021-06-28-23-44-47
.. nonce: qij7YC
.. section: C API

Added the ``co_qualname`` to the ``PyCodeObject`` structure to propagate the
qualified name from the compiler to code objects.

Patch by Gabriele N. Tornetta

..

.. bpo: 44441
.. date: 2021-06-23-12-12-04
.. nonce: 3p14JB
.. section: C API

:c:func:`Py_RunMain` now resets :c:data:`PyImport_Inittab` to its initial
value at exit. It must be possible to call :c:func:`PyImport_AppendInittab`
or :c:func:`PyImport_ExtendInittab` at each Python initialization. Patch by
Victor Stinner.

..

.. bpo: 39947
.. date: 2021-06-23-10-31-45
.. nonce: je_HMo
.. section: C API

Remove 4 private trashcan C API functions which were only kept for the
backward compatibility of the stable ABI with Python 3.8 and older, since
the trashcan API was not usable with the limited C API on Python 3.8 and
older. The trashcan API was excluded from the limited C API in Python 3.9.

Removed functions:

* _PyTrash_deposit_object()
* _PyTrash_destroy_chain()
* _PyTrash_thread_deposit_object()
* _PyTrash_thread_destroy_chain()

The trashcan C API was never usable with the limited C API, since old
trashcan macros accessed directly :c:type:`PyThreadState` members like
``_tstate->trash_delete_nesting``, whereas the :c:type:`PyThreadState`
structure is opaque in the limited C API.

Exclude also the ``PyTrash_UNWIND_LEVEL`` constant from the C API.

Patch by Victor Stinner.

..

.. bpo: 40939
.. date: 2021-06-22-17-00-06
.. nonce: CGB0I5
.. section: C API

Removed documentation for the removed ``PyParser_*`` C API.

..

.. bpo: 43795
.. date: 2021-06-15-16-28-18
.. nonce: fy0AXK
.. section: C API

The list in :ref:`limited-api-list` now shows the public name
:c:struct:`PyFrameObject` rather than ``_frame``. The non-existing entry
``_node`` no longer appears in the list.

..

.. bpo: 44378
.. date: 2021-06-10-15-22-31
.. nonce: jGYakF
.. section: C API

:c:func:`Py_IS_TYPE` no longer uses :c:func:`Py_TYPE` to avoid a compiler
warning: no longer cast ``const PyObject*`` to ``PyObject*``. Patch by
Victor Stinner.

..

.. bpo: 39573
.. date: 2021-06-03-00-59-48
.. nonce: -elHTJ
.. section: C API

Convert the :c:func:`Py_TYPE` and :c:func:`Py_SIZE` macros to static inline
functions. The :c:func:`Py_SET_TYPE` and :c:func:`Py_SET_SIZE` functions
must now be used to set an object type and size. Patch by Victor Stinner.

..

.. bpo: 44263
.. date: 2021-05-31-11-31-13
.. nonce: 8mIOfV
.. section: C API

The :c:func:`PyType_Ready` function now raises an error if a type is defined
with the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set but has no traverse function
(:c:member:`PyTypeObject.tp_traverse`). Patch by Victor Stinner.

..

.. bpo: 43795
.. date: 2021-05-19-15-09-47
.. nonce: WAHRxt
.. section: C API

The undocumented function :c:func:`Py_FrozenMain` is removed from the
Limited API.

..

.. bpo: 44113
.. date: 2021-05-12-12-24-45
.. nonce: DcgOqE
.. section: C API

Deprecate the following functions to configure the Python initialization:

* :c:func:`!PySys_AddWarnOptionUnicode`
* :c:func:`!PySys_AddWarnOption`
* :c:func:`!PySys_AddXOption`
* :c:func:`!PySys_HasWarnOptions`
* :c:func:`!Py_SetPath`
* :c:func:`!Py_SetProgramName`
* :c:func:`!Py_SetPythonHome`
* :c:func:`!Py_SetStandardStreamEncoding`
* :c:func:`!_Py_SetProgramFullPath`

Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization
Configuration <init-config>` instead (:pep:`587`).

..

.. bpo: 44094
.. date: 2021-05-10-14-34-22
.. nonce: HayXZO
.. section: C API

Remove ``PyErr_SetFromErrnoWithUnicodeFilename()``,
``PyErr_SetFromWindowsErrWithUnicodeFilename()``, and
``PyErr_SetExcFromWindowsErrWithUnicodeFilename()``. They are not documented
and have been deprecated since Python 3.3.

..

.. bpo: 43795
.. date: 2021-05-05-19-04-50
.. nonce: 9Ojj73
.. section: C API

:c:func:`PyCodec_Unregister` is now properly exported as a function in the
Windows Stable ABI DLL.

..

.. bpo: 44029
.. date: 2021-05-04-17-43-39
.. nonce: ayX4PR
.. section: C API

Remove deprecated ``Py_UNICODE`` APIs: ``PyUnicode_Encode``,
``PyUnicode_EncodeUTF7``, ``PyUnicode_EncodeUTF8``,
``PyUnicode_EncodeUTF16``, ``PyUnicode_EncodeUTF32``,
``PyUnicode_EncodeLatin1``, ``PyUnicode_EncodeMBCS``,
``PyUnicode_EncodeDecimal``, ``PyUnicode_EncodeRawUnicodeEscape``,
``PyUnicode_EncodeCharmap``, ``PyUnicode_EncodeUnicodeEscape``,
``PyUnicode_TransformDecimalToASCII``, ``PyUnicode_TranslateCharmap``,
``PyUnicodeEncodeError_Create``, ``PyUnicodeTranslateError_Create``. See
:pep:`393` and :pep:`624` for reference.

..

.. bpo: 42035
.. date: 2020-12-23-01-28-50
.. nonce: S9eUm0
.. section: C API

Add a new :c:func:`PyType_GetName` function to get type's short name.
