.. bpo: 47212
.. date: 2022-04-05-11-29-21
.. nonce: leF4pz
.. release date: 2022-04-05
.. section: Core and Builtins

Raise :exc:`IndentationError` instead of :exc:`SyntaxError` for a bare
``except`` with no following indent. Improve :exc:`SyntaxError` locations
for an un-parenthesized generator used as arguments. Patch by Matthieu
Dartiailh.

..

.. bpo: 47186
.. date: 2022-04-04-17-41-10
.. nonce: aQWoSh
.. section: Core and Builtins

Replace :opcode:`JUMP_IF_NOT_EG_MATCH` by :opcode:`CHECK_EG_MATCH` + jump.

..

.. bpo: 47176
.. date: 2022-04-02-14-32-21
.. nonce: kTygYI
.. section: Core and Builtins

Emscripten builds cannot handle signals in the usual way due to platform
limitations. Python can now handle signals. To use, set
Module.Py_EmscriptenSignalBuffer to be a single byte SharedArrayBuffer and
set Py_EMSCRIPTEN_SIGNAL_HANDLING to 1. Writing a number into the
SharedArrayBuffer will cause the corresponding signal to be raised into the
Python thread.

..

.. bpo: 47186
.. date: 2022-04-01-11-53-59
.. nonce: RBCPk8
.. section: Core and Builtins

Replace :opcode:`JUMP_IF_NOT_EXC_MATCH` by :opcode:`CHECK_EXC_MATCH` + jump.

..

.. bpo: 47120
.. date: 2022-03-31-21-43-57
.. nonce: NgxQbA
.. section: Core and Builtins

Replace the absolute jump opcode :opcode:`JUMP_NO_INTERRUPT` by the relative
:opcode:`JUMP_BACKWARD_NO_INTERRUPT`.

..

.. bpo: 46841
.. date: 2022-03-31-15-57-42
.. nonce: U-25Z6
.. section: Core and Builtins

Avoid unnecessary allocations when comparing code objects.

..

.. bpo: 47182
.. date: 2022-03-31-15-37-02
.. nonce: e_4SsC
.. section: Core and Builtins

Fix a crash when using a named unicode character like ``"\N{digit nine}"``
after the main interpreter has been initialized a second time.

..

.. bpo: 47162
.. date: 2022-03-30-13-13-25
.. nonce: yDJMUm
.. section: Core and Builtins

WebAssembly cannot deal with bad function pointer casts (different count or
types of arguments). Python can now use call trampolines to mitigate the
problem. Define :c:macro:`PY_CALL_TRAMPOLINE` to enable call trampolines.

..

.. bpo: 46775
.. date: 2022-03-30-02-36-25
.. nonce: e3Oxqf
.. section: Core and Builtins

Some Windows system error codes(>= 10000) are now mapped into the correct
errno and may now raise a subclass of :exc:`OSError`. Patch by Donghee Na.

..

.. bpo: 47129
.. date: 2022-03-26-16-35-57
.. nonce: hDg2Vt
.. section: Core and Builtins

Improve error messages in f-string syntax errors concerning empty
expressions.

..

.. bpo: 47117
.. date: 2022-03-26-15-45-57
.. nonce: 60W6GQ
.. section: Core and Builtins

Fix a crash if we fail to decode characters in interactive mode if the
tokenizer buffers are uninitialized. Patch by Pablo Galindo.

..

.. bpo: 47127
.. date: 2022-03-26-12-21-53
.. nonce: Mh86RB
.. section: Core and Builtins

Speed up calls to c functions with keyword arguments by 25% with
specialization. Patch by Kumar Aditya.

..

.. bpo: 47120
.. date: 2022-03-25-21-51-10
.. nonce: 9YJ-Xw
.. section: Core and Builtins

Replaced :opcode:`JUMP_ABSOLUTE` by the relative jump
:opcode:`JUMP_BACKWARD`.

..

.. bpo: 42197
.. date: 2022-03-22-15-12-28
.. nonce: SwrrFO
.. section: Core and Builtins

:c:func:`!PyFrame_FastToLocalsWithError` and :c:func:`!PyFrame_LocalsToFast`
are no longer called during profiling nor tracing. C code can access the
``f_locals`` attribute of :c:type:`PyFrameObject` by calling
:c:func:`PyFrame_GetLocals`.

..

.. bpo: 47070
.. date: 2022-03-19-21-50-59
.. nonce: wPcsQh
.. section: Core and Builtins

Improve performance of ``array_inplace_repeat`` by reducing the number of
invocations of ``memcpy``. Refactor the ``repeat`` and inplace ``repeat``
methods of ``array``, ``bytes``, ``bytearray`` and ``unicodeobject`` to use
the common ``_PyBytes_Repeat``.

..

.. bpo: 47053
.. date: 2022-03-17-22-47-29
.. nonce: QAXk8Q
.. section: Core and Builtins

Reduce de-optimization in the specialized ``BINARY_OP_INPLACE_ADD_UNICODE``
opcode.

..

.. bpo: 47045
.. date: 2022-03-17-16-25-57
.. nonce: xQgHul
.. section: Core and Builtins

Remove the ``f_state`` field from the _PyInterpreterFrame struct. Add the
``owner`` field to the _PyInterpreterFrame struct to make ownership explicit
to simplify clearing and deallocing frames and generators.

