.. bpo: 40501 .. date: 2020-05-06-00-41-11 .. nonce: _61wv_ .. release date: 2020-05-19 .. section: Security :mod:`uuid` no longer uses :mod:`ctypes` to load :file:`libuuid` or :file:`rpcrt4.dll` at runtime. .. .. bpo: 40663 .. date: 2020-05-17-20-38-12 .. nonce: u2aiZf .. section: Core and Builtins Correctly generate annotations where parentheses are omitted but required (e.g: ``Type[(str, int, *other))]``. .. .. bpo: 40596 .. date: 2020-05-11-20-53-52 .. nonce: dwOH_X .. section: Core and Builtins Fixed :meth:`str.isidentifier` for non-canonicalized strings containing non-BMP characters on Windows. .. .. bpo: 40593 .. date: 2020-05-11-13-50-52 .. nonce: yuOXj3 .. section: Core and Builtins Improved syntax errors for invalid characters in source code. .. .. bpo: 40585 .. date: 2020-05-11-00-19-42 .. nonce: yusknY .. section: Core and Builtins Fixed a bug when using :func:`codeop.compile_command` that was causing exceptions to be swallowed with the new parser. Patch by Pablo Galindo .. .. bpo: 40566 .. date: 2020-05-09-01-39-16 .. nonce: wlcjW_ .. section: Core and Builtins Apply :pep:`573` to :mod:`abc`. .. .. bpo: 40502 .. date: 2020-05-08-03-25-26 .. nonce: e-VCyL .. section: Core and Builtins Initialize ``n->n_col_offset``. (Patch by Joannah Nanjekye) .. .. bpo: 40527 .. date: 2020-05-06-14-52-35 .. nonce: gTNKuy .. section: Core and Builtins Fix command line argument parsing: no longer write errors multiple times into stderr. .. .. bpo: 1635741 .. date: 2020-05-05-21-11-35 .. nonce: ggwD3C .. section: Core and Builtins Port :mod:`errno` to multiphase initialization (:pep:`489`). .. .. bpo: 40523 .. date: 2020-05-05-20-36-15 .. nonce: hKZVTB .. section: Core and Builtins Add pass-throughs for :func:`hash` and :func:`reversed` to :class:`weakref.proxy` objects. Patch by Pablo Galindo. .. .. bpo: 1635741 .. date: 2020-05-05-03-36-27 .. nonce: ARv1YV .. section: Core and Builtins Port :mod:`syslog` to multiphase initialization (:pep:`489`). .. .. bpo: 40246 .. date: 2020-05-03-23-28-11 .. nonce: c1D7x8 .. section: Core and Builtins Reporting a specialised error message for invalid string prefixes, which was introduced in :issue:`40246`, is being reverted due to backwards compatibility concerns for strings that immediately follow a reserved keyword without whitespace between them. Constructs like `bg="#d00" if clear else"#fca"` were failing to parse, which is not an acceptable breakage on such short notice. .. .. bpo: 40417 .. date: 2020-05-01-19-04-52 .. nonce: Sti2lJ .. section: Core and Builtins Fix imp module deprecation warning when PyImport_ReloadModule is called. Patch by Robert Rouhani. .. .. bpo: 40408 .. date: 2020-05-01-15-36-14 .. nonce: XzQI59 .. section: Core and Builtins Fixed support of nested type variables in GenericAlias (e.g. ``list[list[T]]``). .. .. bpo: 1635741 .. date: 2020-04-30-01-44-42 .. nonce: GKtjqr .. section: Core and Builtins Port _stat module to multiphase initialization (:pep:`489`). .. .. bpo: 29587 .. date: 2020-04-30-00-50-25 .. nonce: oEwSq .. section: Core and Builtins Enable implicit exception chaining when calling :meth:`generator.throw`. .. .. bpo: 40328 .. date: 2020-04-19-22-23-32 .. nonce: gWJ53f .. section: Core and Builtins Add tools for generating mappings headers for CJKCodecs. .. .. bpo: 40228 .. date: 2020-04-08-17-02-35 .. nonce: bRaaJ- .. section: Core and Builtins Setting frame.f_lineno is now robust w.r.t. changes in the source-to-bytecode compiler .. .. bpo: 38880 .. date: 2019-11-22-14-34-47 .. nonce: evcCPa .. section: Core and Builtins Added the ability to list interpreters associated with channel ends in the internal subinterpreters module. .. .. bpo: 37986 .. date: 2019-11-20-09-50-58 .. nonce: o0lmA7 .. section: Core and Builtins Improve performance of :c:func:`PyLong_FromDouble` for values that fit into :c:expr:`long`. .. .. bpo: 40662 .. date: 2020-05-18-12-56-45 .. nonce: dfornR .. section: Library Fixed :func:`ast.get_source_segment` for ast nodes that have incomplete location information. Patch by Irit Katriel. .. .. bpo: 40665 .. date: 2020-05-17-21-56-38 .. nonce: msB7u5 .. section: Library Convert :mod:`bisect` to use Argument Clinic. .. .. bpo: 40536 .. date: 2020-05-17-14-00-12 .. nonce: FCpoRA .. section: Library Added the :func:`~zoneinfo.available_timezones` function to the :mod:`zoneinfo` module. Patch by Paul Ganssle. .. .. bpo: 40645 .. date: 2020-05-16-19-34-38 .. nonce: 7ibMt- .. section: Library The :class:`hmac.HMAC` exposes internal implementation details. The attributes ``digest_cons``, ``inner``, and ``outer`` are deprecated and will be removed in the future. .. .. bpo: 40645 .. date: 2020-05-16-17-05-02 .. nonce: wYSkjT .. section: Library The internal module ``_hashlib`` wraps and exposes OpenSSL's HMAC API. The new code will be used in Python 3.10 after the internal implementation details of the pure Python HMAC module are no longer part of the public API. .. .. bpo: 40637 .. date: 2020-05-15-21-57-10 .. nonce: lb3Bnp .. section: Library Builtin hash modules can now be disabled or selectively enabled with ``configure --with-builtin-hashlib-hashes=sha3,blake1`` or ``--without-builtin-hashlib-hashes``. .. .. bpo: 37630 .. date: 2020-05-15-19-53-18 .. nonce: O5kgAw .. section: Library The :mod:`hashlib` module can now use SHA3 hashes and SHAKE XOF from OpenSSL when available. .. .. bpo: 40479 .. date: 2020-05-15-17-38-21 .. nonce: yamSCh .. section: Library The :mod:`hashlib` now compiles with OpenSSL 3.0.0-alpha2. .. .. bpo: 40257 .. date: 2020-05-13-23-10-25 .. nonce: aR4TGp .. section: Library Revert changes to :func:`inspect.getdoc`. .. .. bpo: 40607 .. date: 2020-05-13-15-32-13 .. nonce: uSPFCi .. section: Library When cancelling a task due to timeout, :meth:`asyncio.wait_for` will now propagate the exception if an error happens during cancellation. Patch by Roman Skurikhin. .. .. bpo: 40612 .. date: 2020-05-13-10-23-29 .. nonce: gOIreM .. section: Library Fix edge cases in SyntaxError formatting. If the offset is <= 0, no caret is printed. If the offset is > line length, the caret is printed pointing just after the last character. .. .. bpo: 40597 .. date: 2020-05-11-19-17-23 .. nonce: 4SGfgm .. section: Library If text content lines are longer than policy.max_line_length, always use a content-encoding to make sure they are wrapped. .. .. bpo: 40571 .. date: 2020-05-09-15-38-25 .. nonce: kOXZGC .. section: Library Added functools.cache() as a simpler, more discoverable way to access the unbounded cache variant of lru_cache(maxsize=None). .. .. bpo: 40503 .. date: 2020-05-08-15-48-39 .. nonce: elZyxc .. section: Library :pep:`615`, the :mod:`zoneinfo` module. Adds support for the IANA time zone database. .. .. bpo: 40397 .. date: 2020-05-07-21-22-04 .. nonce: PVWFAn .. section: Library Removed attributes ``__args__`` and ``__parameters__`` from special generic aliases like ``typing.List`` (not subscripted). .. .. bpo: 40549 .. date: 2020-05-07-20-11-51 .. nonce: 6FiRSV .. section: Library Convert posixmodule.c ("posix" or "nt" module) to the multiphase initialization (PEP 489). .. .. bpo: 31033 .. date: 2020-05-07-06-41-20 .. nonce: waCj3n .. section: Library Add a ``msg`` argument to :meth:`Future.cancel` and :meth:`Task.cancel`. .. .. bpo: 40541 .. date: 2020-05-06-15-36-47 .. nonce: LlYghL .. section: Library Added an optional *counts* parameter to random.sample(). .. .. bpo: 40515 .. date: 2020-05-06-13-51-19 .. nonce: TUCvYB .. section: Library The :mod:`ssl` and :mod:`hashlib` modules now actively check that OpenSSL is build with thread support. Python 3.7.0 made thread support mandatory and no longer works safely with a no-thread builds. .. .. bpo: 31033 .. date: 2020-05-06-02-33-00 .. nonce: aX12pw .. section: Library When a :class:`asyncio.Task` is cancelled, the exception traceback now chains all the way back to where the task was first interrupted. .. .. bpo: 40504 .. date: 2020-05-05-17-12-47 .. nonce: EX6wPn .. section: Library :func:`functools.lru_cache` objects can now be the targets of weakrefs. .. .. bpo: 40559 .. date: 2020-05-05-08-12-51 .. nonce: 112wwa .. section: Library Fix possible memory leak in the C implementation of :class:`asyncio.Task`. .. .. bpo: 40480 .. date: 2020-05-04-21-21-43 .. nonce: mjldWa .. section: Library ``fnmatch.fnmatch()`` could take exponential time in the presence of multiple ``*`` pattern characters. This was repaired by generating more elaborate regular expressions to avoid futile backtracking. .. .. bpo: 40495 .. date: 2020-05-04-11-20-49 .. nonce: TyTc2O .. section: Library :mod:`compileall` is now able to use hardlinks to prevent duplicates in a case when ``.pyc`` files for different optimization levels have the same content. .. .. bpo: 40457 .. date: 2020-05-02-17-17-37 .. nonce: EXReI1 .. section: Library The ssl module now support OpenSSL builds without TLS 1.0 and 1.1 methods. .. .. bpo: 40355 .. date: 2020-05-02-14-24-48 .. nonce: xTujaB .. section: Library Improve error reporting in :func:`ast.literal_eval` in the presence of malformed :class:`ast.Dict` nodes instead of silently ignoring any non-conforming elements. Patch by Curtis Bucher. .. .. bpo: 40465 .. date: 2020-05-02-12-00-28 .. nonce: qfCjOD .. section: Library Deprecated the optional *random* argument to *random.shuffle()*. .. .. bpo: 40459 .. date: 2020-05-02-04-29-31 .. nonce: fSAYVD .. section: Library :func:`platform.win32_ver` now produces correct *ptype* strings instead of empty strings. .. .. bpo: 39435 .. date: 2020-05-01-23-24-25 .. nonce: mgb6ib .. section: Library The first argument of :func:`pickle.loads` is now positional-only. .. .. bpo: 39305 .. date: 2020-05-01-00-22-58 .. nonce: Cuwu_H .. section: Library Update :mod:`!nntplib` to merge :class:`!nntplib.NNTP` and :class:`!nntplib._NNTPBase`. Patch by Donghee Na. .. .. bpo: 32494 .. date: 2020-04-30-22-25-08 .. nonce: 1xaU5l .. section: Library Update :mod:`dbm.gnu` to use gdbm_count if possible when calling :func:`len`. Patch by Donghee Na. .. .. bpo: 40453 .. date: 2020-04-30-22-04-58 .. nonce: ggz7sl .. section: Library Add ``isolated=True`` keyword-only parameter to ``_xxsubinterpreters.create()``. An isolated subinterpreter cannot spawn threads, spawn a child process or call ``os.fork()``. .. .. bpo: 40286 .. date: 2020-04-29-18-02-16 .. nonce: txbQNx .. section: Library Remove ``_random.Random.randbytes()``: the C implementation of ``randbytes()``. Implement the method in Python to ease subclassing: ``randbytes()`` now directly reuses ``getrandbits()``. .. .. bpo: 40394 .. date: 2020-04-28-18-59-48 .. nonce: Yi5uuM .. section: Library Added default arguments to :meth:`difflib.SequenceMatcher.find_longest_match()`. .. .. bpo: 39995 .. date: 2020-04-28-18-25-27 .. nonce: WmA3Gk .. section: Library Fix a race condition in concurrent.futures._ThreadWakeup: access to _ThreadWakeup is now protected with the shutdown lock. .. .. bpo: 30966 .. date: 2020-04-27-20-27-39 .. nonce: Xmtlqu .. section: Library ``Process.shutdown(wait=True)`` of :mod:`concurrent.futures` now closes explicitly the result queue. .. .. bpo: 30966 .. date: 2020-04-27-17-19-09 .. nonce: _5lDx- .. section: Library Add a new :meth:`~multiprocessing.SimpleQueue.close` method to the :class:`~multiprocessing.SimpleQueue` class to explicitly close the queue. .. .. bpo: 39966 .. date: 2020-04-27-14-48-43 .. nonce: N5yXUe .. section: Library Revert bpo-25597. :class:`unittest.mock.MagicMock` with wraps' set uses default return values for magic methods. .. .. bpo: 39791 .. date: 2020-04-27-00-51-40 .. nonce: wv8Dxn .. section: Library Added ``files()`` function to importlib.resources with support for subdirectories in package data, matching backport in importlib_resources 1.5. .. .. bpo: 40375 .. date: 2020-04-25-23-14-11 .. nonce: 5GuK2A .. section: Library :meth:`imaplib.IMAP4.unselect` is added. Patch by Donghee Na. .. .. bpo: 40389 .. date: 2020-04-25-20-00-58 .. nonce: FPA6f0 .. section: Library ``repr()`` now returns ``typing.Optional[T]`` when called for ``typing.Union`` of two types, one of which is ``NoneType``. .. .. bpo: 40291 .. date: 2020-04-14-22-31-27 .. nonce: _O8hXn .. section: Library Add support for CAN_J1939 sockets (available on Linux 5.4+) .. .. bpo: 40273 .. date: 2020-04-14-09-54-35 .. nonce: IN73Ks .. section: Library :class:`types.MappingProxyType` is now reversible. .. .. bpo: 39075 .. date: 2020-04-07-23-44-06 .. nonce: hgck3j .. section: Library The repr for :class:`types.SimpleNamespace` is now insertion ordered rather than alphabetical. .. .. bpo: 40192 .. date: 2020-04-05-04-16-14 .. nonce: nk8uRJ .. section: Library On AIX, :func:`~time.thread_time` is now implemented with ``thread_cputime()`` which has nanosecond resolution, rather than ``clock_gettime(CLOCK_THREAD_CPUTIME_ID)`` which has a resolution of 10 milliseconds. Patch by Batuhan Taskaya. .. .. bpo: 40025 .. date: 2020-03-21-05-26-38 .. nonce: DTLtyq .. section: Library Raise TypeError when _generate_next_value_ is defined after members. Patch by Ethan Onstott. .. .. bpo: 39058 .. date: 2019-12-15-19-17-10 .. nonce: 7ci-vd .. section: Library In the argparse module, the repr for Namespace() and other argument holders now displayed in the order attributes were added. Formerly, it displayed in alphabetical order even though argument order is preserved the user visible parts of the module. .. .. bpo: 24416 .. date: 2019-09-01-15-17-49 .. nonce: G8Ww1U .. section: Library The ``isocalendar()`` methods of :class:`datetime.date` and :class:`datetime.datetime` now return a :term:`named tuple` instead of a :class:`tuple`. .. .. bpo: 34790 .. date: 2020-05-08-20-18-55 .. nonce: t6kW_1 .. section: Documentation Add version of removal for explicit passing of coros to `asyncio.wait()`'s documentation .. .. bpo: 40561 .. date: 2020-05-08-08-39-40 .. nonce: ZMB_2i .. section: Documentation Provide docstrings for webbrowser open functions. .. .. bpo: 40499 .. date: 2020-05-04-14-20-02 .. nonce: tjLSo8 .. section: Documentation Mention that :func:`asyncio.wait` requires a non-empty set of awaitables. .. .. bpo: 39705 .. date: 2020-03-14-18-37-06 .. nonce: nQVqig .. section: Documentation Tutorial example for sorted() in the Loop Techniques section is given a better explanation. Also a new example is included to explain sorted()'s basic behavior. .. .. bpo: 39435 .. date: 2020-01-24-05-42-57 .. nonce: EFcdFU .. section: Documentation Fix an incorrect signature for :func:`pickle.loads` in the docs .. .. bpo: 40055 .. date: 2020-05-15-01-21-44 .. nonce: Xp4aP9 .. section: Tests distutils.tests now saves/restores warnings filters to leave them unchanged. Importing tests imports docutils which imports pkg_resources which adds a warnings filter. .. .. bpo: 40436 .. date: 2020-04-29-16-08-24 .. nonce: gDMnYl .. section: Tests test_gdb and test.pythoninfo now check gdb command exit code. .. .. bpo: 40653 .. date: 2020-05-17-03-33-00 .. nonce: WI8UGn .. section: Build Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling issue. .. .. bpo: 40514 .. date: 2020-05-05-15-39-11 .. nonce: bZZmuS .. section: Build Add ``--with-experimental-isolated-subinterpreters`` build option to ``configure``: better isolate subinterpreters, experimental build mode. .. .. bpo: 40650 .. date: 2020-05-17-00-08-13 .. nonce: 4euMtU .. section: Windows Include winsock2.h in pytime.c for timeval. .. .. bpo: 40458 .. date: 2020-05-01-20-57-57 .. nonce: Eb0ueI .. section: Windows Increase reserved stack space to prevent overflow crash on Windows. .. .. bpo: 39148 .. date: 2020-03-23-19-07-55 .. nonce: W1YJEb .. section: Windows Add IPv6 support to :mod:`asyncio` datagram endpoints in ProactorEventLoop. Change the raised exception for unknown address families to ValueError as it's not coming from Windows API. .. .. bpo: 34956 .. date: 2020-05-18-02-43-11 .. nonce: 35IcGF .. section: macOS When building Python on macOS from source, ``_tkinter`` now links with non-system Tcl and Tk frameworks if they are installed in ``/Library/Frameworks``, as had been the case on older releases of macOS. If a macOS SDK is explicitly configured, by using ``--enable-universalsdk=`` or ``-isysroot``, only the SDK itself is searched. The default behavior can still be overridden with ``--with-tcltk-includes`` and ``--with-tcltk-libs``. .. .. bpo: 35569 .. date: 2020-04-15-00-02-47 .. nonce: 02_1MV .. section: macOS Expose RFC 3542 IPv6 socket options. .. .. bpo: 40479 .. date: 2020-05-15-17-48-25 .. nonce: B1gBl- .. section: Tools/Demos Update multissltest helper to test with latest OpenSSL 1.0.2, 1.1.0, 1.1.1, and 3.0.0-alpha. .. .. bpo: 40431 .. date: 2020-04-29-01-32-17 .. nonce: B_aEZ0 .. section: Tools/Demos Fix a syntax typo in ``turtledemo`` that now raises a ``SyntaxError``. .. .. bpo: 40163 .. date: 2020-04-03-08-32-31 .. nonce: lX8K4B .. section: Tools/Demos Fix multissltest tool. OpenSSL has changed download URL for old releases. The multissltest tool now tries to download from current and old download URLs. .. .. bpo: 39465 .. date: 2020-05-14-00-36-19 .. nonce: 3a5g-X .. section: C API Remove the ``_PyUnicode_ClearStaticStrings()`` function from the C API. .. .. bpo: 38787 .. date: 2020-05-10-16-39-08 .. nonce: XzQ59O .. section: C API Add PyCFunction_CheckExact() macro for exact type checks now that we allow subtypes of PyCFunction, as well as PyCMethod_CheckExact() and PyCMethod_Check() for the new PyCMethod subtype. .. .. bpo: 40545 .. date: 2020-05-07-11-41-13 .. nonce: 51DzF1 .. section: C API Declare ``_PyErr_GetTopmostException()`` with ``PyAPI_FUNC()`` to properly export the function in the C API. The function remains private (``_Py``) prefix. .. .. bpo: 40412 .. date: 2020-05-01-17-28-04 .. nonce: dE0D8N .. section: C API Nullify inittab_copy during finalization, preventing future interpreter initializations in an embedded situation from crashing. Patch by Gregory Szorc. .. .. bpo: 40429 .. date: 2020-04-29-01-39-41 .. nonce: VQfvta .. section: C API The :c:func:`PyThreadState_GetFrame` function now returns a strong reference to the frame. .. .. bpo: 40428 .. date: 2020-04-28-23-17-27 .. nonce: rmtpru .. section: C API Remove the following functions from the C API. Call :c:func:`PyGC_Collect` explicitly to free all free lists. * ``PyAsyncGen_ClearFreeLists()`` * ``PyContext_ClearFreeList()`` * ``PyDict_ClearFreeList()`` * ``PyFloat_ClearFreeList()`` * ``PyFrame_ClearFreeList()`` * ``PyList_ClearFreeList()`` * ``PySet_ClearFreeList()`` * ``PyTuple_ClearFreeList()`` .. .. bpo: 40421 .. date: 2020-04-28-19-29-36 .. nonce: 3uIIaB .. section: C API New :c:func:`PyFrame_GetBack` function: get the frame next outer frame. .. .. bpo: 40421 .. date: 2020-04-28-15-47-58 .. nonce: ZIzOV0 .. section: C API New :c:func:`PyFrame_GetCode` function: return a borrowed reference to the frame code. .. .. bpo: 40217 .. date: 2020-04-27-14-00-38 .. nonce: sgn6c8 .. section: C API Ensure that instances of types created with :c:func:`PyType_FromSpecWithBases` will visit its class object when traversing references in the garbage collector (implemented as an extension of the provided :c:member:`~PyTypeObject.tp_traverse`). Patch by Pablo Galindo. .. .. bpo: 38787 .. date: 2020-01-22-12-38-59 .. nonce: HUH6hd .. section: C API Module C state is now accessible from C-defined heap type methods (:pep:`573`). Patch by Marcel Plch and Petr Viktorin.