.. bpo: 46940
.. date: 2022-03-06-20-16-13
.. nonce: _X47Hx
.. release date: 2022-03-16
.. section: Core and Builtins

Avoid overriding :exc:`AttributeError` metadata information for nested
attribute access calls. Patch by Pablo Galindo.

..

.. bpo: 46852
.. date: 2022-02-25-02-01-42
.. nonce: _3zg8D
.. 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: 46820
.. date: 2022-02-21-21-55-23
.. nonce: 4RfUZh
.. section: Core and Builtins

Fix parsing a numeric literal immediately (without spaces) followed by "not
in" keywords, like in ``1not in x``. Now the parser only emits a warning,
not a syntax error.

..

.. 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: 46724
.. date: 2022-02-14-14-44-06
.. nonce: jym_K6
.. section: Core and Builtins

Make sure that all backwards jumps use the ``JUMP_ABSOLUTE`` instruction,
rather than ``JUMP_FORWARD`` with an argument of ``(2**32)+offset``.

..

.. 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: 46707
.. date: 2022-02-10-03-13-18
.. nonce: xeSEh0
.. section: Core and Builtins

Avoid potential exponential backtracking when producing some syntax errors
involving lots of brackets. Patch by Pablo Galindo.

..

.. 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: 45773
.. date: 2022-02-01-14-30-56
.. nonce: Up77LD
.. section: Core and Builtins

Remove two invalid "peephole" optimizations from the bytecode compiler.

..

.. 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: 46070
.. date: 2022-01-13-17-58-56
.. nonce: q8IGth
.. section: Core and Builtins

:c:func:`Py_EndInterpreter` now explicitly untracks all objects currently
tracked by the GC. Previously, if an object was used later by another
interpreter, calling :c:func:`PyObject_GC_UnTrack` on the object crashed if
the previous or the next object of the :c:type:`PyGC_Head` structure became
a dangling pointer. Patch by Victor Stinner.

..

.. bpo: 46339
.. date: 2022-01-11-11-50-19
.. nonce: OVumDZ
.. section: Core and Builtins

Fix a crash in the parser when retrieving the error text for multi-line
f-strings expressions that do not start in the first line of the string.
Patch by Pablo Galindo

..

.. bpo: 46240
.. date: 2022-01-03-23-31-25
.. nonce: 8lGjeK
.. section: Core and Builtins

Correct the error message for unclosed parentheses when the tokenizer
doesn't reach the end of the source when the error is reported. Patch by
Pablo Galindo

..

.. bpo: 46091
.. date: 2021-12-16-00-24-00
.. nonce: rJ_e_e
.. section: Core and Builtins

Correctly calculate indentation levels for lines with whitespace character
that are ended by line continuation characters. Patch by Pablo Galindo

..

.. 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: 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: 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: 46643
.. date: 2022-02-09-22-40-11
.. nonce: aBlIx1
.. section: Library

In :func:`typing.get_type_hints`, support evaluating stringified
``ParamSpecArgs`` and ``ParamSpecKwargs`` annotations. Patch by Gregory
Beauregard.

..

.. 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: 46676
.. date: 2022-02-07-19-20-42
.. nonce: 3Aws1o
.. section: Library

Make :data:`typing.ParamSpec` args and kwargs equal to themselves. Patch by
Gregory Beauregard.

..

.. 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: 46655
.. date: 2022-02-06-08-54-03
.. nonce: DiLzYv
.. section: Library

In :func:`typing.get_type_hints`, support evaluating bare stringified
``TypeAlias`` annotations. Patch by Gregory Beauregard.

..

.. 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: 46521
.. date: 2022-02-01-19-34-28
.. nonce: IMUIrs
.. section: Library

Fix a bug in the :mod:`codeop` module that was incorrectly identifying
invalid code involving string quotes as valid code.

..

.. 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: 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: 45173
.. date: 2022-01-27-11-16-59
.. nonce: wreRF2
.. section: Library

Note the configparser deprecations will be removed in Python 3.12.

..

.. 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: 46246
.. date: 2022-01-07-13-27-53
.. nonce: CTLx32
.. section: Library

Add missing ``__slots__`` to ``importlib.metadata.DeprecatedList``. Patch by
Arie Bovenberg.

..

.. bpo: 46266
.. date: 2022-01-05-12-48-18
.. nonce: ACQCgX
.. section: Library

Improve day constants in :mod:`calendar`.

Now all constants (`MONDAY` ... `SUNDAY`) are documented, tested, and added
to ``__all__``.

..

.. bpo: 46232
.. date: 2022-01-03-09-46-44
.. nonce: s0KlyI
.. section: Library

The :mod:`ssl` module now handles certificates with bit strings in DN
correctly.

..

.. 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: 26552
.. date: 2021-12-29-13-42-55
.. nonce: 1BqeAn
.. section: Library

Fixed case where failing :func:`asyncio.ensure_future` did not close the
coroutine. Patch by Kumar Aditya.

..

.. 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: 44791
.. date: 2021-07-31-23-18-50
.. nonce: 4jFdpO
.. section: Library

Fix substitution of :class:`~typing.ParamSpec` in
:data:`~typing.Concatenate` with different parameter expressions.
Substitution with a list of types returns now a tuple of types. Substitution
with ``Concatenate`` returns now a ``Concatenate`` with concatenated lists
of arguments.

..

.. bpo: 14156
.. date: 2019-05-07-14-25-45
.. nonce: 0FaHXE
.. section: Library

argparse.FileType now supports an argument of '-' in binary mode, returning
the .buffer attribute of sys.stdin/sys.stdout as appropriate. Modes
including 'x' and 'a' are treated equivalently to 'w' when argument is '-'.
Patch contributed by Josh Rosenberg

..

.. 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: 46678
.. date: 2022-02-07-12-40-45
.. nonce: zfOrgL
.. section: Tests

The function ``make_legacy_pyc`` in ``Lib/test/support/import_helper.py`` no
longer fails when ``PYTHONPYCACHEPREFIX`` is set to a directory on a
different device from where tempfiles are stored.

..

.. 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: 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: 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: 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.

..

.. bpo: 46433
.. date: 2022-01-19-16-51-54
.. nonce: Er9ApS
.. section: C API

The internal function _PyType_GetModuleByDef now correctly handles
inheritance patterns involving static types.

..

.. bpo: 14916
.. date: 2020-09-11-02-50-41
.. nonce: QN1Y03
.. section: C API

Fixed bug in the tokenizer that prevented ``PyRun_InteractiveOne`` from
parsing from the provided FD.