..

.. bpo: 46968
.. date: 2022-03-17-14-22-23
.. nonce: 4gz4NA
.. section: Core and Builtins

Check for the existence of the "sys/auxv.h" header in :mod:`faulthandler` to
avoid compilation problems in systems where this header doesn't exist. Patch
by Pablo Galindo

..

.. bpo: 46329
.. date: 2022-03-16-12-19-25
.. nonce: 9oS0HT
.. section: Core and Builtins

Use low bit of ``LOAD_GLOBAL`` to indicate whether to push a ``NULL`` before
the global. Helps streamline the call sequence a bit.

..

.. bpo: 46841
.. date: 2022-03-16-11-05-35
.. nonce: yUoIHg
.. section: Core and Builtins

Quicken bytecode in-place by storing it as part of the corresponding
``PyCodeObject``.

..

.. bpo: 47012
.. date: 2022-03-14-11-15-11
.. nonce: 5L6NoE
.. section: Core and Builtins

Speed up iteration of :class:`bytes` and :class:`bytearray` by 30%. Patch by
Kumar Aditya.

..

.. bpo: 47009
.. date: 2022-03-14-09-45-10
.. nonce: ZI05b5
.. section: Core and Builtins

Improved the performance of :meth:`list.append()` and list comprehensions by
optimizing for the common case, where no resize is needed. Patch by Dennis
Sweeney.

..

.. bpo: 47005
.. date: 2022-03-13-21-04-20
.. nonce: OHBfCc
.. section: Core and Builtins

Improve performance of ``bytearray_repeat`` and ``bytearray_irepeat`` by
reducing the number of invocations of ``memcpy``.

..

.. bpo: 46829
.. date: 2022-03-12-21-07-21
.. nonce: cpGoPV
.. section: Core and Builtins

Deprecate passing a message into :meth:`asyncio.Future.cancel` and
:meth:`asyncio.Task.cancel`

..

.. bpo: 46993
.. date: 2022-03-12-09-44-31
.. nonce: -13hGo
.. section: Core and Builtins

Speed up :class:`bytearray` creation from :class:`list` and :class:`tuple`
by 40%. Patch by Kumar Aditya.

..

.. bpo: 39829
.. date: 2022-03-11-09-39-01
.. nonce: mlW3Su
.. section: Core and Builtins

Removed the ``__len__()`` call when initializing a list and moved
initializing to ``list_extend``. Patch by Jeremiah Pascual.

..

.. bpo: 46944
.. date: 2022-03-08-10-50-42
.. nonce: cnaIK3
.. section: Core and Builtins

Speed up throwing exception in generator with :c:macro:`METH_FASTCALL` calling
convention. Patch by Kumar Aditya.

..

.. bpo: 46841
.. date: 2022-03-07-15-54-39
.. nonce: 7wG92r
.. section: Core and Builtins

Modify :opcode:`STORE_SUBSCR` to use an inline cache entry (rather than its
oparg) as an adaptive counter.

..

.. bpo: 46841
.. date: 2022-03-06-10-37-36
.. nonce: O12Pba
.. section: Core and Builtins

Use inline caching for :opcode:`PRECALL` and :opcode:`CALL`, and remove the
internal machinery for managing the (now unused) non-inline caches.

..

.. bpo: 46881
.. date: 2022-03-03-09-08-17
.. nonce: ckD4tT
.. section: Core and Builtins

Statically allocate and initialize the latin1 characters.

..

.. bpo: 46838
.. date: 2022-02-25-22-42-30
.. nonce: RB6kEy
.. section: Core and Builtins

Improve syntax errors for incorrect function definitions. Patch by Pablo
Galindo

..

.. bpo: 43721
.. date: 2022-02-01-10-05-27
.. nonce: -1XAIo
.. section: Core and Builtins

Fix docstrings of :attr:`~property.getter`, :attr:`~property.setter`, and
:attr:`~property.deleter` to clarify that they create a new copy of the
property.

..

.. bpo: 43224
.. date: 2022-01-20-16-48-09
.. nonce: WDihrT
.. section: Core and Builtins

Make grammar changes required for PEP 646.

..

.. bpo: 47208
.. date: 2022-04-04-08-54-31
.. nonce: cOh9xZ
.. section: Library

Allow vendors to override :const:`CTYPES_MAX_ARGCOUNT`.

..

.. bpo: 23689
.. date: 2022-04-03-13-19-08
.. nonce: TFSc3E
.. section: Library

:mod:`re` module: fix memory leak when a match is terminated by a signal or
memory allocation failure. Patch by Ma Lin.

..

.. bpo: 47167
.. date: 2022-03-30-18-35-50
.. nonce: nCNHsB
.. section: Library

Allow overriding a future compliance check in :class:`asyncio.Task`.

..

.. bpo: 47151
.. date: 2022-03-30-01-17-43
.. nonce: z-nQkR
.. section: Library

When subprocess tries to use vfork, it now falls back to fork if vfork
returns an error. This allows use in situations where vfork isn't allowed by
the OS kernel.

..

.. bpo: 47152
.. date: 2022-03-29-19-14-53
.. nonce: 5rl5ZK
.. section: Library

Convert the :mod:`re` module into a package. Deprecate modules
``sre_compile``, ``sre_constants`` and ``sre_parse``.

..

