cpython/Misc/NEWS.d/3.13.0b1.rst

1672 lines
38 KiB
ReStructuredText

.. date: 2024-03-27-13-50-02
.. gh-issue: 116741
.. nonce: ZoGryG
.. release date: 2024-05-08
.. section: Security
Update bundled libexpat to 2.6.2
..
.. date: 2024-03-25-21-25-28
.. gh-issue: 117233
.. nonce: E4CyI_
.. section: Security
Detect BLAKE2, SHA3, Shake, & truncated SHA512 support in the OpenSSL-ish
libcrypto library at build time. This allows :mod:`hashlib` to be used with
libraries that do not to support every algorithm that upstream OpenSSL does.
..
.. date: 2024-05-07-01-39-24
.. gh-issue: 118414
.. nonce: G5GG7l
.. section: Core and Builtins
Add instrumented opcodes to YIELD_VALUE assertion for tracing cases.
..
.. date: 2024-05-06-10-57-54
.. gh-issue: 117953
.. nonce: DqCzIs
.. section: Core and Builtins
When a builtin or extension module is imported for the first time, while a
subinterpreter is active, the module's init function is now run by the main
interpreter first before import continues in the subinterpreter.
Consequently, single-phase init modules now fail in an isolated
subinterpreter without the init function running under that interpreter,
whereas before it would run under the subinterpreter *before* failing,
potentially leaving behind global state and callbacks and otherwise leaving
the module in an inconsistent state.
..
.. date: 2024-05-05-12-04-02
.. gh-issue: 117549
.. nonce: kITawD
.. section: Core and Builtins
Don't use designated initializer syntax in inline functions in internal
headers. They cause problems for C++ or MSVC users who aren't yet using the
latest C++ standard (C++20). While internal, pycore_backoff.h, is included
(indirectly, via pycore_code.h) by some key 3rd party software that does so
for speed.
..
.. date: 2024-05-03-18-01-26
.. gh-issue: 95382
.. nonce: 73FSEv
.. section: Core and Builtins
Improve performance of :func:`json.dumps` and :func:`json.dump` when using
the argument *indent*. Depending on the data the encoding using
:func:`json.dumps` with *indent* can be up to 2 to 3 times faster.
..
.. date: 2024-05-03-17-49-37
.. gh-issue: 116322
.. nonce: Gy6M4j
.. section: Core and Builtins
In ``--disable-gil`` builds, the GIL will be enabled while loading C
extension modules. If the module indicates that it supports running without
the GIL, the GIL will be disabled once loading is complete. Otherwise, the
GIL will remain enabled for the remainder of the interpreter's lifetime.
This behavior does not apply if the GIL has been explicitly enabled or
disabled with ``PYTHON_GIL`` or ``-Xgil``.
..
.. date: 2024-05-02-21-19-35
.. gh-issue: 118513
.. nonce: qHODjb
.. section: Core and Builtins
Fix incorrect :exc:`UnboundLocalError` when two comprehensions in the same
function both reference the same name, and in one comprehension the name is
bound while in the other it's an implicit global.
..
.. date: 2024-05-02-20-32-42
.. gh-issue: 118518
.. nonce: m-JbTi
.. section: Core and Builtins
Allow the Linux perf support to work without frame pointers using perf's
advanced JIT support. The feature is activated when using the
``PYTHON_PERF_JIT_SUPPORT`` environment variable or when running Python with
``-Xperf_jit``. Patch by Pablo Galindo.
..
.. date: 2024-05-02-16-04-51
.. gh-issue: 117514
.. nonce: CJiuC0
.. section: Core and Builtins
Add ``sys._is_gil_enabled()`` function that returns whether the GIL is
currently enabled. In the default build it always returns ``True`` because
the GIL is always enabled. In the free-threaded build, it may return
``True`` or ``False``.
..
.. date: 2024-05-02-15-57-07
.. gh-issue: 118164
.. nonce: AF6kwI
.. section: Core and Builtins
Break a loop between the Python implementation of the :mod:`decimal` module
and the Python code for integer to string conversion. Also optimize integer
to string conversion for values in the range from 9_000 to 135_000 decimal
digits.
..
.. date: 2024-05-01-22-43-54
.. gh-issue: 118473
.. nonce: QIvq9R
.. section: Core and Builtins
Fix :func:`sys.set_asyncgen_hooks` not to be partially set when raising
:exc:`TypeError`.
..
.. date: 2024-05-01-17-12-36
.. gh-issue: 118465
.. nonce: g3Q8iE
.. section: Core and Builtins
Compiler populates the new ``__firstlineno__`` field on a class with the
line number of the first line of the class definition.
..
.. date: 2024-05-01-14-20-28
.. gh-issue: 118492
.. nonce: VUsSfn
.. section: Core and Builtins
Fix an issue where the type cache can expose a previously accessed attribute
when a finalizer is run.
..
.. date: 2024-05-01-07-06-48
.. gh-issue: 117714
.. nonce: Ip_dm5
.. section: Core and Builtins
update ``async_generator.athrow().close()`` and
``async_generator.asend().close()`` to close their section of the underlying
async generator
..
.. date: 2024-04-28-00-41-17
.. gh-issue: 111201
.. nonce: cQsh5U
.. section: Core and Builtins
The :term:`interactive` interpreter is now implemented in Python, which
allows for a number of new features like colors, multiline input, history
viewing, and paste mode. Contributed by Pablo Galindo, Łukasz Langa and
Lysandros Nikolaou based on code from the PyPy project.
..
.. date: 2024-04-27-21-44-40
.. gh-issue: 74929
.. nonce: C2nESp
.. section: Core and Builtins
Implement PEP 667: converted :attr:`FrameType.f_locals <frame.f_locals>` and
:c:func:`PyFrame_GetLocals` to return a write-through proxy object when the
frame refers to a function or comprehension.
..
.. date: 2024-04-27-16-23-29
.. gh-issue: 116767
.. nonce: z9UFpr
.. section: Core and Builtins
Fix crash in compiler on 'async with' that has many context managers.
..
.. date: 2024-04-26-14-06-18
.. gh-issue: 118335
.. nonce: SRFsxO
.. section: Core and Builtins
Change how to use the tier 2 interpreter. Instead of running Python with
``-X uops`` or setting the environment variable ``PYTHON_UOPS=1``, this
choice is now made at build time by configuring with
``--enable-experimental-jit=interpreter``.
**Beware!** This changes the environment variable to enable or disable
micro-ops to ``PYTHON_JIT``. The old ``PYTHON_UOPS`` is no longer used.
..
.. date: 2024-04-26-05-38-18
.. gh-issue: 118306
.. nonce: vRUEOU
.. section: Core and Builtins
Update JIT compilation to use LLVM 18
..
.. date: 2024-04-25-21-18-19
.. gh-issue: 118160
.. nonce: GH5SMc
.. section: Core and Builtins
:ref:`Annotation scopes <annotation-scopes>` within classes can now contain
comprehensions. However, such comprehensions are not inlined into their
parent scope at runtime. Patch by Jelle Zijlstra.
..
.. date: 2024-04-25-12-55-47
.. gh-issue: 118272
.. nonce: 5ptjk_
.. section: Core and Builtins
Fix bug where ``generator.close`` does not free the generator frame's
locals.
..
.. date: 2024-04-25-11-48-28
.. gh-issue: 118216
.. nonce: SVg700
.. section: Core and Builtins
Don't consider :mod:`__future__` imports with dots before the module name.
..
.. date: 2024-04-22-08-34-28
.. gh-issue: 118074
.. nonce: 5_JnIa
.. section: Core and Builtins
Make sure that the Executor objects in the COLD_EXITS array aren't assumed
to be GC-able (which would access bytes outside the object).
..
.. date: 2024-04-20-20-30-15
.. gh-issue: 107674
.. nonce: GZPOP7
.. section: Core and Builtins
Lazy load frame line number to improve performance of tracing
..
.. date: 2024-04-19-11-59-57
.. gh-issue: 118082
.. nonce: _FLuOT
.. section: Core and Builtins
Improve :exc:`SyntaxError` message for imports without names, like in ``from
x import`` and ``import`` cases. It now points out to users that
:keyword:`import` expects at least one name after it.
..
.. date: 2024-04-19-11-57-46
.. gh-issue: 118090
.. nonce: eGAQ0B
.. section: Core and Builtins
Improve :exc:`SyntaxError` message for empty type param brackets.
..
.. date: 2024-04-18-03-49-41
.. gh-issue: 117958
.. nonce: -EsfUs
.. section: Core and Builtins
Added a ``get_jit_code()`` method to access JIT compiled machine code from
the UOp Executor when the experimental JIT is enabled. Patch by Anthony
Shaw.
..
.. date: 2024-04-17-22-53-52
.. gh-issue: 117901
.. nonce: SsEcVJ
.. section: Core and Builtins
Add option for compiler's codegen to save nested instruction sequences for
introspection.
..
.. date: 2024-04-17-22-49-15
.. gh-issue: 116622
.. nonce: tthNUF
.. section: Core and Builtins
Redirect stdout and stderr to system log when embedded in an Android app.
..
.. date: 2024-04-17-17-52-32
.. gh-issue: 109118
.. nonce: q9iPEI
.. section: Core and Builtins
:ref:`annotation scope <annotation-scopes>` within class scopes can now
contain lambdas.
..
.. date: 2024-04-15-13-53-59
.. gh-issue: 117894
.. nonce: 8LpZ6m
.. section: Core and Builtins
Prevent ``agen.aclose()`` objects being re-used after ``.throw()``.
..
.. date: 2024-04-15-07-37-09
.. gh-issue: 117881
.. nonce: 07H0wI
.. section: Core and Builtins
prevent concurrent access to an async generator via athrow().throw() or
asend().throw()
..
.. date: 2024-04-13-16-55-53
.. gh-issue: 117536
.. nonce: xkVbfv
.. section: Core and Builtins
Fix a :exc:`RuntimeWarning` when calling ``agen.aclose().throw(Exception)``.
..
.. date: 2024-04-12-12-28-49
.. gh-issue: 117755
.. nonce: 6ct8kU
.. section: Core and Builtins
Fix mimalloc allocator for huge memory allocation (around 8,589,934,592 GiB)
on s390x. Patch by Victor Stinner.
..
.. date: 2024-04-12-11-19-18
.. gh-issue: 117750
.. nonce: YttK6h
.. section: Core and Builtins
Fix issue where an object's dict would get out of sync with the object's
internal values when being cleared. ``obj.__dict__.clear()`` now clears the
internal values, but leaves the dict attached to the object.
..
.. date: 2024-04-12-09-09-11
.. gh-issue: 117431
.. nonce: lxFEeJ
.. section: Core and Builtins
Improve the performance of the following :class:`bytes` and
:class:`bytearray` methods by adapting them to the :c:macro:`METH_FASTCALL`
calling convention:
* :meth:`!count`
* :meth:`!find`
* :meth:`!index`
* :meth:`!rfind`
* :meth:`!rindex`
..
.. date: 2024-04-10-22-16-18
.. gh-issue: 117709
.. nonce: -_1YL0
.. section: Core and Builtins
Speed up calls to :func:`str` with positional-only argument, by using the
:pep:`590` ``vectorcall`` calling convention. Patch by Erlend Aasland.
..
.. date: 2024-04-09-16-07-00
.. gh-issue: 117680
.. nonce: MRZ78K
.. section: Core and Builtins
Give ``_PyInstructionSequence`` a Python interface and use it in tests.
..
.. date: 2024-04-09-11-31-25
.. gh-issue: 115776
.. nonce: 5Nthd0
.. section: Core and Builtins
Statically allocated objects are, by definition, immortal so must be marked
as such regardless of whether they are in extension modules or not.
..
.. date: 2024-03-30-00-37-53
.. gh-issue: 117385
.. nonce: h0OJti
.. section: Core and Builtins
Remove unhandled ``PY_MONITORING_EVENT_BRANCH`` and
``PY_MONITORING_EVENT_EXCEPTION_HANDLED`` events from :func:`sys.settrace`.
..
.. date: 2024-03-12-13-51-09
.. gh-issue: 116322
.. nonce: q8TcDQ
.. section: Core and Builtins
Extension modules may indicate to the runtime that they can run without the
GIL. Multi-phase init modules do so by calling providing
``Py_MOD_GIL_NOT_USED`` for the ``Py_mod_gil`` slot, while single-phase init
modules call ``PyUnstable_Module_SetGIL(mod, Py_MOD_GIL_NOT_USED)`` from
their init function.
..
.. date: 2024-02-29-18-55-45
.. gh-issue: 116129
.. nonce: wsFnIq
.. section: Core and Builtins
Implement :pep:`696`, adding support for defaults on type parameters. Patch
by Jelle Zijlstra.
..
.. date: 2024-02-26-13-14-52
.. gh-issue: 93502
.. nonce: JMWRvA
.. section: Core and Builtins
Add two new functions to the C-API, :c:func:`PyRefTracer_SetTracer` and
:c:func:`PyRefTracer_GetTracer`, that allows to track object creation and
destruction the same way the :mod:`tracemalloc` module does. Patch by Pablo
Galindo
..
.. date: 2024-02-04-07-45-29
.. gh-issue: 107674
.. nonce: q8mCmi
.. section: Core and Builtins
Improved the performance of :func:`sys.settrace` significantly
..
.. date: 2024-01-07-03-38-34
.. gh-issue: 95754
.. nonce: aPjEBG
.. section: Core and Builtins
Improve the error message when a script shadowing a module from the standard
library causes :exc:`AttributeError` to be raised. Similarly, improve the
error message when a script shadowing a third party module attempts to
access an attribute from that third party module while still initialising.
..
.. date: 2023-12-03-18-21-59
.. gh-issue: 99180
.. nonce: 5m0V0q
.. section: Core and Builtins
Elide uninformative traceback indicators in ``return`` and simple
``assignment`` statements. Patch by Pablo Galindo.
..
.. date: 2023-06-18-00-27-57
.. gh-issue: 105879
.. nonce: dPw78k
.. section: Core and Builtins
Allow the *globals* and *locals* arguments to :func:`exec` and :func:`eval`
to be passed as keywords.
..
.. date: 2024-05-07-11-23-11
.. gh-issue: 118418
.. nonce: QPMdJm
.. section: Library
A :exc:`DeprecationWarning` is now emitted if you fail to pass a value to
the new *type_params* parameter of ``typing._eval_type()`` or
``typing.ForwardRef._evaluate()``. (Using either of these private and
undocumented functions is discouraged to begin with, but failing to pass a
value to the ``type_params`` parameter may lead to incorrect behaviour on
Python 3.12 or newer.)
..
.. date: 2024-05-06-18-13-02
.. gh-issue: 118660
.. nonce: n01Vb7
.. section: Library
Add an optional second type parameter to :class:`typing.ContextManager` and
:class:`typing.AsyncContextManager`, representing the return types of
:meth:`~object.__exit__` and :meth:`~object.__aexit__` respectively. This
parameter defaults to ``bool | None``.
..
.. date: 2024-05-06-16-52-40
.. gh-issue: 118650
.. nonce: qKz5lp
.. section: Library
The ``enum`` module allows method named ``_repr_*`` to be defined on
``Enum`` types.
..
.. date: 2024-05-06-08-23-01
.. gh-issue: 118648
.. nonce: OVA3jJ
.. section: Library
Add type parameter defaults to :class:`typing.Generator` and
:class:`typing.AsyncGenerator`.
..
.. date: 2024-05-05-16-08-03
.. gh-issue: 101137
.. nonce: 71ECXu
.. section: Library
Mime type ``text/x-rst`` is now supported by :mod:`mimetypes`.
..
.. date: 2024-05-04-20-22-59
.. gh-issue: 118164
.. nonce: 9D02MQ
.. section: Library
The Python implementation of the ``decimal`` module could appear to hang in
relatively small power cases (like ``2**117``) if context precision was set
to a very high value. A different method to check for exactly representable
results is used now that doesn't rely on computing ``10**precision`` (which
could be effectively too large to compute).
..
.. date: 2024-05-04-18-40-43
.. gh-issue: 111744
.. nonce: nuCtwN
.. section: Library
``breakpoint()`` and ``pdb.set_trace()`` now enter the debugger immediately
after the call rather than before the next line is executed.
..
.. date: 2024-05-02-04-27-12
.. gh-issue: 118500
.. nonce: pBGGtQ
.. section: Library
Add :mod:`pdb` support for zipapps
..
.. date: 2024-04-30-15-18-19
.. gh-issue: 118406
.. nonce: y-GnMo
.. section: Library
Add signature for :class:`sqlite3.Connection` objects.
..
.. date: 2024-04-30-12-59-04
.. gh-issue: 101732
.. nonce: 29zUDu
.. section: Library
Use a Y2038 compatible openssl time function when available.
..
.. date: 2024-04-29-22-11-54
.. gh-issue: 118404
.. nonce: GYfMaD
.. section: Library
Fix :func:`inspect.signature` for non-comparable callables.
..
.. date: 2024-04-29-21-51-28
.. gh-issue: 118402
.. nonce: Z_06Th
.. section: Library
Fix :func:`inspect.signature` for the result of the
:func:`functools.cmp_to_key` call.
..
.. date: 2024-04-27-20-34-56
.. gh-issue: 116622
.. nonce: YlQgXv
.. section: Library
On Android, :any:`sysconfig.get_platform` now returns the format specified
by :pep:`738`.
..
.. date: 2024-04-26-14-53-28
.. gh-issue: 118285
.. nonce: A0_pte
.. section: Library
Allow to specify the signature of custom callable instances of extension
type by the ``__text_signature__`` attribute. Specify signatures of
:class:`operator.attrgetter`, :class:`operator.itemgetter`, and
:class:`operator.methodcaller` instances.
..
.. date: 2024-04-26-12-42-29
.. gh-issue: 118314
.. nonce: Z7reGc
.. section: Library
Fix an edge case in :func:`binascii.a2b_base64` strict mode, where excessive
padding is not detected when no padding is necessary.
..
.. date: 2024-04-25-11-49-11
.. gh-issue: 118271
.. nonce: 5N2Xcy
.. section: Library
Add the :class:`!PhotoImage` methods :meth:`!read` to
read an image from a file and :meth:`!data` to get the
image data. Add *background* and *grayscale* parameters to
:class:`!PhotoImage` method :meth:`!write`.
..
.. date: 2024-04-24-16-07-26
.. gh-issue: 118225
.. nonce: KdrcgL
.. section: Library
Add the :class:`!PhotoImage` method :meth:`!copy_replace` to copy a region
from one image to other image, possibly with pixel zooming and/or
subsampling. Add *from_coords* parameter to :class:`!PhotoImage` methods
:meth:`!copy`, :meth:`!zoom` and :meth:`!subsample`. Add *zoom* and
*subsample* parameters to :class:`!PhotoImage` method :meth:`!copy`.
..
.. date: 2024-04-24-12-29-33
.. gh-issue: 118221
.. nonce: 2k_bac
.. section: Library
Fix a bug where :meth:`sqlite3.Connection.iterdump` could fail if a custom
:attr:`row factory <sqlite3.Connection.row_factory>` was used. Patch by
Erlend Aasland.
..
.. date: 2024-04-24-12-20-48
.. gh-issue: 118013
.. nonce: TKn_kZ
.. section: Library
Fix regression introduced in gh-103193 that meant that calling
:func:`inspect.getattr_static` on an instance would cause a strong reference
to that instance's class to persist in an internal cache in the
:mod:`inspect` module. This caused unexpected memory consumption if the
class was dynamically created, the class held strong references to other
objects which took up a significant amount of memory, and the cache
contained the sole strong reference to the class. The fix for the regression
leads to a slowdown in :func:`!getattr_static`, but the function should
still be significantly faster than it was in Python 3.11. Patch by Alex
Waygood.
..
.. date: 2024-04-24-07-45-08
.. gh-issue: 118218
.. nonce: m1OHbN
.. section: Library
Speed up :func:`itertools.pairwise` in the common case by up to 1.8x.
..
.. date: 2024-04-23-21-17-00
.. gh-issue: 117486
.. nonce: ea3KYD
.. section: Library
Improve the behavior of user-defined subclasses of :class:`ast.AST`. Such
classes will now require no changes in the usual case to conform with the
behavior changes of the :mod:`ast` module in Python 3.13. Patch by Jelle
Zijlstra.
..
.. date: 2024-04-22-21-54-12
.. gh-issue: 90848
.. nonce: 5jHEEc
.. section: Library
Fixed :func:`unittest.mock.create_autospec` to configure parent mock with
keyword arguments.
..
.. date: 2024-04-22-20-42-29
.. gh-issue: 118168
.. nonce: Igni7h
.. section: Library
Fix incorrect argument substitution when :data:`typing.Unpack` is used with
the builtin :class:`tuple`. :data:`!typing.Unpack` now raises
:exc:`TypeError` when used with certain invalid types. Patch by Jelle
Zijlstra.
..
.. date: 2024-04-21-18-55-42
.. gh-issue: 118131
.. nonce: eAT0is
.. section: Library
Add command-line interface for the :mod:`random` module. Patch by Hugo van
Kemenade.
..
.. date: 2024-04-19-09-28-43
.. gh-issue: 118107
.. nonce: Mdsr1J
.. section: Library
Fix :mod:`zipimport` reading of ZIP64 files with file entries that are too
big or offset too far.
..
.. date: 2024-04-19-08-50-48
.. gh-issue: 102511
.. nonce: qDEB66
.. section: Library
Fix :func:`os.path.normpath` for UNC paths on Windows.
Speed up :func:`os.path.splitroot` with a native implementation.
..
.. date: 2024-04-18-00-35-11
.. gh-issue: 117535
.. nonce: 0m6SIM
.. section: Library
Change the unknown filename of :mod:`warnings` from ``sys`` to ``<sys>`` to
clarify that it's not a real filename.
..
.. date: 2024-04-17-22-00-15
.. gh-issue: 114053
.. nonce: _JBV4D
.. section: Library
Fix erroneous :exc:`NameError` when calling :func:`typing.get_type_hints` on
a class that made use of :pep:`695` type parameters in a module that had
``from __future__ import annotations`` at the top of the file. Patch by Alex
Waygood.
..
.. date: 2024-04-17-21-28-24
.. gh-issue: 116931
.. nonce: _AS09h
.. section: Library
Add parameter *fileobj* check for :func:`tarfile.TarFile.addfile`
..
.. date: 2024-04-17-19-41-59
.. gh-issue: 117995
.. nonce: Vt76Rv
.. section: Library
Don't raise :exc:`DeprecationWarning` when a :term:`sequence` of parameters
is used to bind indexed, nameless placeholders. See also :gh:`100668`.
..
.. date: 2024-04-17-18-00-30
.. gh-issue: 80361
.. nonce: RstWg-
.. section: Library
Fix TypeError in :func:`email.message.Message.get_payload` when the charset is
:rfc:`2231` encoded.
..
.. date: 2024-04-16-18-34-11
.. gh-issue: 86650
.. nonce: Zeydyg
.. section: Library
Fix IndexError when parse some emails with invalid Message-ID (including
one-off addresses generated by Microsoft Outlook).
..
.. date: 2024-04-14-15-59-28
.. gh-issue: 117691
.. nonce: 1mtREE
.. section: Library
Improve the error messages emitted by :mod:`tarfile` deprecation warnings
relating to PEP 706. If a ``filter`` argument is not provided to
``extract()`` or ``extractall``, the deprecation warning now points to the
line in the user's code where the relevant function was called. Patch by
Alex Waygood.
..
.. date: 2024-04-13-18-59-25
.. gh-issue: 115874
.. nonce: c3xG-E
.. section: Library
Fixed a possible segfault during garbage collection of
``_asyncio.FutureIter`` objects. Patch by Savannah Ostrowski.
..
.. date: 2024-04-13-01-45-15
.. gh-issue: 115060
.. nonce: IxoM03
.. section: Library
Speed up :meth:`pathlib.Path.glob` by omitting an initial
:meth:`~pathlib.Path.is_dir` call. As a result of this change,
:meth:`~pathlib.Path.glob` can no longer raise :exc:`OSError`.
..
.. date: 2024-04-12-17-37-11
.. gh-issue: 77102
.. nonce: Mk6X_E
.. section: Library
:mod:`site` module now parses ``.pth`` file with UTF-8 first, and
:term:`locale encoding` if ``UnicodeDecodeError`` happened. It supported
only locale encoding before.
..
.. date: 2024-04-11-18-11-37
.. gh-issue: 76785
.. nonce: BWNkhC
.. section: Library
We've exposed the low-level :mod:`!_interpreters` module for the sake of the
PyPI implementation of :pep:`734`. It was sometimes available as the
:mod:`!_xxsubinterpreters` module and was formerly used only for testing.
For the most part, it should be considered an internal module, like
:mod:`!_thread` and :mod:`!_imp`. See
https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26.
..
.. date: 2024-04-10-22-35-24
.. gh-issue: 115060
.. nonce: XEVuOb
.. section: Library
Speed up :meth:`pathlib.Path.glob` by not scanning directories for
non-wildcard pattern segments.
..
.. date: 2024-04-10-21-30-37
.. gh-issue: 117727
.. nonce: uAYNVS
.. section: Library
Speed up :meth:`pathlib.Path.iterdir` by using :func:`os.scandir`
internally.
..
.. date: 2024-04-10-21-08-32
.. gh-issue: 117586
.. nonce: UCL__1
.. section: Library
Speed up :meth:`pathlib.Path.walk` by working with strings internally.
..
.. date: 2024-04-10-20-59-10
.. gh-issue: 117722
.. nonce: oxIUEI
.. section: Library
Change the new multi-separator support in :meth:`asyncio.StreamReader.readuntil`
to only accept tuples of separators rather than arbitrary iterables.
..
.. date: 2024-04-09-23-22-21
.. gh-issue: 117692
.. nonce: EciInD
.. section: Library
Fixes a bug when :class:`doctest.DocTestFinder` was failing on wrapped
``builtin_function_or_method``.
..
.. date: 2024-04-09-20-14-44
.. gh-issue: 117348
.. nonce: A2NAAz
.. section: Library
Largely restored import time performance of configparser by avoiding
dataclasses.
..
.. date: 2024-04-08-19-30-38
.. gh-issue: 117641
.. nonce: oaBGSJ
.. section: Library
Speedup :func:`os.path.commonpath` on Unix.
..
.. date: 2024-04-08-19-12-26
.. gh-issue: 117663
.. nonce: CPfc_p
.. section: Library
Fix ``_simple_enum`` to detect aliases when multiple arguments are present
but only one is the member value.
..
.. date: 2024-04-08-14-33-38
.. gh-issue: 117636
.. nonce: exnRKd
.. section: Library
Speedup :func:`os.path.join`.
..
.. date: 2024-04-08-03-23-22
.. gh-issue: 117618
.. nonce: -4DCUw
.. section: Library
Support ``package.module`` as ``filename`` for ``break`` command of
:mod:`pdb`
..
.. date: 2024-04-07-19-39-20
.. gh-issue: 102247
.. nonce: h8rqiX
.. section: Library
the status codes enum with constants in http.HTTPStatus are updated to
include the names from RFC9110. This RFC includes some HTTP statuses
previously only used for WEBDAV and assigns more generic names to them.
The old constants are preserved for backwards compatibility.
..
.. date: 2024-04-07-18-42-09
.. gh-issue: 117607
.. nonce: C978BD
.. section: Library
Speedup :func:`os.path.relpath`.
..
.. date: 2024-04-06-20-31-09
.. gh-issue: 117586
.. nonce: UgWdRK
.. section: Library
Speed up :meth:`pathlib.Path.glob` by working with strings internally.
..
.. date: 2024-04-06-18-41-36
.. gh-issue: 117225
.. nonce: tJh1Hw
.. section: Library
Add colour to doctest output. Patch by Hugo van Kemenade.
..
.. date: 2024-04-05-15-51-01
.. gh-issue: 117566
.. nonce: 54nABf
.. section: Library
:meth:`ipaddress.IPv6Address.is_loopback` will now return ``True`` for
IPv4-mapped loopback addresses, i.e. addresses in the
``::ffff:127.0.0.0/104`` address space.
..
.. date: 2024-04-05-13-38-53
.. gh-issue: 117546
.. nonce: lWjhHE
.. section: Library
Fix issue where :func:`os.path.realpath` stopped resolving symlinks after
encountering a symlink loop on POSIX.
..
.. date: 2024-04-04-15-28-12
.. gh-issue: 116720
.. nonce: aGhXns
.. section: Library
Improved behavior of :class:`asyncio.TaskGroup` when an external
cancellation collides with an internal cancellation. For example, when two
task groups are nested and both experience an exception in a child task
simultaneously, it was possible that the outer task group would misbehave,
because its internal cancellation was swallowed by the inner task group.
In the case where a task group is cancelled externally and also must raise
an :exc:`ExceptionGroup`, it will now call the parent task's
:meth:`~asyncio.Task.cancel` method. This ensures that a
:exc:`asyncio.CancelledError` will be raised at the next :keyword:`await`,
so the cancellation is not lost.
An added benefit of these changes is that task groups now preserve the
cancellation count (:meth:`asyncio.Task.cancelling`).
In order to handle some corner cases, :meth:`asyncio.Task.uncancel` may now
reset the undocumented ``_must_cancel`` flag when the cancellation count
reaches zero.
..
.. date: 2024-04-03-16-01-31
.. gh-issue: 117516
.. nonce: 7DlHje
.. section: Library
Add :data:`typing.TypeIs`, implementing :pep:`742`. Patch by Jelle Zijlstra.
..
.. date: 2024-04-03-15-04-23
.. gh-issue: 117503
.. nonce: NMfwup
.. section: Library
Fix support of non-ASCII user names in bytes paths in
:func:`os.path.expanduser` on Posix.
..
.. date: 2024-04-02-11-17-44
.. gh-issue: 117394
.. nonce: 2aoSlb
.. section: Library
:func:`os.path.ismount` is now 2-3 times faster if the user has permissions.
..
.. date: 2024-03-29-15-14-51
.. gh-issue: 117313
.. nonce: ks_ONu
.. section: Library
Only treat ``'\n'``, ``'\r'`` and ``'\r\n'`` as line separators in
re-folding the :mod:`email` messages. Preserve control characters ``'\v'``,
``'\f'``, ``'\x1c'``, ``'\x1d'`` and ``'\x1e'`` and Unicode line separators
``'\x85'``, ``'\u2028'`` and ``'\u2029'`` as is.
..
.. date: 2024-03-29-12-21-40
.. gh-issue: 117142
.. nonce: U0agfh
.. section: Library
Convert :mod:`!_ctypes` to multi-phase initialisation (:pep:`489`).
..
.. date: 2024-03-26-15-29-39
.. gh-issue: 66543
.. nonce: OZBhU5
.. section: Library
Add the :func:`mimetypes.guess_file_type` function which works with file
path. Passing file path instead of URL in :func:`~mimetypes.guess_type` is
:term:`soft deprecated`.
..
.. date: 2024-03-20-00-11-39
.. gh-issue: 68583
.. nonce: mIlxxb
.. section: Library
webbrowser CLI: replace getopt with argparse, add long options. Patch by
Hugo van Kemenade.
..
.. date: 2024-03-17-18-24-23
.. gh-issue: 116871
.. nonce: 9uSl8M
.. section: Library
Name suggestions for :exc:`AttributeError` and :exc:`ImportError` now only
include underscored names if the original name was underscored.
..
.. date: 2024-02-28-11-51-51
.. gh-issue: 116023
.. nonce: CGYhFh
.. section: Library
Don't show empty fields (value ``None`` or ``[]``) in :func:`ast.dump` by
default. Add ``show_empty=False`` parameter to optionally show them.
..
.. date: 2024-02-28-10-41-24
.. gh-issue: 115961
.. nonce: P-_DU0
.. section: Library
Added :attr:`!name` and :attr:`!mode` attributes for compressed and archived
file-like objects in modules :mod:`bz2`, :mod:`lzma`, :mod:`tarfile` and
:mod:`zipfile`. The value of the :attr:`!mode` attribute of
:class:`gzip.GzipFile` was changed from integer (``1`` or ``2``) to string
(``'rb'`` or ``'wb'``). The value of the :attr:`!mode` attribute of the
readable file-like object returned by :meth:`zipfile.ZipFile.open` was
changed from ``'r'`` to ``'rb'``.
..
.. date: 2024-02-11-07-31-43
.. gh-issue: 82062
.. nonce: eeS6w7
.. section: Library
Fix :func:`inspect.signature` to correctly handle parameter defaults on
methods in extension modules that use names defined in the module namespace.
..
.. date: 2024-01-19-05-40-46
.. gh-issue: 83856
.. nonce: jN5M80
.. section: Library
Honor :mod:`atexit` for all :mod:`multiprocessing` start methods
..
.. date: 2023-12-14-02-51-38
.. gh-issue: 113081
.. nonce: S-9Qyn
.. section: Library
Print colorized exception just like built-in traceback in :mod:`pdb`
..
.. date: 2023-12-07-20-05-54
.. gh-issue: 112855
.. nonce: ph4ehh
.. section: Library
Speed up pickling of :class:`pathlib.PurePath` objects. Patch by Barney
Gale.
..
.. date: 2023-11-07-22-41-42
.. gh-issue: 111744
.. nonce: TbLxF0
.. section: Library
Support opcode events in :mod:`bdb`
..
.. date: 2023-10-24-12-39-04
.. gh-issue: 109617
.. nonce: YoI8TV
.. section: Library
:mod:`!ncurses`: fixed a crash that could occur on macOS 13 or earlier when
Python was built with Apple Xcode 15's SDK.
..
.. date: 2023-10-20-03-50-17
.. gh-issue: 83151
.. nonce: bcsD40
.. section: Library
Enabled arbitrary statements and evaluations in :mod:`pdb` shell to access
the local variables of the current frame, which made it possible for
multi-scope code like generators or nested function to work.
..
.. date: 2023-10-02-10-35-58
.. gh-issue: 110209
.. nonce: b5zfIz
.. section: Library
Add :meth:`~object.__class_getitem__` to :class:`types.GeneratorType` and
:class:`types.CoroutineType` for type hinting purposes. Patch by James
Hilton-Balfe.
..
.. date: 2023-08-21-10-34-43
.. gh-issue: 108191
.. nonce: GZM3mv
.. section: Library
The :class:`types.SimpleNamespace` now accepts an optional positional
argument which specifies initial values of attributes as a dict or an
iterable of key-value pairs.
..
.. date: 2023-05-28-11-25-18
.. gh-issue: 62090
.. nonce: opAhDn
.. section: Library
Fix assertion errors caused by whitespace in metavars or ``SUPPRESS``-ed
groups in :mod:`argparse` by simplifying usage formatting. Patch by Ali
Hamdan.
..
.. date: 2023-03-03-21-13-08
.. gh-issue: 102402
.. nonce: fpkRO1
.. section: Library
Adjust ``logging.LogRecord`` to use ``time.time_ns()`` and fix minor bug
related to floating-point math.
..
.. date: 2022-12-14-15-53-38
.. gh-issue: 100242
.. nonce: Ny7VUO
.. section: Library
Bring pure Python implementation ``functools.partial.__new__`` more in line
with the C-implementation by not just always checking for the presence of
the attribute ``'func'`` on the first argument of ``partial``. Instead, both
the Python version and the C version perform an ``isinstance(func,
partial)`` check on the first argument of ``partial``.
..
.. date: 2022-11-23-17-16-31
.. gh-issue: 99730
.. nonce: bDQdaX
.. section: Library
HEAD requests are no longer upgraded to GET request during redirects in
urllib.
..
.. date: 2022-10-24-12-05-19
.. gh-issue: 66410
.. nonce: du4UKW
.. section: Library
Setting the :mod:`!tkinter` module global :data:`!wantobjects` to ``2``
before creating the :class:`~tkinter.Tk` object or call the
:meth:`!wantobjects` method of the :class:`!Tk` object with argument
``2`` makes now arguments to callbacks registered in the :mod:`tkinter` module
to be passed as various Python objects (``int``, ``float``, ``bytes``, ``tuple``),
depending on their internal representation in Tcl, instead of always ``str``.
:data:`!tkinter.wantobjects` is now set to ``2`` by default.
..
.. bpo: 40943
.. date: 2020-06-10-19-24-17
.. nonce: vjiiN_
.. section: Library
Fix several IndexError when parse emails with truncated Message-ID, address,
routes, etc, e.g. ``example@``.
..
.. bpo: 39324
.. date: 2020-01-14-09-46-51
.. nonce: qUcDrM
.. section: Library
Add mime type mapping for .md <-> text/markdown
..
.. bpo: 18108
.. date: 2019-09-09-18-18-34
.. nonce: ajPLAO
.. section: Library
:func:`shutil.chown` now supports *dir_fd* and *follow_symlinks* keyword
arguments.
..
.. bpo: 30988
.. date: 2019-08-29-20-26-08
.. nonce: b-_h5O
.. section: Library
Fix parsing of emails with invalid address headers having a leading or
trailing dot. Patch by tsufeki.
..
.. bpo: 32839
.. date: 2018-02-13-10-02-54
.. nonce: McbVz3
.. section: Library
Add the :meth:`!after_info` method for Tkinter widgets.
..
.. date: 2024-04-25-22-12-20
.. gh-issue: 117928
.. nonce: LKdTno
.. section: Documentation
The minimum Sphinx version required for the documentation is now 6.2.1.
..
.. date: 2024-05-07-21-15-47
.. gh-issue: 118734
.. nonce: --GHiS
.. section: Build
Fixes Windows build when invoked directly (not through the :file:`build.bat`
script) without specifying a value for ``UseTIER2``.
..
.. date: 2024-05-06-00-39-06
.. gh-issue: 115119
.. nonce: LT27pF
.. section: Build
The :file:`configure` option :option:`--with-system-libmpdec` now defaults
to ``yes``. The bundled copy of ``libmpdecimal`` will be removed in Python
3.15.
..
.. date: 2024-04-15-08-35-06
.. gh-issue: 117845
.. nonce: IowzyW
.. section: Build
Fix building against recent libedit versions by detecting readline hook
signatures in :program:`configure`.
..
.. date: 2024-04-14-19-35-35
.. gh-issue: 116622
.. nonce: 8lpX-7
.. section: Build
A testbed project was added to run the test suite on Android.
..
.. date: 2024-04-09-12-59-06
.. gh-issue: 117645
.. nonce: 0oEVAa
.. section: Build
Increase WASI stack size from 512 KiB to 8 MiB and the initial memory from
10 MiB to 20 MiB. Patch by Victor Stinner.
..
.. date: 2024-02-13-15-31-28
.. gh-issue: 115119
.. nonce: FnQzAW
.. section: Build
:program:`configure` now uses :program:`pkg-config` to detect :mod:`decimal`
dependencies if the :option:`--with-system-libmpdec` option is given.
..
.. date: 2024-05-02-09-28-04
.. gh-issue: 115119
.. nonce: cUKMXo
.. section: Windows
Update Windows installer to use libmpdecimal 4.0.0.
..
.. date: 2024-05-01-20-57-09
.. gh-issue: 118486
.. nonce: K44KJG
.. section: Windows
:func:`os.mkdir` now accepts *mode* of ``0o700`` to restrict the new
directory to the current user.
..
.. date: 2024-04-29-13-53-25
.. gh-issue: 118347
.. nonce: U5ZRm_
.. section: Windows
Fixes launcher updates not being installed.
..
.. date: 2024-04-26-14-23-07
.. gh-issue: 118293
.. nonce: ohhPtW
.. section: Windows
The ``multiprocessing`` module now passes the ``STARTF_FORCEOFFFEEDBACK``
flag when spawning processes to tell Windows not to change the mouse cursor.
..
.. date: 2024-04-15-21-23-34
.. gh-issue: 115009
.. nonce: uhisHP
.. section: Windows
Update Windows installer to use SQLite 3.45.3.
..
.. date: 2024-04-12-14-02-58
.. gh-issue: 90329
.. nonce: YpEeaO
.. section: Windows
Suppress the warning displayed on virtual environment creation when the
requested and created paths differ only by a short (8.3 style) name.
Warnings will continue to be shown if a junction or symlink in the path
caused the venv to be created in a different location than originally
requested.
..
.. date: 2024-04-12-13-18-42
.. gh-issue: 117786
.. nonce: LpI01s
.. section: Windows
Fixes virtual environments not correctly launching when created from a Store
install.
..
.. date: 2024-05-03-12-13-27
.. gh-issue: 115119
.. nonce: ltDtoR
.. section: macOS
Update macOS installer to use libmpdecimal 4.0.0.
..
.. date: 2024-04-19-08-40-00
.. gh-issue: 114099
.. nonce: _iDfrQ
.. section: macOS
iOS preprocessor symbol usage was made compatible with older macOS SDKs.
..
.. date: 2024-04-15-21-19-39
.. gh-issue: 115009
.. nonce: IdxH9N
.. section: macOS
Update macOS installer to use SQLite 3.45.3.
..
.. date: 2022-04-17-01-07-42
.. gh-issue: 91629
.. nonce: YBGAAt
.. section: macOS
Use :file:`~/.config/fish/conf.d` configs and :program:`fish_add_path` to
set :envvar:`PATH` when installing for the Fish shell.
..
.. bpo: 34774
.. date: 2018-09-23-01-36-39
.. nonce: VeM-X-
.. section: IDLE
Use user-selected color theme for Help => IDLE Doc.
..
.. date: 2024-04-29-17-44-15
.. gh-issue: 118124
.. nonce: czQQ9G
.. section: C API
Fix :c:macro:`Py_BUILD_ASSERT` and :c:macro:`Py_BUILD_ASSERT_EXPR` for
non-constant expressions: use ``static_assert()`` on C11 and newer. Patch by
Victor Stinner.
..
.. date: 2024-04-29-17-19-07
.. gh-issue: 110850
.. nonce: vcpLn1
.. section: C API
Add "Raw" variant of PyTime functions
* :c:func:`PyTime_MonotonicRaw`
* :c:func:`PyTime_PerfCounterRaw`
* :c:func:`PyTime_TimeRaw`
Patch by Victor Stinner.
..
.. date: 2024-04-17-16-48-17
.. gh-issue: 117987
.. nonce: zsvNL1
.. section: C API
Restore functions removed in Python 3.13 alpha 1:
* :c:func:`Py_SetPythonHome`
* :c:func:`Py_SetProgramName`
* :c:func:`PySys_SetArgvEx`
* :c:func:`PySys_SetArgv`
Patch by Victor Stinner.
..
.. date: 2024-04-16-13-34-01
.. gh-issue: 117929
.. nonce: HSr419
.. section: C API
Restore removed :c:func:`PyEval_InitThreads` function. Patch by Victor
Stinner.
..
.. date: 2024-04-08-09-44-29
.. gh-issue: 117534
.. nonce: 54ZE_n
.. section: C API
Improve validation logic in the C implementation of
:meth:`datetime.datetime.fromisoformat` to better handle invalid years.
Patch by Vlad Efanov.
..
.. date: 2024-03-18-17-29-52
.. gh-issue: 68114
.. nonce: W7R_lI
.. section: C API
Fixed skipitem()'s handling of the old 'w' and 'w#' formatters. These are
no longer supported and now raise an exception if used.
..
.. date: 2024-03-13-17-48-24
.. gh-issue: 111997
.. nonce: 8ZbHlA
.. section: C API
Add a C-API for firing monitoring events.