.. bpo: 46852
.. date: 2022-02-25-02-01-42
.. nonce: _3zg8D
.. release date: 2022-03-16
.. section: Core and Builtins

Rename the private undocumented ``float.__set_format__()`` method to
``float.__setformat__()`` to fix a typo introduced in Python 3.7. The method
is only used by test_float. Patch by Victor Stinner.

..

.. bpo: 46794
.. date: 2022-02-22-12-07-53
.. nonce: 6WvJ9o
.. section: Core and Builtins

Bump up the libexpat version into 2.4.6

..

.. bpo: 46762
.. date: 2022-02-15-20-26-46
.. nonce: 1H7vab
.. section: Core and Builtins

Fix an assert failure in debug builds when a '<', '>', or '=' is the last
character in an f-string that's missing a closing right brace.

..

.. bpo: 46732
.. date: 2022-02-12-11-16-40
.. nonce: 3Z_qxd
.. section: Core and Builtins

Correct the docstring for the :meth:`__bool__` method. Patch by Jelle
Zijlstra.

..

.. bpo: 40479
.. date: 2022-02-06-23-08-30
.. nonce: zED3Zu
.. section: Core and Builtins

Add a missing call to ``va_end()`` in ``Modules/_hashopenssl.c``.

..

.. bpo: 46615
.. date: 2022-02-04-04-33-18
.. nonce: puArY9
.. section: Core and Builtins

When iterating over sets internally in ``setobject.c``, acquire strong
references to the resulting items from the set.  This prevents crashes in
corner-cases of various set operations where the set gets mutated.

..

.. 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: 46503
.. date: 2022-01-24-21-24-41
.. nonce: 4UrPsE
.. section: Core and Builtins

Fix an assert when parsing some invalid \N escape sequences in f-strings.

..

.. bpo: 46417
.. date: 2022-01-22-14-39-23
.. nonce: 3U5SfN
.. section: Core and Builtins

Fix a race condition on setting a type ``__bases__`` attribute: the internal
function ``add_subclass()`` now gets the ``PyTypeObject.tp_subclasses``
member after calling :c:func:`PyWeakref_NewRef` which can trigger a garbage
collection which can indirectly modify ``PyTypeObject.tp_subclasses``. Patch
by Victor Stinner.

..

.. bpo: 46383
.. date: 2022-01-14-20-55-34
.. nonce: v8MTl4
.. section: Core and Builtins

Fix invalid signature of ``_zoneinfo``'s ``module_free`` function to resolve
a crash on wasm32-emscripten platform.

..

.. 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: 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: 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: 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: 46932
.. date: 2022-03-07-20-20-34
.. nonce: xbarAs
.. section: Library

Update bundled libexpat to 2.4.7

..

.. bpo: 25707
.. date: 2022-03-05-09-43-53
.. nonce: gTlclP
.. section: Library

Fixed a file leak in :func:`xml.etree.ElementTree.iterparse` when the
iterator is not exhausted. Patch by Jacob Walls.

..

.. bpo: 44886
.. date: 2022-02-23-00-55-59
.. nonce: I40Mbr
.. section: Library

Inherit asyncio proactor datagram transport from
:class:`asyncio.DatagramTransport`.

..

.. bpo: 46827
.. date: 2022-02-22-15-08-30
.. nonce: hvj38S
.. section: Library

Support UDP sockets in  :meth:`asyncio.loop.sock_connect` for selector-based
event loops.  Patch by Thomas Grainger.

..

.. bpo: 46811
.. date: 2022-02-20-21-03-31
.. nonce: 8BxgdQ
.. section: Library

Make test suite support Expat >=2.4.5

..

.. bpo: 46252
.. date: 2022-02-20-12-59-46
.. nonce: KG1SqA
.. section: Library

Raise :exc:`TypeError` if :class:`ssl.SSLSocket` is passed to
transport-based APIs.

..

.. bpo: 46784
.. date: 2022-02-18-22-10-30
.. nonce: SVOQJx
.. section: Library

Fix libexpat symbols collisions with user dynamically loaded or statically
linked libexpat in embedded Python.

..

.. bpo: 39327
.. date: 2022-02-17-13-10-50
.. nonce: ytIT7Z
.. section: Library

:func:`shutil.rmtree` can now work with VirtualBox shared  folders when
running from the guest operating-system.

..

.. bpo: 46756
.. date: 2022-02-15-11-57-53
.. nonce: AigSPi
.. section: Library

Fix a bug in :meth:`urllib.request.HTTPPasswordMgr.find_user_password` and
:meth:`urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated` which
allowed to bypass authorization. For example, access to URI
``example.org/foobar`` was allowed if the user was authorized for URI
``example.org/foo``.

..