.. bpo: 4833
.. date: 2022-03-28-20-16-37
.. nonce: 2vSUE5
.. section: Library

Add :meth:`ZipFile.mkdir`

..

.. bpo: 27929
.. date: 2022-03-28-13-35-50
.. nonce: j5mAmV
.. section: Library

Fix :meth:`asyncio.loop.sock_connect` to only resolve names for
:const:`socket.AF_INET` or :const:`socket.AF_INET6` families. Resolution may
not make sense for other families, like :const:`socket.AF_BLUETOOTH` and
:const:`socket.AF_UNIX`.

..

.. bpo: 14265
.. date: 2022-03-27-10-41-24
.. nonce: OBMlAi
.. section: Library

Adds the fully qualified test name to unittest output

..

.. bpo: 47061
.. date: 2022-03-26-13-14-43
.. nonce: QLxbC6
.. section: Library

Deprecate the aifc module.

..

.. bpo: 39622
.. date: 2022-03-25-01-27-25
.. nonce: ieBIMp
.. section: Library

Handle Ctrl+C in asyncio programs to interrupt the main task.

..

.. bpo: 47101
.. date: 2022-03-23-15-31-02
.. nonce: rVSld-
.. section: Library

:const:`hashlib.algorithms_available` now lists only algorithms that are
provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are
not listed unless the legacy provider has been loaded into the default OSSL
context.

..

.. bpo: 47099
.. date: 2022-03-23-14-16-38
.. nonce: 2raait
.. section: Library

All :exc:`URLError` exception messages raised in
:class:`urllib.request.URLopener` now contain a colon between ``ftp error``
and the rest of the message. Previously,
:func:`~urllib.request.URLopener.open_ftp` missed the colon. Patch by Oleg
Iarygin.

..

.. bpo: 47099
.. date: 2022-03-23-13-55-41
.. nonce: P6quRP
.. section: Library

Exception chaining is changed from
:func:`Exception.with_traceback`/:func:`sys.exc_info` to :pep:`3134`. Patch
by Oleg Iarygin.

..

.. bpo: 47095
.. date: 2022-03-23-12-07-26
.. nonce: P3YTrh
.. section: Library

:mod:`hashlib`'s internal ``_blake2`` module now prefers ``libb2`` from
https://www.blake2.net/ over Python's vendored copy of blake2.

..

.. bpo: 47098
.. date: 2022-03-23-10-07-41
.. nonce: 7AN_qp
.. section: Library

The Keccak Code Package for :mod:`hashlib`'s internal ``_sha3`` module has
been replaced with tiny_sha3. The module is used as fallback when Python is
built without OpenSSL.

..

.. bpo: 47088
.. date: 2022-03-22-19-18-31
.. nonce: JM1kNI
.. section: Library

Implement :data:`typing.LiteralString`, part of :pep:`675`. Patch by Jelle
Zijlstra.

..

.. bpo: 42885
.. date: 2022-03-21-08-32-19
.. nonce: LCnTTp
.. section: Library

Optimize :func:`re.search`, :func:`re.split`, :func:`re.findall`,
:func:`re.finditer` and :func:`re.sub` for regular expressions starting with
``\A`` or ``^``.

..

.. bpo: 23691
.. date: 2022-03-20-22-13-24
.. nonce: Nc2TrW
.. section: Library

Protect the :func:`re.finditer` iterator from re-entering.

..

.. bpo: 47067
.. date: 2022-03-20-17-15-56
.. nonce: XXLnje
.. section: Library

Optimize calling ``GenericAlias`` objects by using :pep:`590` ``vectorcall``
and by replacing ``PyObject_SetAttrString`` with ``PyObject_SetAttr``.

..

.. bpo: 28080
.. date: 2022-03-20-15-54-41
.. nonce: kn35Vk
.. section: Library

Add the *metadata_encoding* parameter in the :class:`zipfile.ZipFile`
constructor and the ``--metadata-encoding`` option in the :mod:`zipfile` CLI
to allow reading zipfiles using non-standard codecs to encode the filenames
within the archive.

..

.. bpo: 47000
.. date: 2022-03-20-13-00-08
.. nonce: p8HpG0
.. section: Library

Make :func:`io.text_encoding` returns "utf-8" when UTF-8 mode is enabled.

..

.. bpo: 42369
.. date: 2022-03-19-19-56-04
.. nonce: Ok828t
.. section: Library

Fix thread safety of :meth:`zipfile._SharedFile.tell` to avoid a
"zipfile.BadZipFile: Bad CRC-32 for file" exception when reading a
:class:`ZipFile` from multiple threads.

..

.. bpo: 38256
.. date: 2022-03-19-15-54-41
.. nonce: FoMbjE
.. section: Library

Fix :func:`binascii.crc32` when it is compiled to use zlib'c crc32 to work
properly on inputs 4+GiB in length instead of returning the wrong result.
The workaround prior to this was to always feed the function data in
increments smaller than 4GiB or to just call the zlib module function.

We also have :func:`binascii.crc32` release the GIL when computing on larger
inputs as :func:`zlib.crc32` and :mod:`hashlib` do.

This also boosts performance on Windows as it now uses the zlib crc32
implementation for :func:`binascii.crc32` for a 2-3x speedup.

That the stdlib has a crc32 API in two modules is a known historical oddity.
This moves us closer to a single implementation behind them.

