.. bpo: 47212 .. date: 2022-04-05-11-29-21 .. nonce: leF4pz .. release date: 2022-04-05 .. section: Core and Builtins Raise :exc:`IndentationError` instead of :exc:`SyntaxError` for a bare ``except`` with no following indent. Improve :exc:`SyntaxError` locations for an un-parenthesized generator used as arguments. Patch by Matthieu Dartiailh. .. .. bpo: 47186 .. date: 2022-04-04-17-41-10 .. nonce: aQWoSh .. section: Core and Builtins Replace :opcode:`JUMP_IF_NOT_EG_MATCH` by :opcode:`CHECK_EG_MATCH` + jump. .. .. bpo: 47176 .. date: 2022-04-02-14-32-21 .. nonce: kTygYI .. section: Core and Builtins Emscripten builds cannot handle signals in the usual way due to platform limitations. Python can now handle signals. To use, set Module.Py_EmscriptenSignalBuffer to be a single byte SharedArrayBuffer and set Py_EMSCRIPTEN_SIGNAL_HANDLING to 1. Writing a number into the SharedArrayBuffer will cause the corresponding signal to be raised into the Python thread. .. .. bpo: 47186 .. date: 2022-04-01-11-53-59 .. nonce: RBCPk8 .. section: Core and Builtins Replace :opcode:`JUMP_IF_NOT_EXC_MATCH` by :opcode:`CHECK_EXC_MATCH` + jump. .. .. bpo: 47120 .. date: 2022-03-31-21-43-57 .. nonce: NgxQbA .. section: Core and Builtins Replace the absolute jump opcode :opcode:`JUMP_NO_INTERRUPT` by the relative :opcode:`JUMP_BACKWARD_NO_INTERRUPT`. .. .. bpo: 46841 .. date: 2022-03-31-15-57-42 .. nonce: U-25Z6 .. section: Core and Builtins Avoid unnecessary allocations when comparing code objects. .. .. bpo: 47182 .. date: 2022-03-31-15-37-02 .. nonce: e_4SsC .. section: Core and Builtins Fix a crash when using a named unicode character like ``"\N{digit nine}"`` after the main interpreter has been initialized a second time. .. .. bpo: 47162 .. date: 2022-03-30-13-13-25 .. nonce: yDJMUm .. section: Core and Builtins WebAssembly cannot deal with bad function pointer casts (different count or types of arguments). Python can now use call trampolines to mitigate the problem. Define :c:macro:`PY_CALL_TRAMPOLINE` to enable call trampolines. .. .. bpo: 46775 .. date: 2022-03-30-02-36-25 .. nonce: e3Oxqf .. section: Core and Builtins Some Windows system error codes(>= 10000) are now mapped into the correct errno and may now raise a subclass of :exc:`OSError`. Patch by Donghee Na. .. .. bpo: 47129 .. date: 2022-03-26-16-35-57 .. nonce: hDg2Vt .. section: Core and Builtins Improve error messages in f-string syntax errors concerning empty expressions. .. .. bpo: 47117 .. date: 2022-03-26-15-45-57 .. nonce: 60W6GQ .. section: Core and Builtins Fix a crash if we fail to decode characters in interactive mode if the tokenizer buffers are uninitialized. Patch by Pablo Galindo. .. .. bpo: 47127 .. date: 2022-03-26-12-21-53 .. nonce: Mh86RB .. section: Core and Builtins Speed up calls to c functions with keyword arguments by 25% with specialization. Patch by Kumar Aditya. .. .. bpo: 47120 .. date: 2022-03-25-21-51-10 .. nonce: 9YJ-Xw .. section: Core and Builtins Replaced :opcode:`JUMP_ABSOLUTE` by the relative jump :opcode:`JUMP_BACKWARD`. .. .. bpo: 42197 .. date: 2022-03-22-15-12-28 .. nonce: SwrrFO .. section: Core and Builtins :c:func:`!PyFrame_FastToLocalsWithError` and :c:func:`!PyFrame_LocalsToFast` are no longer called during profiling nor tracing. C code can access the ``f_locals`` attribute of :c:type:`PyFrameObject` by calling :c:func:`PyFrame_GetLocals`. .. .. bpo: 47070 .. date: 2022-03-19-21-50-59 .. nonce: wPcsQh .. section: Core and Builtins Improve performance of ``array_inplace_repeat`` by reducing the number of invocations of ``memcpy``. Refactor the ``repeat`` and inplace ``repeat`` methods of ``array``, ``bytes``, ``bytearray`` and ``unicodeobject`` to use the common ``_PyBytes_Repeat``. .. .. bpo: 47053 .. date: 2022-03-17-22-47-29 .. nonce: QAXk8Q .. section: Core and Builtins Reduce de-optimization in the specialized ``BINARY_OP_INPLACE_ADD_UNICODE`` opcode. .. .. bpo: 47045 .. date: 2022-03-17-16-25-57 .. nonce: xQgHul .. section: Core and Builtins Remove the ``f_state`` field from the _PyInterpreterFrame struct. Add the ``owner`` field to the _PyInterpreterFrame struct to make ownership explicit to simplify clearing and deallocing frames and generators. .. .. bpo: 46968 .. date: 2022-03-17-14-22-23 .. nonce: 4gz4NA .. section: Core and Builtins Check for the existence of the "sys/auxv.h" header in :mod:`faulthandler` to avoid compilation problems in systems where this header doesn't exist. Patch by Pablo Galindo .. .. bpo: 46329 .. date: 2022-03-16-12-19-25 .. nonce: 9oS0HT .. section: Core and Builtins Use low bit of ``LOAD_GLOBAL`` to indicate whether to push a ``NULL`` before the global. Helps streamline the call sequence a bit. .. .. bpo: 46841 .. date: 2022-03-16-11-05-35 .. nonce: yUoIHg .. section: Core and Builtins Quicken bytecode in-place by storing it as part of the corresponding ``PyCodeObject``. .. .. bpo: 47012 .. date: 2022-03-14-11-15-11 .. nonce: 5L6NoE .. section: Core and Builtins Speed up iteration of :class:`bytes` and :class:`bytearray` by 30%. Patch by Kumar Aditya. .. .. bpo: 47009 .. date: 2022-03-14-09-45-10 .. nonce: ZI05b5 .. section: Core and Builtins Improved the performance of :meth:`list.append` and list comprehensions by optimizing for the common case, where no resize is needed. Patch by Dennis Sweeney. .. .. bpo: 47005 .. date: 2022-03-13-21-04-20 .. nonce: OHBfCc .. section: Core and Builtins Improve performance of ``bytearray_repeat`` and ``bytearray_irepeat`` by reducing the number of invocations of ``memcpy``. .. .. bpo: 46829 .. date: 2022-03-12-21-07-21 .. nonce: cpGoPV .. section: Core and Builtins Deprecate passing a message into :meth:`asyncio.Future.cancel` and :meth:`asyncio.Task.cancel` .. .. bpo: 46993 .. date: 2022-03-12-09-44-31 .. nonce: -13hGo .. section: Core and Builtins Speed up :class:`bytearray` creation from :class:`list` and :class:`tuple` by 40%. Patch by Kumar Aditya. .. .. bpo: 39829 .. date: 2022-03-11-09-39-01 .. nonce: mlW3Su .. section: Core and Builtins Removed the ``__len__()`` call when initializing a list and moved initializing to ``list_extend``. Patch by Jeremiah Pascual. .. .. bpo: 46944 .. date: 2022-03-08-10-50-42 .. nonce: cnaIK3 .. section: Core and Builtins Speed up throwing exception in generator with :c:macro:`METH_FASTCALL` calling convention. Patch by Kumar Aditya. .. .. bpo: 46841 .. date: 2022-03-07-15-54-39 .. nonce: 7wG92r .. section: Core and Builtins Modify :opcode:`STORE_SUBSCR` to use an inline cache entry (rather than its oparg) as an adaptive counter. .. .. bpo: 46841 .. date: 2022-03-06-10-37-36 .. nonce: O12Pba .. section: Core and Builtins Use inline caching for :opcode:`!PRECALL` and :opcode:`CALL`, and remove the internal machinery for managing the (now unused) non-inline caches. .. .. bpo: 46881 .. date: 2022-03-03-09-08-17 .. nonce: ckD4tT .. section: Core and Builtins Statically allocate and initialize the latin1 characters. .. .. bpo: 46838 .. date: 2022-02-25-22-42-30 .. nonce: RB6kEy .. section: Core and Builtins Improve syntax errors for incorrect function definitions. Patch by Pablo Galindo .. .. bpo: 43721 .. date: 2022-02-01-10-05-27 .. nonce: -1XAIo .. section: Core and Builtins Fix docstrings of :attr:`~property.getter`, :attr:`~property.setter`, and :attr:`~property.deleter` to clarify that they create a new copy of the property. .. .. bpo: 43224 .. date: 2022-01-20-16-48-09 .. nonce: WDihrT .. section: Core and Builtins Make grammar changes required for PEP 646. .. .. bpo: 47208 .. date: 2022-04-04-08-54-31 .. nonce: cOh9xZ .. section: Library Allow vendors to override :const:`CTYPES_MAX_ARGCOUNT`. .. .. bpo: 23689 .. date: 2022-04-03-13-19-08 .. nonce: TFSc3E .. section: Library :mod:`re` module: fix memory leak when a match is terminated by a signal or memory allocation failure. Patch by Ma Lin. .. .. bpo: 47167 .. date: 2022-03-30-18-35-50 .. nonce: nCNHsB .. section: Library Allow overriding a future compliance check in :class:`asyncio.Task`. .. .. bpo: 47151 .. date: 2022-03-30-01-17-43 .. nonce: z-nQkR .. section: Library When subprocess tries to use vfork, it now falls back to fork if vfork returns an error. This allows use in situations where vfork isn't allowed by the OS kernel. .. .. bpo: 47152 .. date: 2022-03-29-19-14-53 .. nonce: 5rl5ZK .. section: Library Convert the :mod:`re` module into a package. Deprecate modules ``sre_compile``, ``sre_constants`` and ``sre_parse``. .. .. bpo: 4833 .. date: 2022-03-28-20-16-37 .. nonce: 2vSUE5 .. section: Library Add :meth:`ZipFile.mkdir` .. .. bpo: 27929 .. date: 2022-03-28-13-35-50 .. nonce: j5mAmV .. section: Library Fix :meth:`asyncio.loop.sock_connect` to only resolve names for :const:`socket.AF_INET` or :const:`socket.AF_INET6` families. Resolution may not make sense for other families, like :const:`socket.AF_BLUETOOTH` and :const:`socket.AF_UNIX`. .. .. bpo: 14265 .. date: 2022-03-27-10-41-24 .. nonce: OBMlAi .. section: Library Adds the fully qualified test name to unittest output .. .. bpo: 47061 .. date: 2022-03-26-13-14-43 .. nonce: QLxbC6 .. section: Library Deprecate the aifc module. .. .. bpo: 39622 .. date: 2022-03-25-01-27-25 .. nonce: ieBIMp .. section: Library Handle Ctrl+C in asyncio programs to interrupt the main task. .. .. bpo: 47101 .. date: 2022-03-23-15-31-02 .. nonce: rVSld- .. section: Library :const:`hashlib.algorithms_available` now lists only algorithms that are provided by activated crypto providers on OpenSSL 3.0. Legacy algorithms are not listed unless the legacy provider has been loaded into the default OSSL context. .. .. bpo: 47099 .. date: 2022-03-23-14-16-38 .. nonce: 2raait .. section: Library All :exc:`URLError` exception messages raised in :class:`urllib.request.URLopener` now contain a colon between ``ftp error`` and the rest of the message. Previously, :func:`~urllib.request.URLopener.open_ftp` missed the colon. Patch by Oleg Iarygin. .. .. bpo: 47099 .. date: 2022-03-23-13-55-41 .. nonce: P6quRP .. section: Library Exception chaining is changed from :func:`Exception.with_traceback`/:func:`sys.exc_info` to :pep:`3134`. Patch by Oleg Iarygin. .. .. bpo: 47095 .. date: 2022-03-23-12-07-26 .. nonce: P3YTrh .. section: Library :mod:`hashlib`'s internal ``_blake2`` module now prefers ``libb2`` from https://www.blake2.net/ over Python's vendored copy of blake2. .. .. bpo: 47098 .. date: 2022-03-23-10-07-41 .. nonce: 7AN_qp .. section: Library The Keccak Code Package for :mod:`hashlib`'s internal ``_sha3`` module has been replaced with tiny_sha3. The module is used as fallback when Python is built without OpenSSL. .. .. bpo: 47088 .. date: 2022-03-22-19-18-31 .. nonce: JM1kNI .. section: Library Implement :data:`typing.LiteralString`, part of :pep:`675`. Patch by Jelle Zijlstra. .. .. bpo: 42885 .. date: 2022-03-21-08-32-19 .. nonce: LCnTTp .. section: Library Optimize :func:`re.search`, :func:`re.split`, :func:`re.findall`, :func:`re.finditer` and :func:`re.sub` for regular expressions starting with ``\A`` or ``^``. .. .. bpo: 23691 .. date: 2022-03-20-22-13-24 .. nonce: Nc2TrW .. section: Library Protect the :func:`re.finditer` iterator from re-entering. .. .. bpo: 47067 .. date: 2022-03-20-17-15-56 .. nonce: XXLnje .. section: Library Optimize calling ``GenericAlias`` objects by using :pep:`590` ``vectorcall`` and by replacing ``PyObject_SetAttrString`` with ``PyObject_SetAttr``. .. .. bpo: 28080 .. date: 2022-03-20-15-54-41 .. nonce: kn35Vk .. section: Library Add the *metadata_encoding* parameter in the :class:`zipfile.ZipFile` constructor and the ``--metadata-encoding`` option in the :mod:`zipfile` CLI to allow reading zipfiles using non-standard codecs to encode the filenames within the archive. .. .. bpo: 47000 .. date: 2022-03-20-13-00-08 .. nonce: p8HpG0 .. section: Library Make :func:`io.text_encoding` returns "utf-8" when UTF-8 mode is enabled. .. .. bpo: 42369 .. date: 2022-03-19-19-56-04 .. nonce: Ok828t .. section: Library Fix thread safety of :meth:`zipfile._SharedFile.tell` to avoid a "zipfile.BadZipFile: Bad CRC-32 for file" exception when reading a :class:`ZipFile` from multiple threads. .. .. bpo: 38256 .. date: 2022-03-19-15-54-41 .. nonce: FoMbjE .. section: Library Fix :func:`binascii.crc32` when it is compiled to use zlib'c crc32 to work properly on inputs 4+GiB in length instead of returning the wrong result. The workaround prior to this was to always feed the function data in increments smaller than 4GiB or to just call the zlib module function. We also have :func:`binascii.crc32` release the GIL when computing on larger inputs as :func:`zlib.crc32` and :mod:`hashlib` do. This also boosts performance on Windows as it now uses the zlib crc32 implementation for :func:`binascii.crc32` for a 2-3x speedup. That the stdlib has a crc32 API in two modules is a known historical oddity. This moves us closer to a single implementation behind them. .. .. bpo: 47066 .. date: 2022-03-19-14-12-23 .. nonce: we3YFx .. section: Library Global inline flags (e.g. ``(?i)``) can now only be used at the start of the regular expressions. Using them not at the start of expression was deprecated since Python 3.6. .. .. bpo: 39394 .. date: 2022-03-19-13-38-29 .. nonce: 7j6WL6 .. section: Library A warning about inline flags not at the start of the regular expression now contains the position of the flag. .. .. bpo: 433030 .. date: 2022-03-19-08-42-57 .. nonce: UTwRX7 .. section: Library Add support of atomic grouping (``(?>...)``) and possessive quantifiers (``*+``, ``++``, ``?+``, ``{m,n}+``) in :mod:`regular expressions `. .. .. bpo: 47062 .. date: 2022-03-18-22-46-18 .. nonce: RNc99_ .. section: Library Implement :class:`asyncio.Runner` context manager. .. .. bpo: 46382 .. date: 2022-03-18-17-25-57 .. nonce: zQUJ66 .. section: Library :func:`~dataclasses.dataclass` ``slots=True`` now correctly omits slots already defined in base classes. Patch by Arie Bovenberg. .. .. bpo: 47057 .. date: 2022-03-18-14-22-38 .. nonce: n-IHbt .. section: Library Use FASTCALL convention for ``FutureIter.throw()`` .. .. bpo: 47061 .. date: 2022-03-18-13-30-40 .. nonce: etLHK5 .. section: Library Deprecate the various modules listed by :pep:`594`: aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu, xdrlib .. .. bpo: 34790 .. date: 2022-03-17-19-38-40 .. nonce: zQIiVJ .. section: Library Remove passing coroutine objects to :func:`asyncio.wait`. .. .. bpo: 47039 .. date: 2022-03-17-01-54-13 .. nonce: 0Yxv0K .. section: Library Normalize ``repr()`` of asyncio future and task objects. .. .. bpo: 2604 .. date: 2022-03-16-18-25-19 .. nonce: jeopdL .. section: Library Fix bug where doctests using globals would fail when run multiple times. .. .. bpo: 45150 .. date: 2022-03-16-11-52-52 .. nonce: kYbIME .. section: Library Add :func:`hashlib.file_digest` helper for efficient hashing of file object. .. .. bpo: 34861 .. date: 2022-03-16-08-49-12 .. nonce: p8ugVg .. section: Library Made cumtime the default sorting key for cProfile .. .. bpo: 45997 .. date: 2022-03-15-18-32-12 .. nonce: 4n2aVU .. section: Library Fix :class:`asyncio.Semaphore` re-aquiring FIFO order. .. .. bpo: 47022 .. date: 2022-03-15-09-29-52 .. nonce: uaEDcI .. section: Library The :mod:`!asynchat`, :mod:`!asyncore` and :mod:`!smtpd` modules have been deprecated since at least Python 3.6. Their documentation and deprecation warnings and have now been updated to note they will removed in Python 3.12 (:pep:`594`). .. .. bpo: 43253 .. date: 2022-03-15-07-53-45 .. nonce: rjdLFj .. section: Library Fix a crash when closing transports where the underlying socket handle is already invalid on the Proactor event loop. .. .. bpo: 40280 .. date: 2022-03-14-09-26-42 .. nonce: 2-k8TV .. section: Library :func:`select.select` now passes ``NULL`` to ``select`` for each empty fdset. .. .. bpo: 47004 .. date: 2022-03-13-15-04-05 .. nonce: SyYpxd .. section: Library Apply bugfixes from importlib_metadata 4.11.3, including bugfix for EntryPoint.extras, which was returning match objects and not the extras strings. .. .. bpo: 46998 .. date: 2022-03-13-08-52-58 .. nonce: cHh-9O .. section: Library Allow subclassing of :class:`typing.Any`. Patch by Shantanu Jain. .. .. bpo: 46995 .. date: 2022-03-12-13-50-42 .. nonce: 2kdNDg .. section: Library Deprecate missing :meth:`asyncio.Task.set_name` for third-party task implementations, schedule making it mandatory in Python 3.13. .. .. bpo: 46994 .. date: 2022-03-12-12-34-13 .. nonce: d7hPdz .. section: Library Accept explicit contextvars.Context in :func:`asyncio.create_task` and :meth:`asyncio.loop.create_task`. .. .. bpo: 46981 .. date: 2022-03-12-11-30-42 .. nonce: ltWCxH .. section: Library ``typing.get_args(typing.Tuple[()])`` now returns ``()`` instead of ``((),)``. .. .. bpo: 46968 .. date: 2022-03-11-17-56-25 .. nonce: pPVvNo .. section: Library Add ``os.sysconf_names['SC_MINSIGSTKSZ']``. .. .. bpo: 46985 .. date: 2022-03-11-13-34-16 .. nonce: BgoMr2 .. section: Library Upgrade pip wheel bundled with ensurepip (pip 22.0.4) .. .. bpo: 46968 .. date: 2022-03-10-14-51-11 .. nonce: ym2QxL .. section: Library :mod:`faulthandler`: On Linux 5.14 and newer, dynamically determine size of signal handler stack size CPython allocates using ``getauxval(AT_MINSIGSTKSZ)``. This changes allows for Python extension's request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids Xeon processor to succeed, unblocking use of the ISA in frameworks. .. .. bpo: 46917 .. date: 2022-03-10-14-47-16 .. nonce: s19zcy .. section: Library The :data:`math.nan` value is now always available. Patch by Victor Stinner. .. .. bpo: 46955 .. date: 2022-03-08-22-41-59 .. nonce: IOoonN .. section: Library Expose :class:`asyncio.base_events.Server` as :class:`asyncio.Server`. Patch by Stefan Zabka. .. .. bpo: 23325 .. date: 2022-03-08-11-34-06 .. nonce: 3VQnfo .. section: Library The :mod:`signal` module no longer assumes that :const:`~signal.SIG_IGN` and :const:`~signal.SIG_DFL` are small int singletons. .. .. bpo: 46932 .. date: 2022-03-07-20-20-34 .. nonce: xbarAs .. section: Library Update bundled libexpat to 2.4.7 .. .. bpo: 46933 .. date: 2022-03-05-21-51-31 .. nonce: 6yzWtb .. section: Library The :mod:`pwd` module is now optional. :func:`os.path.expanduser` returns the path when the :mod:`pwd` module is not available. .. .. bpo: 40059 .. date: 2022-02-23-01-11-08 .. nonce: Iwc9UH .. section: Library :pep:`680`, the :mod:`tomllib` module. Adds support for parsing TOML. .. .. bpo: 464471 .. date: 2022-02-21-11-41-23 .. nonce: fL06TV .. section: Library :func:`asyncio.timeout` and :func:`asyncio.timeout_at` context managers added. Patch by Tin Tvrtković and Andrew Svetlov. .. .. bpo: 46805 .. date: 2022-02-20-23-03-32 .. nonce: HZ8xWG .. section: Library Added raw datagram socket functions for asyncio: :meth:`~asyncio.AbstractEventLoop.sock_sendto`, :meth:`~asyncio.AbstractEventLoop.sock_recvfrom` and :meth:`~asyncio.AbstractEventLoop.sock_recvfrom_into`. .. .. bpo: 46644 .. date: 2022-02-05-22-14-44 .. nonce: P--1Cz .. section: Library No longer require valid typeforms to be callable. This allows :data:`typing.Annotated` to wrap :data:`typing.ParamSpecArgs` and :data:`dataclasses.InitVar`. Patch by Gregory Beauregard. .. .. bpo: 46581 .. date: 2022-02-01-11-32-47 .. nonce: t7Zw65 .. section: Library Brings :class:`ParamSpec` propagation for :class:`GenericAlias` in line with :class:`Concatenate` (and others). .. .. bpo: 45413 .. date: 2022-01-31-15-19-38 .. nonce: 1vaS0V .. section: Library Define *posix_venv* and *nt_venv* :ref:`sysconfig installation schemes ` to be used for bootstrapping new virtual environments. Add *venv* sysconfig installation scheme to get the appropriate one of the above. The schemes are identical to the pre-existing *posix_prefix* and *nt* install schemes. The :mod:`venv` module now uses the *venv* scheme to create new virtual environments instead of hardcoding the paths depending only on the platform. Downstream Python distributors customizing the *posix_prefix* or *nt* install scheme in a way that is not compatible with the install scheme used in virtual environments are encouraged not to customize the *venv* schemes. When Python itself runs in a virtual environment, :func:`sysconfig.get_default_scheme` and :func:`sysconfig.get_preferred_scheme` with ``key="prefix"`` returns *venv*. .. .. bpo: 43224 .. date: 2022-01-30-22-05-53 .. nonce: E-eT22 .. section: Library Implement support for PEP 646 in typing.py. .. .. bpo: 43224 .. date: 2022-01-30-20-32-40 .. nonce: zqrQsj .. section: Library Allow unpacking types.GenericAlias objects, e.g. ``*tuple[int, str]``. .. .. bpo: 46557 .. date: 2022-01-28-01-23-25 .. nonce: XSbhyQ .. section: Library Warnings captured by the logging module are now logged without a format string to prevent systems that group logs by the msg argument from grouping captured warnings together. .. .. bpo: 41370 .. date: 2022-01-27-11-54-16 .. nonce: gYxCPE .. section: Library :func:`typing.get_type_hints` now supports evaluating strings as forward references in :ref:`PEP 585 generic aliases `. .. .. bpo: 46607 .. date: 2022-01-26-18-30-34 .. nonce: xnhT4a .. section: Library Add :exc:`DeprecationWarning` to :class:`!LegacyInterpolation`, deprecated in the docstring since Python 3.2. Will be removed in Python 3.13. Use :class:`BasicInterpolation` or :class:`ExtendedInterpolation` instead. .. .. bpo: 26120 .. date: 2022-01-25-15-45-04 .. nonce: YzrBMO .. section: Library :mod:`pydoc` now excludes __future__ imports from the module's data items. .. .. bpo: 46480 .. date: 2022-01-23-16-33-07 .. nonce: E4jHlh .. section: Library Add :func:`typing.assert_type`. Patch by Jelle Zijlstra. .. .. bpo: 46421 .. date: 2022-01-18-01-29-38 .. nonce: 9LdmNr .. section: Library Fix a unittest issue where if the command was invoked as ``python -m unittest`` and the filename(s) began with a dot (.), a ``ValueError`` is returned. .. .. bpo: 46245 .. date: 2022-01-03-20-12-14 .. nonce: 3w4RlA .. section: Library Add optional parameter *dir_fd* in :func:`shutil.rmtree`. .. .. bpo: 22859 .. date: 2021-12-29-19-37-49 .. nonce: AixHW7 .. section: Library :meth:`!unittest.TestProgram.usageExit` is marked as deprecated, to be removed in Python 3.13. .. .. bpo: 46170 .. date: 2021-12-26-14-45-51 .. nonce: AQ7kSM .. section: Library Improve the error message when you try to subclass an instance of :class:`typing.NewType`. .. .. bpo: 40296 .. date: 2021-12-25-14-13-14 .. nonce: p0YVGB .. section: Library Fix supporting generic aliases in :mod:`pydoc`. .. .. bpo: 20392 .. date: 2021-12-22-12-02-27 .. nonce: CLAFIp .. section: Library Fix inconsistency with uppercase file extensions in :meth:`MimeTypes.guess_type`. Patch by Kumar Aditya. .. .. bpo: 46030 .. date: 2021-12-10-07-07-47 .. nonce: UN349J .. section: Library Add ``LOCAL_CREDS``, ``LOCAL_CREDS_PERSISTENT`` and ``SCM_CREDS2`` FreeBSD constants to the socket module. .. .. bpo: 44439 .. date: 2021-11-08-20-27-41 .. nonce: I_8qro .. section: Library Fix ``.write()`` method of a member file in ``ZipFile``, when the input data is an object that supports the buffer protocol, the file length may be wrong. .. .. bpo: 45171 .. date: 2021-09-11-16-06-54 .. nonce: ec597j .. section: Library Fix handling of the ``stacklevel`` argument to logging functions in the :mod:`logging` module so that it is consistent across all logging functions and, as advertised, similar to the ``stacklevel`` argument used in :meth:`~warnings.warn`. .. .. bpo: 24959 .. date: 2021-09-06-15-46-53 .. nonce: UVFgiO .. section: Library Fix bug where :mod:`unittest` sometimes drops frames from tracebacks of exceptions raised in tests. .. .. bpo: 44859 .. date: 2021-08-10-00-05-53 .. nonce: 9e9_3V .. section: Library Raise more accurate and :pep:`249` compatible exceptions in :mod:`sqlite3`. * Raise :exc:`~sqlite3.InterfaceError` instead of :exc:`~sqlite3.ProgrammingError` for ``SQLITE_MISUSE`` errors. * Don't overwrite :exc:`BufferError` with :exc:`ValueError` when conversion to BLOB fails. * Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`~sqlite3.Warning` if user tries to :meth:`~sqlite3.Cursor.execute` more than one SQL statement. * Raise :exc:`~sqlite3.ProgrammingError` instead of :exc:`ValueError` if an SQL query contains null characters. .. .. bpo: 44493 .. date: 2021-07-26-10-46-49 .. nonce: xp3CRH .. section: Library Add missing terminated NUL in sockaddr_un's length This was potentially observable when using non-abstract AF_UNIX datagram sockets to processes written in another programming language. .. .. bpo: 41930 .. date: 2021-06-17-00-02-58 .. nonce: JS6fsd .. section: Library Add :meth:`~sqlite3.Connection.serialize` and :meth:`~sqlite3.Connection.deserialize` support to :mod:`sqlite3`. Patch by Erlend E. Aasland. .. .. bpo: 33178 .. date: 2021-04-20-16-48-07 .. nonce: kSnWwb .. section: Library Added :class:`ctypes.BigEndianUnion` and :class:`ctypes.LittleEndianUnion` classes, as originally documented in the library docs but not yet implemented. .. .. bpo: 43352 .. date: 2021-03-31-15-22-45 .. nonce: nSjMuE .. section: Library Add an Barrier object in synchronization primitives of *asyncio* Lib in order to be consistent with Barrier from *threading* and *multiprocessing* libs* .. .. bpo: 35859 .. date: 2019-03-14-09-08-25 .. nonce: 8lFdLe .. section: Library :mod:`re` module, fix a few bugs about capturing group. In rare cases, capturing group gets an incorrect string. Patch by Ma Lin. .. .. bpo: 45099 .. date: 2022-03-29-13-25-49 .. nonce: dagdhx .. section: Documentation Document internal :mod:`asyncio` API. .. .. bpo: 47126 .. date: 2022-03-26-12-20-16 .. nonce: p6_Ovm .. section: Documentation Update PEP URLs to :pep:`676`'s new canonical form. .. .. bpo: 47040 .. date: 2022-03-17-13-35-28 .. nonce: 4Dn48U .. section: Documentation Clarified the old Python versions compatibility note of :func:`binascii.crc32` / :func:`zlib.adler32` / :func:`zlib.crc32` functions. .. .. bpo: 46033 .. date: 2022-01-03-18-50-39 .. nonce: 7WeF0f .. section: Documentation Clarify ``for`` statement execution in its doc. .. .. bpo: 45790 .. date: 2021-11-12-11-03-55 .. nonce: 6yuhe8 .. section: Documentation Adjust inaccurate phrasing in :doc:`../extending/newtypes_tutorial` about the ``ob_base`` field and the macros used to access its contents. .. .. bpo: 42340 .. date: 2020-11-12-21-26-31 .. nonce: apumUL .. section: Documentation Document that in some circumstances :exc:`KeyboardInterrupt` may cause the code to enter an inconsistent state. Provided a sample workaround to avoid it if needed. .. .. bpo: 41233 .. date: 2020-07-07-22-54-51 .. nonce: lyUJ8L .. section: Documentation Link the errnos referenced in ``Doc/library/exceptions.rst`` to their respective section in ``Doc/library/errno.rst``, and vice versa. Previously this was only done for EINTR and InterruptedError. Patch by Yan "yyyyyyyan" Orestes. .. .. bpo: 47205 .. date: 2022-04-03-14-38-21 .. nonce: hbbTnh .. section: Tests Skip test for :func:`~os.sched_getaffinity` and :func:`~os.sched_setaffinity` error case on FreeBSD. .. .. bpo: 46126 .. date: 2022-03-26-11-41-19 .. nonce: q14Ioy .. section: Tests Restore 'descriptions' when running tests internally. .. .. bpo: 47104 .. date: 2022-03-23-22-45-51 .. nonce: _esUq8 .. section: Tests Rewrite :func:`asyncio.to_thread` tests to use :class:`unittest.IsolatedAsyncioTestCase`. .. .. bpo: 40280 .. date: 2022-03-19-10-25-04 .. nonce: wBRSel .. section: Tests The test suite is now passing on the Emscripten platform. All fork, socket, and subprocess-based tests are skipped. .. .. bpo: 47037 .. date: 2022-03-16-21-29-30 .. nonce: xcrLpJ .. section: Tests Skip ``strftime("%4Y")`` feature test on Windows. It can cause an assertion error in debug builds. .. .. bpo: 46587 .. date: 2022-03-14-17-10-35 .. nonce: ASDsJX .. section: Tests Skip tests if platform's ``strftime`` does not support non-portable glibc extensions. .. .. bpo: 47015 .. date: 2022-03-13-23-43-40 .. nonce: FjmCsz .. section: Tests A test case for :func:`os.sendfile` is converted from deprecated :mod:`!asyncore` (see :pep:`594`) to :mod:`asyncio`. Patch by Oleg Iarygin. .. .. bpo: 40280 .. date: 2022-04-02-17-52-38 .. nonce: U8Dd0H .. section: Build Add configure option :option:`--enable-wasm-dynamic-linking` to enable ``dlopen`` and MAIN_MODULE / SIDE_MODULE on ``wasm32-emscripten``. .. .. bpo: 46023 .. date: 2022-04-01-16-12-53 .. nonce: 1Z1OcC .. section: Build ``makesetup`` now detects and skips all duplicated module definitions. The first entry wins. .. .. bpo: 40280 .. date: 2022-03-24-12-12-35 .. nonce: eAQWrM .. section: Build Add SOABI ``wasm32-emscripten`` for Emscripten and ``wasm32-wasi`` for WASI on 32bit WASM as well as ``wasm64`` counter parts. .. .. bpo: 47032 .. date: 2022-03-16-00-37-40 .. nonce: tsS9KE .. section: Build Ensure Windows install builds fail correctly with a non-zero exit code when part of the build fails. .. .. bpo: 47024 .. date: 2022-03-15-09-28-55 .. nonce: t7-dcu .. section: Build Update OpenSSL to 1.1.1n for macOS installers and all Windows builds. .. .. bpo: 46996 .. date: 2022-03-12-18-09-31 .. nonce: SygzVz .. section: Build The :mod:`tkinter` package now requires Tcl/Tk version 8.5.12 or newer. .. .. bpo: 46973 .. date: 2022-03-10-14-30-39 .. nonce: _LEvnc .. section: Build Add ``regen-configure`` make target to regenerate configure script with Christian's container image ``quay.io/tiran/cpython_autoconf:269``. .. .. bpo: 46917 .. date: 2022-03-10-09-37-05 .. nonce: fry4aK .. section: Build Building Python now requires support of IEEE 754 floating-point numbers. Patch by Victor Stinner. .. .. bpo: 45774 .. date: 2022-03-04-21-24-02 .. nonce: 9AhC0r .. section: Build ``configure`` now verifies that all SQLite C APIs needed for the :mod:`sqlite3` extension module are found. .. .. bpo: 47194 .. date: 2022-04-01-14-57-40 .. nonce: IB0XL4 .. section: Windows Update ``zlib`` to v1.2.12 to resolve :cve:`2018-25032`. .. .. bpo: 47171 .. date: 2022-03-30-19-55-00 .. nonce: MbqCWn .. section: Windows Enables installing the :file:`py.exe` launcher on Windows ARM64. .. .. bpo: 46566 .. date: 2022-03-23-12-51-46 .. nonce: 4x4a7e .. section: Windows Upgraded :ref:`launcher` to support a new ``-V:company/tag`` argument for full :pep:`514` support and to detect ARM64 installs. The ``-64`` suffix on arguments is deprecated, but still selects any non-32-bit install. Setting :envvar:`PYLAUNCHER_ALLOW_INSTALL` and specifying a version that is not installed will attempt to install the requested version from the Microsoft Store. .. .. bpo: 47086 .. date: 2022-03-21-20-45-01 .. nonce: bIuKlF .. section: Windows The installer for Windows now includes documentation as loose HTML files rather than a single compiled :file:`.chm` file. .. .. bpo: 46907 .. date: 2022-03-13-11-18-41 .. nonce: YLzxBM .. section: Windows Update Windows installer to use SQLite 3.38.1. .. .. bpo: 44549 .. date: 2022-03-07-17-46-40 .. nonce: SPrGS9 .. section: Windows Update bzip2 to 1.0.8 in Windows builds to mitigate :cve:`2016-3189` and :cve:`2019-12900`. .. .. bpo: 46948 .. date: 2022-03-07-16-34-11 .. nonce: Ufd4tG .. section: Windows Prevent :cve:`2022-26488` by ensuring the Add to PATH option in the Windows installer uses the correct path when being repaired. .. .. bpo: 46890 .. date: 2022-03-17-09-55-02 .. nonce: GX-3OO .. section: macOS Fix a regression in the setting of ``sys._base_executable`` in framework builds, and thereby fix a regression in :mod:`venv` virtual environments with such builds. .. .. bpo: 46907 .. date: 2022-03-13-11-11-31 .. nonce: Ql0z1E .. section: macOS Update macOS installer to SQLite 3.38.1. .. .. bpo: 40280 .. date: 2022-04-03-11-47-45 .. nonce: Q_IJik .. section: Tools/Demos Replace Emscripten's limited shell with Katie Bell's browser-ui REPL from python-wasm project. .. .. bpo: 40421 .. date: 2022-03-25-13-40-46 .. nonce: wJREl2 .. section: C API Add ``PyFrame_GetBuiltins``, ``PyFrame_GetGenerator`` and ``PyFrame_GetGlobals`` C-API functions to access frame object attributes safely from C code. .. .. bpo: 46850 .. date: 2022-03-22-16-59-34 .. nonce: lmEKLy .. section: C API Move the private ``_PyFrameEvalFunction`` type, and private ``_PyInterpreterState_GetEvalFrameFunc()`` and ``_PyInterpreterState_SetEvalFrameFunc()`` functions to the internal C API. The ``_PyFrameEvalFunction`` callback function type now uses the ``_PyInterpreterFrame`` type which is part of the internal C API. Patch by Victor Stinner. .. .. bpo: 46850 .. date: 2022-03-22-16-48-02 .. nonce: 7M5dO7 .. section: C API Move the private undocumented ``_PyEval_EvalFrameDefault()`` function to the internal C API. The function now uses the ``_PyInterpreterFrame`` type which is part of the internal C API. Patch by Victor Stinner. .. .. bpo: 46850 .. date: 2022-03-21-02-26-27 .. nonce: hU3c-O .. section: C API Remove the private undocumented function ``_PyEval_CallTracing()`` from the C API. Call the public :func:`sys.call_tracing` function instead. Patch by Victor Stinner. .. .. bpo: 46850 .. date: 2022-03-21-01-30-14 .. nonce: Tfxde5 .. section: C API Remove the private undocumented function ``_PyEval_GetCoroutineOriginTrackingDepth()`` from the C API. Call the public :func:`sys.get_coroutine_origin_tracking_depth` function instead. Patch by Victor Stinner. .. .. bpo: 46850 .. date: 2022-03-21-00-41-29 .. nonce: rOt771 .. section: C API Remove the following private undocumented functions from the C API: * ``_PyEval_GetAsyncGenFirstiter()`` * ``_PyEval_GetAsyncGenFinalizer()`` * ``_PyEval_SetAsyncGenFirstiter()`` * ``_PyEval_SetAsyncGenFinalizer()`` Call the public :func:`sys.get_asyncgen_hooks` and :func:`sys.set_asyncgen_hooks` functions instead. Patch by Victor Stinner. .. .. bpo: 46987 .. date: 2022-03-12-18-37-06 .. nonce: LWcwyN .. section: C API Remove private functions ``_PySys_GetObjectId()`` and ``_PySys_SetObjectId()``. Patch by Donghee Na. .. .. bpo: 46906 .. date: 2022-03-03-11-12-33 .. nonce: -olyBI .. section: C API Add new functions to pack and unpack C double (serialize and deserialize): :c:func:`PyFloat_Pack2`, :c:func:`PyFloat_Pack4`, :c:func:`PyFloat_Pack8`, :c:func:`PyFloat_Unpack2`, :c:func:`PyFloat_Unpack4` and :c:func:`PyFloat_Unpack8`. Patch by Victor Stinner.