.. bpo: 45863
.. date: 2022-02-09-00-53-23
.. nonce: zqQXVv
.. section: Library

When the :mod:`tarfile` module creates a pax format archive, it will put an
integer representation of timestamps in the ustar header (if possible) for
the benefit of older unarchivers, in addition to the existing full-precision
timestamps in the pax extended header.

..

.. bpo: 46672
.. date: 2022-02-07-13-15-16
.. nonce: 4swIjx
.. section: Library

Fix ``NameError`` in :func:`asyncio.gather` when initial type check fails.

..

.. bpo: 45948
.. date: 2022-02-05-18-22-05
.. nonce: w4mCnE
.. section: Library

Fixed a discrepancy in the C implementation of the
:mod:`xml.etree.ElementTree` module. Now, instantiating an
:class:`xml.etree.ElementTree.XMLParser` with a ``target=None`` keyword
provides a default :class:`xml.etree.ElementTree.TreeBuilder` target as the
Python implementation does.

..

.. bpo: 46591
.. date: 2022-01-31-15-40-38
.. nonce: prBD1M
.. section: Library

Make the IDLE doc URL on the About IDLE dialog clickable.

..

.. bpo: 46400
.. date: 2022-01-30-15-16-12
.. nonce: vweUiO
.. section: Library

expat: Update libexpat from 2.4.1 to 2.4.4

..

.. bpo: 46487
.. date: 2022-01-27-12-24-38
.. nonce: UDkN2z
.. section: Library

Add the ``get_write_buffer_limits`` method to
:class:`asyncio.transports.WriteTransport` and to the SSL transport.

..

.. bpo: 46539
.. date: 2022-01-26-20-36-30
.. nonce: 23iW1d
.. section: Library

In :func:`typing.get_type_hints`, support evaluating stringified
``ClassVar`` and ``Final`` annotations inside ``Annotated``. Patch by
Gregory Beauregard.

..

.. bpo: 46491
.. date: 2022-01-24-23-55-30
.. nonce: jmIKHo
.. section: Library

Allow :data:`typing.Annotated` to wrap :data:`typing.Final` and
:data:`typing.ClassVar`. Patch by Gregory Beauregard.

..

.. bpo: 46436
.. date: 2022-01-23-19-37-00
.. nonce: Biz1p9
.. section: Library

Fix command-line option ``-d``/``--directory`` in module :mod:`http.server`
which is ignored when combined with command-line option ``--cgi``. Patch by
Géry Ogam.

..

.. bpo: 41403
.. date: 2022-01-23-18-04-45
.. nonce: SgoHqV
.. section: Library

Make :meth:`mock.patch` raise a :exc:`TypeError` with a relevant error
message on invalid arg. Previously it allowed a cryptic
:exc:`AttributeError` to escape.

..

.. bpo: 46474
.. date: 2022-01-22-14-49-10
.. nonce: eKQhvx
.. section: Library

In ``importlib.metadata.EntryPoint.pattern``, avoid potential REDoS by
limiting ambiguity in consecutive whitespace.

..

.. bpo: 46469
.. date: 2022-01-22-05-05-08
.. nonce: plUab5
.. section: Library

:mod:`asyncio` generic classes now return :class:`types.GenericAlias` in
``__class_getitem__`` instead of the same class.

..

.. bpo: 46434
.. date: 2022-01-20-10-35-10
.. nonce: geS-aP
.. section: Library

:mod:`pdb` now gracefully handles ``help`` when :attr:`__doc__` is missing,
for example when run with pregenerated optimized ``.pyc`` files.

..

.. bpo: 46333
.. date: 2022-01-11-15-54-15
.. nonce: B1faiF
.. section: Library

The :meth:`__eq__` and :meth:`__hash__` methods of
:class:`typing.ForwardRef` now honor the ``module`` parameter of
:class:`typing.ForwardRef`. Forward references from different modules are
now differentiated.

..

.. bpo: 43118
.. date: 2021-12-29-14-42-09
.. nonce: BoVi_5
.. section: Library

Fix a bug in :func:`inspect.signature` that was causing it to fail on some
subclasses of classes with a ``__text_signature__`` referencing module
globals. Patch by Weipeng Hong.

..

.. bpo: 21987
.. date: 2021-12-28-11-55-10
.. nonce: avBK-p
.. section: Library

Fix an issue with :meth:`tarfile.TarFile.getmember` getting a directory name
with a trailing slash.

..

.. 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: 46080
.. date: 2021-12-15-06-29-00
.. nonce: AuQpLt
.. section: Library

Fix exception in argparse help text generation if a
:class:`argparse.BooleanOptionalAction` argument's default is
``argparse.SUPPRESS`` and it has ``help`` specified.  Patch by Felix
Fontein.

..