..

.. bpo: 47066
.. date: 2022-03-19-14-12-23
.. nonce: we3YFx
.. section: Library

Global inline flags (e.g. ``(?i)``) can now only be used at the start of the
regular expressions.  Using them not at the start of expression was
deprecated since Python 3.6.

..

.. bpo: 39394
.. date: 2022-03-19-13-38-29
.. nonce: 7j6WL6
.. section: Library

A warning about inline flags not at the start of the regular expression now
contains the position of the flag.

..

.. bpo: 433030
.. date: 2022-03-19-08-42-57
.. nonce: UTwRX7
.. section: Library

Add support of atomic grouping (``(?>...)``) and possessive quantifiers
(``*+``, ``++``, ``?+``, ``{m,n}+``) in :mod:`regular expressions <re>`.

..

.. bpo: 47062
.. date: 2022-03-18-22-46-18
.. nonce: RNc99_
.. section: Library

Implement :class:`asyncio.Runner` context manager.

..

.. bpo: 46382
.. date: 2022-03-18-17-25-57
.. nonce: zQUJ66
.. section: Library

:func:`~dataclasses.dataclass` ``slots=True`` now correctly omits slots
already defined in base classes. Patch by Arie Bovenberg.

..

.. bpo: 47057
.. date: 2022-03-18-14-22-38
.. nonce: n-IHbt
.. section: Library

Use FASTCALL convention for ``FutureIter.throw()``

..

.. bpo: 47061
.. date: 2022-03-18-13-30-40
.. nonce: etLHK5
.. section: Library

Deprecate the various modules listed by :pep:`594`:

aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib,
nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu,
xdrlib

..

.. bpo: 34790
.. date: 2022-03-17-19-38-40
.. nonce: zQIiVJ
.. section: Library

Remove passing coroutine objects to :func:`asyncio.wait`.

..

.. bpo: 47039
.. date: 2022-03-17-01-54-13
.. nonce: 0Yxv0K
.. section: Library

Normalize ``repr()`` of asyncio future and task objects.

..

.. bpo: 2604
.. date: 2022-03-16-18-25-19
.. nonce: jeopdL
.. section: Library

Fix bug where doctests using globals would fail when run multiple times.

..

.. bpo: 45150
.. date: 2022-03-16-11-52-52
.. nonce: kYbIME
.. section: Library

Add :func:`hashlib.file_digest` helper for efficient hashing of file object.

..

.. bpo: 34861
.. date: 2022-03-16-08-49-12
.. nonce: p8ugVg
.. section: Library

Made cumtime the default sorting key for cProfile

..

.. bpo: 45997
.. date: 2022-03-15-18-32-12
.. nonce: 4n2aVU
.. section: Library

Fix :class:`asyncio.Semaphore` re-aquiring FIFO order.

..

.. bpo: 47022
.. date: 2022-03-15-09-29-52
.. nonce: uaEDcI
.. section: Library

The :mod:`asynchat`, :mod:`asyncore` and  :mod:`smtpd` modules have been
deprecated since at least Python 3.6. Their documentation and deprecation
warnings and have now been updated to note they will removed in Python 3.12
(:pep:`594`).

..

.. bpo: 43253
.. date: 2022-03-15-07-53-45
.. nonce: rjdLFj
.. section: Library

Fix a crash when closing transports where the underlying socket handle is
already invalid on the Proactor event loop.

..

.. bpo: 40280
.. date: 2022-03-14-09-26-42
.. nonce: 2-k8TV
.. section: Library

:func:`select.select` now passes ``NULL`` to ``select`` for each empty
fdset.

..

.. bpo: 47004
.. date: 2022-03-13-15-04-05
.. nonce: SyYpxd
.. section: Library

Apply bugfixes from importlib_metadata 4.11.3, including bugfix for
EntryPoint.extras, which was returning match objects and not the extras
strings.

..

.. bpo: 46998
.. date: 2022-03-13-08-52-58
.. nonce: cHh-9O
.. section: Library

Allow subclassing of :class:`typing.Any`. Patch by Shantanu Jain.

..

.. bpo: 46995
.. date: 2022-03-12-13-50-42
.. nonce: 2kdNDg
.. section: Library

Deprecate missing :meth:`asyncio.Task.set_name` for third-party task
implementations, schedule making it mandatory in Python 3.13.

..

.. bpo: 46994
.. date: 2022-03-12-12-34-13
.. nonce: d7hPdz
.. section: Library

Accept explicit contextvars.Context in :func:`asyncio.create_task` and
:meth:`asyncio.loop.create_task`.

..

.. bpo: 46981
.. date: 2022-03-12-11-30-42
.. nonce: ltWCxH
.. section: Library

``typing.get_args(typing.Tuple[()])`` now returns ``()`` instead of
``((),)``.

..

.. bpo: 46968
.. date: 2022-03-11-17-56-25
.. nonce: pPVvNo
.. section: Library

Add ``os.sysconf_names['SC_MINSIGSTKSZ']``.

..

.. bpo: 46985
.. date: 2022-03-11-13-34-16
.. nonce: BgoMr2
.. section: Library

Upgrade pip wheel bundled with ensurepip (pip 22.0.4)

..

.. bpo: 46968
.. date: 2022-03-10-14-51-11
.. nonce: ym2QxL
.. section: Library

