.. 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 ` 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 ` 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-19-08-50-48 .. gh-issue: 102511 .. nonce: qDEB66 .. section: Core and Builtins Speed up :func:`os.path.splitroot` with a native implementation. .. .. 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 ` 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-18-59-25 .. gh-issue: 115874 .. nonce: c3xG-E .. section: Core and Builtins Fixed a possible segfault during garbage collection of ``_asyncio.FutureIter`` objects .. .. 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-04-08-19-30-38 .. gh-issue: 117641 .. nonce: oaBGSJ .. section: Core and Builtins Speedup :func:`os.path.commonpath` on Unix. .. .. date: 2024-04-08-14-33-38 .. gh-issue: 117636 .. nonce: exnRKd .. section: Core and Builtins Speedup :func:`os.path.join`. .. .. date: 2024-04-07-18-42-09 .. gh-issue: 117607 .. nonce: C978BD .. section: Core and Builtins Speedup :func:`os.path.relpath`. .. .. 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 :attr:`__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:`~tkinter.PhotoImage.read` to read an image from a file and :meth:`~tkinter.PhotoImage.data` to get the image data. Add *background* and *grayscale* parameters to :class:`!PhotoImage` method :meth:`~tkinter.PhotoImage.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 ` 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-18-00-35-11 .. gh-issue: 117535 .. nonce: 0m6SIM .. section: Library Change the unknown filename of :mod:`warnings` from ``sys`` to ```` 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.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-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.Stream.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-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-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-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:`~tkinter.wantobject` to ``2`` before creating the :class:`~tkinter.Tk` object or call the :meth:`~tkinter.Tk.wantobject` 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.wantobject` 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.