.. 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: 45703
.. date: 2021-11-03-13-41-49
.. nonce: 35AagL
.. section: Library

When a namespace package is imported before another module from the same
namespace is created/installed in a different :data:`sys.path` location
while the program is running, calling the
:func:`importlib.invalidate_caches` function will now also guarantee the new
module is noticed.

..

.. 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: 46463
.. date: 2022-01-21-21-33-48
.. nonce: fBbdTG
.. section: Documentation

Fixes :file:`escape4chm.py` script used when building the CHM documentation
file

..

.. bpo: 46913
.. date: 2022-03-03-17-36-24
.. nonce: vxETIE
.. section: Tests

Fix test_faulthandler.test_sigfpe() if Python is built with undefined
behavior sanitizer (UBSAN): disable UBSAN on the faulthandler_sigfpe()
function. Patch by Victor Stinner.

..

.. bpo: 46708
.. date: 2022-02-10-14-33-47
.. nonce: avLfCb
.. section: Tests

Prevent default asyncio event loop policy modification warning after
``test_asyncio`` execution.

..

.. bpo: 46616
.. date: 2022-02-02-18-14-38
.. nonce: URvBtE
.. section: Tests

Ensures ``test_importlib.test_windows`` cleans up registry keys after
completion.

..

.. bpo: 44359
.. date: 2022-02-02-02-24-04
.. nonce: kPPSmN
.. section: Tests

test_ftplib now silently ignores socket errors to prevent logging unhandled
threading exceptions. Patch by Victor Stinner.

..

.. bpo: 46542
.. date: 2022-01-31-17-34-13
.. nonce: RTMm1T
.. section: Tests

Fix a Python crash in test_lib2to3 when using Python built in debug mode:
limit the recursion limit. Patch by Victor Stinner.

..

.. bpo: 46576
.. date: 2022-01-29-12-37-53
.. nonce: -prRaV
.. section: Tests

test_peg_generator now disables compiler optimization when testing
compilation of its own C extensions to significantly speed up the testing on
non-debug builds of CPython.

..

.. bpo: 46542
.. date: 2022-01-28-01-17-10
.. nonce: xRLTdj
.. section: Tests

Fix ``test_json`` tests checking for :exc:`RecursionError`: modify these
tests to use ``support.infinite_recursion()``. Patch by Victor Stinner.

..

.. bpo: 13886
.. date: 2022-01-17-13-10-04
.. nonce: 5mZH4b
.. section: Tests

Skip test_builtin PTY tests on non-ASCII characters if the readline module
is loaded. The readline module changes input() behavior, but test_builtin is
not intented to test the readline module. Patch by Victor Stinner.

..

.. 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: 38472
.. date: 2022-01-26-22-59-12
.. nonce: RxfLho
.. section: Build

Fix GCC detection in setup.py when cross-compiling. The C compiler is now
run with LC_ALL=C. Previously, the detection failed with a German locale.

..

.. bpo: 46513
.. date: 2022-01-25-12-32-37
.. nonce: mPm9B4
.. section: Build

:program:`configure` no longer uses ``AC_C_CHAR_UNSIGNED`` macro and
``pyconfig.h`` no longer defines reserved symbol ``__CHAR_UNSIGNED__``.

..

.. bpo: 45925
.. date: 2022-01-08-12-43-31
.. nonce: 38F3NO
.. section: Build

Update Windows installer to use SQLite 3.37.2.

..

.. 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: 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: 46638
.. date: 2022-02-04-18-02-33
.. nonce: mSJOSX
.. section: Windows

Ensures registry virtualization is consistently disabled. For 3.10 and
earlier, it remains enabled (some registry writes are protected), while for
3.11 and later it is disabled (registry modifications affect all
applications).

..

.. bpo: 45925
.. date: 2022-01-26-12-04-09
.. nonce: yBSiYO
.. section: macOS

Update macOS installer to SQLite 3.37.2.

..

.. bpo: 46630
.. date: 2022-02-03-15-47-53
.. nonce: tREOjo
.. section: IDLE

Make query dialogs on Windows start with a cursor in the entry box.

..

.. bpo: 45296
.. date: 2022-01-26-19-33-55
.. nonce: LzZKdU
.. section: IDLE

Clarify close, quit, and exit in IDLE.  In the File menu, 'Close' and 'Exit'
are now 'Close Window' (the current one) and 'Exit' is now 'Exit IDLE' (by
closing all windows).  In Shell, 'quit()' and 'exit()' mean 'close Shell'.
If there are no other windows, this also exits IDLE.

..

.. bpo: 45447
.. date: 2021-10-14-16-55-03
.. nonce: FhiH5P
.. section: IDLE

Apply IDLE syntax highlighting to `.pyi` files. Patch by Alex Waygood and
Terry Jan Reedy.