:mod:`faulthandler`: On Linux 5.14 and newer, dynamically determine size of
signal handler stack size CPython allocates using
``getauxval(AT_MINSIGSTKSZ)``. This changes allows for Python extension's
request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids
Xeon processor to succeed, unblocking use of the ISA in frameworks.

..

.. bpo: 46917
.. date: 2022-03-10-14-47-16
.. nonce: s19zcy
.. section: Library

The :data:`math.nan` value is now always available. Patch by Victor Stinner.

..

.. bpo: 46955
.. date: 2022-03-08-22-41-59
.. nonce: IOoonN
.. section: Library

Expose :class:`asyncio.base_events.Server` as :class:`asyncio.Server`. Patch
by Stefan Zabka.

..

.. bpo: 23325
.. date: 2022-03-08-11-34-06
.. nonce: 3VQnfo
.. section: Library

The :mod:`signal` module no longer assumes that :const:`~signal.SIG_IGN` and
:const:`~signal.SIG_DFL` are small int singletons.

..

.. bpo: 46932
.. date: 2022-03-07-20-20-34
.. nonce: xbarAs
.. section: Library

Update bundled libexpat to 2.4.7

..

.. bpo: 46933
.. date: 2022-03-05-21-51-31
.. nonce: 6yzWtb
.. section: Library

The :mod:`pwd` module is now optional. :func:`os.path.expanduser` returns
the path when the :mod:`pwd` module is not available.

..

.. bpo: 40059
.. date: 2022-02-23-01-11-08
.. nonce: Iwc9UH
.. section: Library

:pep:`680`, the :mod:`tomllib` module. Adds support for parsing TOML.

..

.. bpo: 464471
.. date: 2022-02-21-11-41-23
.. nonce: fL06TV
.. section: Library

:func:`asyncio.timeout` and :func:`asyncio.timeout_at` context managers
added. Patch by Tin Tvrtković and Andrew Svetlov.

..

.. bpo: 46805
.. date: 2022-02-20-23-03-32
.. nonce: HZ8xWG
.. section: Library

Added raw datagram socket functions for asyncio:
:meth:`~asyncio.AbstractEventLoop.sock_sendto`,
:meth:`~asyncio.AbstractEventLoop.sock_recvfrom` and
:meth:`~asyncio.AbstractEventLoop.sock_recvfrom_into`.

..

.. bpo: 46644
.. date: 2022-02-05-22-14-44
.. nonce: P--1Cz
.. section: Library

No longer require valid typeforms to be callable. This allows
:data:`typing.Annotated` to wrap :data:`typing.ParamSpecArgs` and
:data:`dataclasses.InitVar`. Patch by Gregory Beauregard.

..

.. bpo: 46581
.. date: 2022-02-01-11-32-47
.. nonce: t7Zw65
.. section: Library

Brings :class:`ParamSpec` propagation for :class:`GenericAlias` in line with
:class:`Concatenate` (and others).

..

.. bpo: 45413
.. date: 2022-01-31-15-19-38
.. nonce: 1vaS0V
.. section: Library

Define *posix_venv* and *nt_venv* :ref:`sysconfig installation schemes
<installation_paths>` to be used for bootstrapping new virtual environments.
Add *venv* sysconfig installation scheme to get the appropriate one of the
above. The schemes are identical to the pre-existing *posix_prefix* and *nt*
install schemes. The :mod:`venv` module now uses the *venv* scheme to create
new virtual environments instead of hardcoding the paths depending only on
the platform. Downstream Python distributors customizing the *posix_prefix*
or *nt* install scheme in a way that is not compatible with the install
scheme used in virtual environments are encouraged not to customize the
*venv* schemes. When Python itself runs in a virtual environment,
:func:`sysconfig.get_default_scheme` and
:func:`sysconfig.get_preferred_scheme` with ``key="prefix"`` returns *venv*.

..

.. bpo: 43224
.. date: 2022-01-30-22-05-53
.. nonce: E-eT22
.. section: Library

Implement support for PEP 646 in typing.py.

..

.. bpo: 43224
.. date: 2022-01-30-20-32-40
.. nonce: zqrQsj
.. section: Library

Allow unpacking types.GenericAlias objects, e.g. ``*tuple[int, str]``.

..

.. bpo: 46557
.. date: 2022-01-28-01-23-25
.. nonce: XSbhyQ
.. section: Library

Warnings captured by the logging module are now logged without a format
string to prevent systems that group logs by the msg argument from grouping
captured warnings together.

..

.. bpo: 41370
.. date: 2022-01-27-11-54-16
.. nonce: gYxCPE
.. section: Library

:func:`typing.get_type_hints` now supports evaluating strings as forward
references in :ref:`PEP 585 generic aliases <types-genericalias>`.

..

.. bpo: 46607
.. date: 2022-01-26-18-30-34
.. nonce: xnhT4a
.. section: Library

Add :exc:`DeprecationWarning` to :class:`LegacyInterpolation`, deprecated in
the docstring since Python 3.2. Will be removed in Python 3.13. Use
:class:`BasicInterpolation` or :class:`ExtendedInterpolation` instead.

..

.. bpo: 26120
.. date: 2022-01-25-15-45-04
.. nonce: YzrBMO
.. section: Library

:mod:`pydoc` now excludes __future__ imports from the module's data items.

..

.. bpo: 46480
.. date: 2022-01-23-16-33-07
.. nonce: E4jHlh
.. section: Library

Add :func:`typing.assert_type`. Patch by Jelle Zijlstra.

..

.. bpo: 46421
.. date: 2022-01-18-01-29-38
.. nonce: 9LdmNr
.. section: Library

Fix a unittest issue where if the command was invoked as ``python -m
unittest`` and the filename(s) began with a dot (.), a ``ValueError`` is
returned.

..

.. bpo: 46245
.. date: 2022-01-03-20-12-14
.. nonce: 3w4RlA
.. section: Library

Add optional parameter *dir_fd* in :func:`shutil.rmtree`.

..

.. bpo: 22859
.. date: 2021-12-29-19-37-49
.. nonce: AixHW7
.. section: Library

:meth:`~unittest.TestProgram.usageExit` is marked deprecated, to be removed
in 3.13.

..

.. bpo: 46170
.. date: 2021-12-26-14-45-51
.. nonce: AQ7kSM
.. section: Library

Improve the error message when you try to subclass an instance of
:class:`typing.NewType`.

..

.. bpo: 40296
.. date: 2021-12-25-14-13-14
.. nonce: p0YVGB
.. section: Library

Fix supporting generic aliases in :mod:`pydoc`.

..

.. bpo: 20392
.. date: 2021-12-22-12-02-27
.. nonce: CLAFIp
.. section: Library

Fix inconsistency with uppercase file extensions in
:meth:`MimeTypes.guess_type`. Patch by Kumar Aditya.

..

.. bpo: 46030
.. date: 2021-12-10-07-07-47
.. nonce: UN349J
.. section: Library

Add ``LOCAL_CREDS``, ``LOCAL_CREDS_PERSISTENT`` and ``SCM_CREDS2`` FreeBSD
constants to the socket module.

..

.. bpo: 44439
.. date: 2021-11-08-20-27-41
.. nonce: I_8qro
.. section: Library

Fix ``.write()`` method of a member file in ``ZipFile``, when the input data
is an object that supports the buffer protocol, the file length may be
wrong.

..

.. bpo: 45171
.. date: 2021-09-11-16-06-54
.. nonce: ec597j
.. section: Library

Fix handling of the ``stacklevel`` argument to logging functions in the
:mod:`logging` module so that it is consistent across all logging functions
and, as advertised, similar to the ``stacklevel`` argument used in
:meth:`~warnings.warn`.

..

.. bpo: 24959
.. date: 2021-09-06-15-46-53
.. nonce: UVFgiO
.. section: Library

Fix bug where :mod:`unittest` sometimes drops frames from tracebacks of
exceptions raised in tests.

..

.. bpo: 44859
.. date: 2021-08-10-00-05-53
.. nonce: 9e9_3V
.. section: Library

Raise more accurate and :pep:`249` compatible exceptions in :mod:`sqlite3`.

* Raise :exc:`~sqlite3.InterfaceError` instead of
  :exc:`~sqlite3.ProgrammingError` for ``SQLITE_MISUSE`` errors.
* Don't overwrite :exc:`BufferError` with :exc:`ValueError` when conversion to
  BLOB fails.
* Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`~sqlite3.Warning` if
  user tries to :meth:`~sqlite3.Cursor.execute()` more than one SQL statement.
* Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`ValueError` if an SQL
  query contains null characters.

..

.. bpo: 44493
.. date: 2021-07-26-10-46-49
.. nonce: xp3CRH
.. section: Library

Add missing terminated NUL in sockaddr_un's length

This was potentially observable when using non-abstract AF_UNIX datagram
sockets to processes written in another programming language.

..

.. bpo: 41930
.. date: 2021-06-17-00-02-58
.. nonce: JS6fsd
.. section: Library

Add :meth:`~sqlite3.Connection.serialize` and
:meth:`~sqlite3.Connection.deserialize` support to :mod:`sqlite3`. Patch by
Erlend E. Aasland.

..

.. bpo: 33178
.. date: 2021-04-20-16-48-07
.. nonce: kSnWwb
.. section: Library

Added :class:`ctypes.BigEndianUnion` and :class:`ctypes.LittleEndianUnion`
classes, as originally documented in the library docs but not yet
implemented.

..

.. bpo: 43352
.. date: 2021-03-31-15-22-45
.. nonce: nSjMuE
.. section: Library

Add an Barrier object in synchronization primitives of *asyncio* Lib in
order to be consistant with Barrier from *threading* and *multiprocessing*
libs*

..

.. bpo: 35859
.. date: 2019-03-14-09-08-25
.. nonce: 8lFdLe
.. section: Library

:mod:`re` module, fix a few bugs about capturing group. In rare cases,
capturing group gets an incorrect string. Patch by Ma Lin.

..

.. bpo: 45099
.. date: 2022-03-29-13-25-49
.. nonce: dagdhx
.. section: Documentation

Document internal :mod:`asyncio` API.

..

.. bpo: 47126
.. date: 2022-03-26-12-20-16
.. nonce: p6_Ovm
.. section: Documentation

Update PEP URLs to :pep:`676`'s new canonical form.

..

.. bpo: 47040
.. date: 2022-03-17-13-35-28
.. nonce: 4Dn48U
.. section: Documentation

Clarified the old Python versions compatiblity note of
:func:`binascii.crc32` / :func:`zlib.adler32` / :func:`zlib.crc32`
functions.

..

.. bpo: 46033
.. date: 2022-01-03-18-50-39
.. nonce: 7WeF0f
.. section: Documentation

Clarify ``for`` statement execution in its doc.

..

.. bpo: 45790
.. date: 2021-11-12-11-03-55
.. nonce: 6yuhe8
.. section: Documentation

Adjust inaccurate phrasing in :doc:`../extending/newtypes_tutorial` about
the ``ob_base`` field and the macros used to access its contents.

..

.. bpo: 42340
.. date: 2020-11-12-21-26-31
.. nonce: apumUL
.. section: Documentation

Document that in some circumstances :exc:`KeyboardInterrupt` may cause the
code to enter an inconsistent state. Provided a sample workaround to avoid
it if needed.

..

.. bpo: 41233
.. date: 2020-07-07-22-54-51
.. nonce: lyUJ8L
.. section: Documentation

Link the errnos referenced in ``Doc/library/exceptions.rst`` to their
respective section in ``Doc/library/errno.rst``, and vice versa. Previously
this was only done for EINTR and InterruptedError. Patch by Yan "yyyyyyyan"
Orestes.

..

.. bpo: 47205
.. date: 2022-04-03-14-38-21
.. nonce: hbbTnh
.. section: Tests

Skip test for :func:`~os.sched_getaffinity` and
:func:`~os.sched_setaffinity` error case on FreeBSD.

..

.. bpo: 46126
.. date: 2022-03-26-11-41-19
.. nonce: q14Ioy
.. section: Tests

Restore 'descriptions' when running tests internally.

..

.. bpo: 47104
.. date: 2022-03-23-22-45-51
.. nonce: _esUq8
.. section: Tests

Rewrite :func:`asyncio.to_thread` tests to use
:class:`unittest.IsolatedAsyncioTestCase`.

..

.. bpo: 40280
.. date: 2022-03-19-10-25-04
.. nonce: wBRSel
.. section: Tests

The test suite is now passing on the Emscripten platform. All fork, socket,
and subprocess-based tests are skipped.

..

.. bpo: 47037
.. date: 2022-03-16-21-29-30
.. nonce: xcrLpJ
.. section: Tests

Skip ``strftime("%4Y")`` feature test on Windows. It can cause an assertion
error in debug builds.

..

.. bpo: 46587
.. date: 2022-03-14-17-10-35
.. nonce: ASDsJX
.. section: Tests

Skip tests if platform's ``strftime`` does not support non-portable glibc
extensions.

..

.. bpo: 47015
.. date: 2022-03-13-23-43-40
.. nonce: FjmCsz
.. section: Tests

A test case for :func:`os.sendfile` is converted from deprecated
:mod:`asyncore` (see :pep:`594`) to :mod:`asyncio`. Patch by Oleg Iarygin.

..

.. bpo: 40280
.. date: 2022-04-02-17-52-38
.. nonce: U8Dd0H
.. section: Build

Add configure option :option:`--enable-wasm-dynamic-linking` to enable
``dlopen`` and MAIN_MODULE / SIDE_MODULE on ``wasm32-emscripten``.

..

.. bpo: 46023
.. date: 2022-04-01-16-12-53
.. nonce: 1Z1OcC
.. section: Build

``makesetup`` now detects and skips all duplicated module definitions. The
first entry wins.

..

.. bpo: 40280
.. date: 2022-03-24-12-12-35
.. nonce: eAQWrM
.. section: Build

Add SOABI ``wasm32-emscripten`` for Emscripten and ``wasm32-wasi`` for WASI
on 32bit WASM as well as ``wasm64`` counter parts.

..

.. bpo: 47032
.. date: 2022-03-16-00-37-40
.. nonce: tsS9KE
.. section: Build

Ensure Windows install builds fail correctly with a non-zero exit code when
part of the build fails.

..

.. bpo: 47024
.. date: 2022-03-15-09-28-55
.. nonce: t7-dcu
.. section: Build

Update OpenSSL to 1.1.1n for macOS installers and all Windows builds.

..

.. bpo: 46996
.. date: 2022-03-12-18-09-31
.. nonce: SygzVz
.. section: Build

The :mod:`tkinter` package now requires Tcl/Tk version 8.5.12 or newer.

..

.. bpo: 46973
.. date: 2022-03-10-14-30-39
.. nonce: _LEvnc
.. section: Build

Add ``regen-configure`` make target to regenerate configure script with
Christian's container image ``quay.io/tiran/cpython_autoconf:269``.

..

.. bpo: 46917
.. date: 2022-03-10-09-37-05
.. nonce: fry4aK
.. section: Build

Building Python now requires support of IEEE 754 floating point numbers.
Patch by Victor Stinner.

..

.. bpo: 45774
.. date: 2022-03-04-21-24-02
.. nonce: 9AhC0r
.. section: Build

``configure`` now verifies that all SQLite C APIs needed for the
:mod:`sqlite3` extension module are found.

..

.. bpo: 47194
.. date: 2022-04-01-14-57-40
.. nonce: IB0XL4
.. section: Windows

Update ``zlib`` to v1.2.12 to resolve CVE-2018-25032.

..

.. bpo: 47171
.. date: 2022-03-30-19-55-00
.. nonce: MbqCWn
.. section: Windows

Enables installing the :file:`py.exe` launcher on Windows ARM64.

..

.. bpo: 46566
.. date: 2022-03-23-12-51-46
.. nonce: 4x4a7e
.. section: Windows

Upgraded :ref:`launcher` to support a new ``-V:company/tag`` argument for
full :pep:`514` support and to detect ARM64 installs. The ``-64`` suffix on
arguments is deprecated, but still selects any non-32-bit install. Setting
:envvar:`PYLAUNCHER_ALLOW_INSTALL` and specifying a version that is not
installed will attempt to install the requested version from the Microsoft
Store.

..

.. bpo: 47086
.. date: 2022-03-21-20-45-01
.. nonce: bIuKlF
.. section: Windows

The installer for Windows now includes documentation as loose HTML files
rather than a single compiled :file:`.chm` file.

..

.. bpo: 46907
.. date: 2022-03-13-11-18-41
.. nonce: YLzxBM
.. section: Windows

Update Windows installer to use SQLite 3.38.1.

..

.. bpo: 44549
.. date: 2022-03-07-17-46-40
.. nonce: SPrGS9
.. section: Windows

Update bzip2 to 1.0.8 in Windows builds to mitigate CVE-2016-3189 and
CVE-2019-12900

..

.. bpo: 46948
.. date: 2022-03-07-16-34-11
.. nonce: Ufd4tG
.. section: Windows

Prevent CVE-2022-26488 by ensuring the Add to PATH option in the Windows
installer uses the correct path when being repaired.

..

.. bpo: 46890
.. date: 2022-03-17-09-55-02
.. nonce: GX-3OO
.. section: macOS

Fix a regression in the setting of ``sys._base_executable`` in framework
builds, and thereby fix a regression in :mod:`venv` virtual environments
with such builds.

..

.. bpo: 46907
.. date: 2022-03-13-11-11-31
.. nonce: Ql0z1E
.. section: macOS

Update macOS installer to SQLite 3.38.1.

..

.. bpo: 40280
.. date: 2022-04-03-11-47-45
.. nonce: Q_IJik
.. section: Tools/Demos

Replace Emscripten's limited shell with Katie Bell's browser-ui REPL from
python-wasm project.

..

.. bpo: 40421
.. date: 2022-03-25-13-40-46
.. nonce: wJREl2
.. section: C API

Add ``PyFrame_GetBuiltins``, ``PyFrame_GetGenerator`` and
``PyFrame_GetGlobals`` C-API functions to access frame object attributes
safely from C code.

..

.. bpo: 46850
.. date: 2022-03-22-16-59-34
.. nonce: lmEKLy
.. section: C API

Move the private ``_PyFrameEvalFunction`` type, and private
``_PyInterpreterState_GetEvalFrameFunc()`` and
``_PyInterpreterState_SetEvalFrameFunc()`` functions to the internal C API.
The ``_PyFrameEvalFunction`` callback function type now uses the
``_PyInterpreterFrame`` type which is part of the internal C API. Patch by
Victor Stinner.

..

.. bpo: 46850
.. date: 2022-03-22-16-48-02
.. nonce: 7M5dO7
.. section: C API

Move the private undocumented ``_PyEval_EvalFrameDefault()`` function to the
internal C API. The function now uses the ``_PyInterpreterFrame`` type which
is part of the internal C API. Patch by Victor Stinner.

..

.. bpo: 46850
.. date: 2022-03-21-02-26-27
.. nonce: hU3c-O
.. section: C API

Remove the private undocumented function ``_PyEval_CallTracing()`` from the
C API. Call the public :func:`sys.call_tracing` function instead. Patch by
Victor Stinner.

..

.. bpo: 46850
.. date: 2022-03-21-01-30-14
.. nonce: Tfxde5
.. section: C API

Remove the private undocumented function
``_PyEval_GetCoroutineOriginTrackingDepth()`` from the C API. Call the
public :func:`sys.get_coroutine_origin_tracking_depth` function instead.
Patch by Victor Stinner.

..

.. bpo: 46850
.. date: 2022-03-21-00-41-29
.. nonce: rOt771
.. section: C API

Remove the following private undocumented functions from the C API:

* ``_PyEval_GetAsyncGenFirstiter()``
* ``_PyEval_GetAsyncGenFinalizer()``
* ``_PyEval_SetAsyncGenFirstiter()``
* ``_PyEval_SetAsyncGenFinalizer()``

Call the public :func:`sys.get_asyncgen_hooks` and
:func:`sys.set_asyncgen_hooks` functions instead. Patch by Victor Stinner.

..

.. bpo: 46987
.. date: 2022-03-12-18-37-06
.. nonce: LWcwyN
.. section: C API

Remove private functions ``_PySys_GetObjectId()`` and
``_PySys_SetObjectId()``. Patch by Donghee Na.

..

.. bpo: 46906
.. date: 2022-03-03-11-12-33
.. nonce: -olyBI
.. section: C API

Add new functions to pack and unpack C double (serialize and deserialize):
:c:func:`PyFloat_Pack2`, :c:func:`PyFloat_Pack4`, :c:func:`PyFloat_Pack8`,
:c:func:`PyFloat_Unpack2`, :c:func:`PyFloat_Unpack4` and
:c:func:`PyFloat_Unpack8`. Patch by Victor Stinner.
