Back to Cpython

3.8.0b1

Misc/NEWS.d/3.8.0b1.rst

3.15.0a843.7 KB
Original Source

.. bpo: 35907 .. date: 2019-05-21-23-20-18 .. nonce: NC_zNK .. release date: 2019-06-04 .. section: Security

:cve:2019-9948: Avoid file reading by disallowing local-file:// and local_file:// URL schemes in URLopener().open() and URLopener().retrieve() of :mod:urllib.request.

..

.. bpo: 33529 .. date: 2019-02-24-18-48-16 .. nonce: wpNNBD .. section: Security

Prevent fold function used in email header encoding from entering infinite loop when there are too many non-ASCII characters in a header.

..

.. bpo: 33164 .. date: 2018-03-30-12-26-47 .. nonce: aO29Cx .. section: Security

Updated blake2 implementation which uses secure memset implementation provided by platform.

..

.. bpo: 35814 .. date: 2019-06-03-00-51-02 .. nonce: Cf7sGY .. section: Core and Builtins

Allow unpacking in the right hand side of annotated assignments. In particular, t: Tuple[int, ...] = x, y, *z is now allowed.

..

.. bpo: 37126 .. date: 2019-06-01-20-03-13 .. nonce: tP6lL4 .. section: Core and Builtins

All structseq objects are now tracked by the garbage collector. Patch by Pablo Galindo.

..

.. bpo: 37122 .. date: 2019-06-01-16-53-41 .. nonce: dZ3-NY .. section: Core and Builtins

Make the co_argcount attribute of code objects represent the total number of positional arguments (including positional-only arguments). The value of co_posonlyargcount can be used to distinguish which arguments are positional only, and the difference (co_argcount - co_posonlyargcount) is the number of positional-or-keyword arguments. Patch by Pablo Galindo.

..

.. bpo: 20092 .. date: 2019-05-31-11-55-49 .. nonce: KIMjBW .. section: Core and Builtins

Constructors of :class:int, :class:float and :class:complex will now use the :meth:~object.__index__ special method, if available and the corresponding method :meth:~object.__int__, :meth:~object.__float__ or :meth:~object.__complex__ is not available.

..

.. bpo: 37087 .. date: 2019-05-30-17-33-55 .. nonce: vElenE .. section: Core and Builtins

Add native thread ID (TID) support to OpenBSD.

..

.. bpo: 26219 .. date: 2019-05-29-22-03-09 .. nonce: Ovf1Qs .. section: Core and Builtins

Implemented per opcode cache mechanism and LOAD_GLOBAL instruction use it. LOAD_GLOBAL is now about 40% faster. Contributed by Yury Selivanov, and Inada Naoki.

..

.. bpo: 37072 .. date: 2019-05-28-18-18-55 .. nonce: 1Hewl3 .. section: Core and Builtins

Fix crash in PyAST_FromNodeObject() when flags is NULL.

..

.. bpo: 37029 .. date: 2019-05-28-17-02-46 .. nonce: MxpgfJ .. section: Core and Builtins

Freeing a great many small objects could take time quadratic in the number of arenas, due to using linear search to keep obmalloc.c's list of usable arenas sorted by order of number of free memory pools. This is accomplished without search now, leaving the worst-case time linear in the number of arenas. For programs where this quite visibly matters (typically with more than 100 thousand small objects alive simultaneously), this can greatly reduce the time needed to release their memory.

..

.. bpo: 26423 .. date: 2019-05-27-18-00-19 .. nonce: RgUOE8 .. section: Core and Builtins

Fix possible overflow in wrap_lenfunc() when sizeof(long) < sizeof(Py_ssize_t) (e.g., 64-bit Windows).

..

.. bpo: 37050 .. date: 2019-05-27-14-46-24 .. nonce: 7MyZGg .. section: Core and Builtins

Improve the AST for "debug" f-strings, which use '=' to print out the source of the expression being evaluated. Delete expr_text from the FormattedValue node, and instead use a Constant string node (possibly merged with adjacent constant expressions inside the f-string).

..

.. bpo: 22385 .. date: 2019-05-25-17-18-26 .. nonce: VeVvhJ .. section: Core and Builtins

The bytes.hex, bytearray.hex, and memoryview.hex methods as well as the binascii.hexlify and b2a_hex functions now have the ability to include an optional separator between hex bytes. This functionality was inspired by MicroPython's hexlify implementation.

..

.. bpo: 26836 .. date: 2019-05-25-08-18-01 .. nonce: rplYWW .. section: Core and Builtins

Add :func:os.memfd_create.

..

.. bpo: 37032 .. date: 2019-05-24-12-38-40 .. nonce: T8rSH8 .. section: Core and Builtins

Added new replace() method to the code type (:class:types.CodeType).

..

.. bpo: 37007 .. date: 2019-05-23-04-19-13 .. nonce: d1SOtF .. section: Core and Builtins

Implement :func:socket.if_nameindex, :func:socket.if_nametoindex, and :func:socket.if_indextoname on Windows.

..

.. bpo: 36829 .. date: 2019-05-22-23-01-29 .. nonce: MfOcUg .. section: Core and Builtins

:c:func:PyErr_WriteUnraisable now creates a traceback object if there is no current traceback. Moreover, call :c:func:PyErr_NormalizeException and :c:func:PyException_SetTraceback to normalize the exception value. Ignore any error.

..

.. bpo: 36878 .. date: 2019-05-22-11-16-16 .. nonce: QwLa3P .. section: Core and Builtins

Only accept text after # type: ignore if the first character is ASCII. This is to disallow things like # type: ignoreé.

..

.. bpo: 36878 .. date: 2019-05-21-16-21-22 .. nonce: EFRHZ3 .. section: Core and Builtins

Store text appearing after a # type: ignore comment in the AST. For example a type ignore like # type: ignore[E1000] will have the string "[E1000]" stored in its AST node.

..

.. bpo: 2180 .. date: 2019-05-17-18-34-30 .. nonce: aBqHeW .. section: Core and Builtins

Treat line continuation at EOF as a SyntaxError by Anthony Sottile.

..

.. bpo: 36907 .. date: 2019-05-17-12-28-24 .. nonce: rk7kgp .. section: Core and Builtins

Fix a crash when calling a C function with a keyword dict (f(**kwargs)) and changing the dict kwargs while that function is running.

..

.. bpo: 36946 .. date: 2019-05-16-23-53-45 .. nonce: qjxr0Y .. section: Core and Builtins

Fix possible signed integer overflow when handling slices.

..

.. bpo: 36826 .. date: 2019-05-15-14-01-09 .. nonce: GLrO3W .. section: Core and Builtins

Add NamedExpression kind support to ast_unparse.c

..

.. bpo: 1875 .. date: 2019-05-15-01-29-29 .. nonce: 9oxXFX .. section: Core and Builtins

A :exc:SyntaxError is now raised if a code blocks that will be optimized away (e.g. if conditions that are always false) contains syntax errors. Patch by Pablo Galindo.

..

.. bpo: 36027 .. date: 2019-05-12-18-46-50 .. nonce: Q4YatQ .. section: Core and Builtins

Allow computation of modular inverses via three-argument pow: the second argument is now permitted to be negative in the case where the first and third arguments are relatively prime.

..

.. bpo: 36861 .. date: 2019-05-08-20-42-40 .. nonce: 72mvZM .. section: Core and Builtins

Update the Unicode database to version 12.1.0.

..

.. bpo: 28866 .. date: 2019-05-08-16-36-51 .. nonce: qCv_bj .. section: Core and Builtins

Avoid caching attributes of classes which type defines mro() to avoid a hard cache invalidation problem.

..

.. bpo: 36851 .. date: 2019-05-08-11-42-06 .. nonce: J7DiCW .. section: Core and Builtins

The FrameType stack is now correctly cleaned up if the execution ends with a return and the stack is not empty.

..

.. bpo: 34616 .. date: 2019-05-07-17-12-37 .. nonce: 0Y0_9r .. section: Core and Builtins

The compile() builtin functions now support the ast.PyCF_ALLOW_TOP_LEVEL_AWAIT flag, which allow to compile sources that contains top-level await, async with or async for. This is useful to evaluate async-code from with an already async functions; for example in a custom REPL.

..

.. bpo: 36842 .. date: 2019-05-07-16-50-12 .. nonce: NYww_N .. section: Core and Builtins

Implement PEP 578, adding sys.audit, io.open_code and related APIs.

..

.. bpo: 27639 .. date: 2019-05-07-15-49-17 .. nonce: b1Ah87 .. section: Core and Builtins

Correct return type for UserList slicing operations. Patch by Michael Blahay, Erick Cervantes, and vaultah

..

.. bpo: 36737 .. date: 2019-05-07-12-18-11 .. nonce: XAo6LY .. section: Core and Builtins

Move PyRuntimeState.warnings into per-interpreter state (via "module state").

..

.. bpo: 36793 .. date: 2019-05-04-16-15-33 .. nonce: Izog4Z .. section: Core and Builtins

Removed __str__ implementations from builtin types :class:bool, :class:int, :class:float, :class:complex and few classes from the standard library. They now inherit __str__() from :class:object.

..

.. bpo: 36817 .. date: 2019-05-02-11-48-08 .. nonce: ZqbJ1J .. section: Core and Builtins

Add a = feature f-strings for debugging. This can precede !s, !r, or !a. It produces the text of the expression, followed by an equal sign, followed by the repr of the value of the expression. So f'{3*9+15=}' would be equal to the string '3*9+15=42'. If = is specified, the default conversion is set to !r, unless a format spec is given, in which case the formatting behavior is unchanged, and format will be used.

..

.. bpo: 24048 .. date: 2019-04-29-03-27-22 .. nonce: vXxUDQ .. section: Core and Builtins

Save the live exception during import.c's remove_module().

..

.. bpo: 27987 .. date: 2019-04-16-11-52-21 .. nonce: n2_DcQ .. section: Core and Builtins

pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on 64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment more often. Patch by Inada Naoki.

..

.. bpo: 36601 .. date: 2019-04-13-16-14-16 .. nonce: mIgS7t .. section: Core and Builtins

A long-since-meaningless check for getpid() == main_pid was removed from Python's internal C signal handler.

..

.. bpo: 36594 .. date: 2019-04-10-18-12-11 .. nonce: fbnJAc .. section: Core and Builtins

Fix incorrect use of %p in format strings. Patch by Zackery Spytz.

..

.. bpo: 36045 .. date: 2019-02-24-12-44-46 .. nonce: RO20OV .. section: Core and Builtins

builtins.help() now prefixes async for async functions.

..

.. bpo: 36084 .. date: 2019-02-22-23-03-20 .. nonce: 86Eh4X .. section: Core and Builtins

Add native thread ID (TID) to threading.Thread objects (supported platforms: Windows, FreeBSD, Linux, macOS)

..

.. bpo: 36035 .. date: 2019-02-22-14-30-19 .. nonce: -6dy1y .. section: Core and Builtins

Added fix for broken symlinks in combination with pathlib

..

.. bpo: 35983 .. date: 2019-02-13-16-47-19 .. nonce: bNxsXv .. section: Core and Builtins

Added new trashcan macros to deal with a double deallocation that could occur when the tp_dealloc of a subclass calls the tp_dealloc of a base class and that base class uses the trashcan mechanism. Patch by Jeroen Demeyer.

..

.. bpo: 20602 .. date: 2018-07-04-16-57-59 .. nonce: sDLElw .. section: Core and Builtins

Do not clear :data:sys.flags and :data:sys.float_info during shutdown. Patch by Zackery Spytz.

..

.. bpo: 26826 .. date: 2018-05-30-23-43-03 .. nonce: NkRzjb .. section: Core and Builtins

Expose :func:copy_file_range as a low level API in the :mod:os module.

..

.. bpo: 32388 .. date: 2017-12-21-20-37-40 .. nonce: 6w-i5t .. section: Core and Builtins

Remove cross-version binary compatibility requirement in tp_flags.

..

.. bpo: 31862 .. date: 2017-10-24-17-26-58 .. nonce: 5Gea8L .. section: Core and Builtins

Port binascii to PEP 489 multiphase initialization. Patch by Marcel Plch.

..

.. bpo: 37128 .. date: 2019-06-01-22-54-03 .. nonce: oGXBWN .. section: Library

Added :func:math.perm.

..

.. bpo: 37120 .. date: 2019-06-01-09-03-32 .. nonce: FOKQLU .. section: Library

Add SSLContext.num_tickets to control the number of TLSv1.3 session tickets.

..

.. bpo: 12202 .. date: 2019-05-31-15-53-34 .. nonce: nobzc9 .. section: Library

Fix the error handling in :meth:!msilib.SummaryInformation.GetProperty. Patch by Zackery Spytz.

..

.. bpo: 26835 .. date: 2019-05-31-11-33-11 .. nonce: xGbUX0 .. section: Library

The fcntl module now contains file sealing constants for sealing of memfds.

..

.. bpo: 29262 .. date: 2019-05-30-21-25-14 .. nonce: LdIzun .. section: Library

Add get_origin() and get_args() introspection helpers to typing module.

..

.. bpo: 12639 .. date: 2019-05-30-16-16-47 .. nonce: TQFOR4 .. section: Library

:meth:!msilib.Directory.start_component no longer fails if keyfile is not None.

..

.. bpo: 36999 .. date: 2019-05-30-13-30-46 .. nonce: EjY_L2 .. section: Library

Add the asyncio.Task.get_coro() method to publicly expose the tasks's coroutine object.

..

.. bpo: 35246 .. date: 2019-05-28-23-17-35 .. nonce: oXT21d .. section: Library

Make :func:asyncio.create_subprocess_exec accept path-like arguments.

..

.. bpo: 35279 .. date: 2019-05-28-19-14-29 .. nonce: PX7yl9 .. section: Library

Change default max_workers of ThreadPoolExecutor from cpu_count() * 5 to min(32, cpu_count() + 4). Previous value was unreasonably large on many cores machines.

..

.. bpo: 37076 .. date: 2019-05-28-12-17-10 .. nonce: Bk2xOs .. section: Library

:func:_thread.start_new_thread now logs uncaught exception raised by the function using :func:sys.unraisablehook, rather than :func:sys.excepthook, so the hook gets access to the function which raised the exception.

..

.. bpo: 33725 .. date: 2019-05-28-01-17-42 .. nonce: fFZoDG .. section: Library

On macOS, the :mod:multiprocessing module now uses spawn start method by default.

..

.. bpo: 37054 .. date: 2019-05-28-01-06-44 .. nonce: sLULGQ .. section: Library

Fix destructor :class:!_pyio.BytesIO and :class:!_pyio.TextIOWrapper: initialize their _buffer attribute as soon as possible (in the class body), because it's used by __del__() which calls close().

..

.. bpo: 37058 .. date: 2019-05-26-19-05-24 .. nonce: jmRu_g .. section: Library

PEP 544: Add Protocol and @runtime_checkable to the typing module.

..

.. bpo: 36933 .. date: 2019-05-26-10-16-55 .. nonce: 4w3eP9 .. section: Library

The functions sys.set_coroutine_wrapper and sys.get_coroutine_wrapper that were deprecated and marked for removal in 3.8 have been removed.

..

.. bpo: 37047 .. date: 2019-05-26-01-20-06 .. nonce: K9epi8 .. section: Library

Handle late binding and attribute access in :class:unittest.mock.AsyncMock setup for autospeccing. Document newly implemented async methods in :class:unittest.mock.MagicMock.

..

.. bpo: 37049 .. date: 2019-05-25-19-48-42 .. nonce: an2LXJ .. section: Library

PEP 589: Add TypedDict to the typing module.

..

.. bpo: 37046 .. date: 2019-05-25-19-12-53 .. nonce: iuhQQj .. section: Library

PEP 586: Add Literal to the typing module.

..

.. bpo: 37045 .. date: 2019-05-25-18-36-50 .. nonce: suHdVJ .. section: Library

PEP 591: Add Final qualifier and @final decorator to the typing module.

..

.. bpo: 37035 .. date: 2019-05-24-18-16-07 .. nonce: HFbJVT .. section: Library

Don't log OSError based exceptions if a fatal error has occurred in asyncio transport. Peer can generate almost any OSError, user cannot avoid these exceptions by fixing own code. Errors are still propagated to user code, it's just logging them is pointless and pollute asyncio logs.

..

.. bpo: 37001 .. date: 2019-05-23-21-10-57 .. nonce: DoLvTK .. section: Library

:func:symtable.symtable now accepts the same input types for source code as the built-in :func:compile function. Patch by Dino Viehland.

..

.. bpo: 37028 .. date: 2019-05-23-18-57-34 .. nonce: Vse6Pj .. section: Library

Implement asyncio REPL

..

.. bpo: 37027 .. date: 2019-05-23-18-46-56 .. nonce: iH4eut .. section: Library

Return safe to use proxy socket object from transport.get_extra_info('socket')

..

.. bpo: 32528 .. date: 2019-05-23-17-37-22 .. nonce: sGnkcl .. section: Library

Make asyncio.CancelledError a BaseException.

This will address the common mistake many asyncio users make: an "except Exception" clause breaking Tasks cancellation.

In addition to this change, we stop inheriting asyncio.TimeoutError and asyncio.InvalidStateError from their concurrent.futures.* counterparts. There's no point for these exceptions to share the inheritance chain.

..

.. bpo: 1230540 .. date: 2019-05-23-01-48-39 .. nonce: oKTNEQ .. section: Library

Add a new :func:threading.excepthook function which handles uncaught :meth:threading.Thread.run exception. It can be overridden to control how uncaught :meth:threading.Thread.run exceptions are handled.

..

.. bpo: 36996 .. date: 2019-05-22-22-55-18 .. nonce: XQx08d .. section: Library

Handle :func:unittest.mock.patch used as a decorator on async functions.

..

.. bpo: 37008 .. date: 2019-05-22-15-26-08 .. nonce: WPbv31 .. section: Library

Add support for calling :func:next with the mock resulting from :func:unittest.mock.mock_open

..

.. bpo: 27737 .. date: 2019-05-22-02-25-31 .. nonce: 7bgKpa .. section: Library

Allow whitespace only header encoding in email.header - by Batuhan Taskaya

..

.. bpo: 36969 .. date: 2019-05-21-12-31-21 .. nonce: u7cxu7 .. section: Library

PDB command args now display positional only arguments. Patch contributed by Rémi Lapeyre.

..

.. bpo: 36969 .. date: 2019-05-20-23-31-20 .. nonce: JkZORP .. section: Library

PDB command args now display keyword only arguments. Patch contributed by Rémi Lapeyre.

..

.. bpo: 36983 .. date: 2019-05-20-20-41-30 .. nonce: hz-fLr .. section: Library

Add missing names to typing.__all__: ChainMap, ForwardRef, OrderedDict - by Anthony Sottile.

..

.. bpo: 36972 .. date: 2019-05-20-17-08-26 .. nonce: 3l3SGc .. section: Library

Add SupportsIndex protocol to the typing module to allow type checking to detect classes that can be passed to hex(), oct() and bin().

..

.. bpo: 32972 .. date: 2019-05-20-14-47-55 .. nonce: LoeUNh .. section: Library

Implement unittest.IsolatedAsyncioTestCase to help testing asyncio-based code.

..

.. bpo: 36952 .. date: 2019-05-20-11-01-28 .. nonce: MgZi7- .. section: Library

:func:fileinput.input and :class:fileinput.FileInput bufsize argument has been removed (was deprecated and ignored since Python 3.6), and as a result the mode and openhook arguments have been made keyword-only.

..

.. bpo: 36952 .. date: 2019-05-20-08-54-41 .. nonce: I_glok .. section: Library

Starting with Python 3.3, importing ABCs from :mod:collections is deprecated, and import should be done from :mod:collections.abc. Still being able to import from :mod:collections was marked for removal in 3.8, but has been delayed to 3.9; documentation and DeprecationWarning clarified.

..

.. bpo: 36949 .. date: 2019-05-19-06-54-26 .. nonce: jBlG9F .. section: Library

Implement repr for WeakSet objects.

..

.. bpo: 36948 .. date: 2019-05-17-21-42-58 .. nonce: vnUDvk .. section: Library

Fix :exc:NameError in :meth:urllib.request.URLopener.retrieve. Patch by Karthikeyan Singaravelan.

..

.. bpo: 33524 .. date: 2019-05-17-11-44-21 .. nonce: 8y_xUU .. section: Library

Fix the folding of email header when the max_line_length is 0 or None and the header contains non-ascii characters. Contributed by Licht Takeuchi (@Licht-T).

..

.. bpo: 24564 .. date: 2019-05-16-23-40-36 .. nonce: lIwV_7 .. section: Library

:func:shutil.copystat now ignores :const:errno.EINVAL on :func:os.setxattr which may occur when copying files on filesystems without extended attributes support.

Original patch by Giampaolo Rodola, updated by Ying Wang.

..

.. bpo: 36888 .. date: 2019-05-16-18-02-08 .. nonce: -H2Dkm .. section: Library

Python child processes can now access the status of their parent process using multiprocessing.process.parent_process

..

.. bpo: 36921 .. date: 2019-05-15-21-35-23 .. nonce: kA1306 .. section: Library

Deprecate @coroutine for sake of async def.

..

.. bpo: 25652 .. date: 2019-05-14-21-39-52 .. nonce: xLw42k .. section: Library

Fix bug in __rmod__ of UserString - by Batuhan Taskaya.

..

.. bpo: 36916 .. date: 2019-05-14-15-39-34 .. nonce: _GPsTt .. section: Library

Remove a message about an unhandled exception in a task when writer.write() is used without await and writer.drain() fails with an exception.

..

.. bpo: 36889 .. date: 2019-05-14-12-25-44 .. nonce: MChPqP .. section: Library

Introduce :class:asyncio.Stream class that merges :class:asyncio.StreamReader and :class:asyncio.StreamWriter functionality. :class:asyncio.Stream can work in readonly, writeonly and readwrite modes. Provide :func:asyncio.connect, :func:asyncio.connect_unix, :func:asyncio.connect_read_pipe and :func:asyncio.connect_write_pipe factories to open :class:asyncio.Stream connections. Provide :class:asyncio.StreamServer and :class:UnixStreamServer to serve servers with asyncio.Stream API. Modify :func:asyncio.create_subprocess_shell and :func:asyncio.create_subprocess_exec to use :class:asyncio.Stream instead of deprecated :class:StreamReader and :class:StreamWriter. Deprecate :class:asyncio.StreamReader and :class:asyncio.StreamWriter. Deprecate usage of private classes, e.g. :class:asyncio.FlowControlMixing and :class:asyncio.StreamReaderProtocol outside of asyncio package.

..

.. bpo: 36845 .. date: 2019-05-14-07-57-02 .. nonce: _GtFFf .. section: Library

Added validation of integer prefixes to the construction of IP networks and interfaces in the ipaddress module.

..

.. bpo: 23378 .. date: 2019-05-14-05-38-22 .. nonce: R25teI .. section: Library

Add an extend action to argparser.

..

.. bpo: 36867 .. date: 2019-05-13-13-02-43 .. nonce: Qh-6mX .. section: Library

Fix a bug making a SharedMemoryManager instance and its parent process use two separate resource_tracker processes.

..

.. bpo: 23896 .. date: 2019-05-13-05-49-15 .. nonce: 8TtUKo .. section: Library

Adds a grammar to lib2to3.pygram that contains exec as a function not as statement.

..

.. bpo: 36895 .. date: 2019-05-12-14-49-13 .. nonce: ZZuuY7 .. section: Library

The function time.clock() was deprecated in 3.3 in favor of time.perf_counter() and marked for removal in 3.8, it has removed.

..

.. bpo: 35545 .. date: 2019-05-11-16-21-29 .. nonce: FcvJvP .. section: Library

Fix asyncio discarding IPv6 scopes when ensuring hostname resolutions internally

..

.. bpo: 36887 .. date: 2019-05-11-14-50-59 .. nonce: XD3f22 .. section: Library

Add new function :func:math.isqrt to compute integer square roots.

..

.. bpo: 34632 .. date: 2019-05-11-02-30-45 .. nonce: 8MXa7T .. section: Library

Introduce the importlib.metadata module with (provisional) support for reading metadata from third-party packages.

..

.. bpo: 36878 .. date: 2019-05-10-22-00-06 .. nonce: iigeqk .. section: Library

When using type_comments=True in ast.parse, treat # type: ignore followed by a non-alphanumeric character and then arbitrary text as a type ignore, instead of requiring nothing but whitespace or another comment. This is to permit formations such as # type: ignore[E1000].

..

.. bpo: 36778 .. date: 2019-05-10-01-06-36 .. nonce: GRqeiS .. section: Library

cp65001 encoding (Windows code page 65001) becomes an alias to utf_8 encoding.

..

.. bpo: 36867 .. date: 2019-05-09-18-12-55 .. nonce: FuwVTi .. section: Library

The multiprocessing.resource_tracker replaces the multiprocessing.semaphore_tracker module. Other than semaphores, resource_tracker also tracks shared_memory segments.

..

.. bpo: 30262 .. date: 2019-05-09-12-38-40 .. nonce: Tu74ak .. section: Library

The Cache and Statement objects of the :mod:sqlite3 module are not exposed to the user. Patch by Aviv Palivoda.

..

.. bpo: 24538 .. date: 2019-05-09-08-35-18 .. nonce: WK8Y-k .. section: Library

In shutil.copystat(), first copy extended file attributes and then file permissions, since extended attributes can only be set on the destination while it is still writeable.

..

.. bpo: 36829 .. date: 2019-05-08-12-51-37 .. nonce: 8enFMA .. section: Library

Add new :func:sys.unraisablehook function which can be overridden to control how "unraisable exceptions" are handled. It is called when an exception has occurred but there is no way for Python to handle it. For example, when a destructor raises an exception or during garbage collection (:func:gc.collect).

..

.. bpo: 36832 .. date: 2019-05-07-15-00-45 .. nonce: TExgqb .. section: Library

Introducing zipfile.Path, a pathlib-compatible wrapper for traversing zip files.

..

.. bpo: 36814 .. date: 2019-05-06-23-13-26 .. nonce: dSeMz_ .. section: Library

Fix an issue where os.posix_spawnp() would incorrectly raise a TypeError when file_actions is None.

..

.. bpo: 33110 .. date: 2019-05-06-22-34-47 .. nonce: rSJSCh .. section: Library

Handle exceptions raised by functions added by concurrent.futures add_done_callback correctly when the Future has already completed.

..

.. bpo: 26903 .. date: 2019-05-06-19-17-04 .. nonce: 4payXb .. section: Library

Limit max_workers in ProcessPoolExecutor to 61 to work around a WaitForMultipleObjects limitation.

..

.. bpo: 36813 .. date: 2019-05-06-18-28-38 .. nonce: NXD0KZ .. section: Library

Fix :class:~logging.handlers.QueueListener to call queue.task_done() upon stopping. Patch by Bar Harel.

..

.. bpo: 36806 .. date: 2019-05-05-16-14-38 .. nonce: rAzF-x .. section: Library

Forbid creation of asyncio stream objects like StreamReader, StreamWriter, Process, and their protocols outside of asyncio package.

..

.. bpo: 36802 .. date: 2019-05-05-10-12-23 .. nonce: HYMc8P .. section: Library

Provide both sync and async calls for StreamWriter.write() and StreamWriter.close()

..

.. bpo: 36801 .. date: 2019-05-05-09-45-44 .. nonce: XrlFFs .. section: Library

Properly handle SSL connection closing in asyncio StreamWriter.drain() call.

..

.. bpo: 36785 .. date: 2019-05-03-20-47-55 .. nonce: PQLnPq .. section: Library

Implement PEP 574 (pickle protocol 5 with out-of-band buffers).

..

.. bpo: 36772 .. date: 2019-05-01-20-41-53 .. nonce: fV2K0F .. section: Library

functools.lru_cache() can now be used as a straight decorator in addition to its existing usage as a function that returns a decorator.

..

.. bpo: 6584 .. date: 2019-04-30-04-34-53 .. nonce: Hzp9-P .. section: Library

Add a :exc:~gzip.BadGzipFile exception to the :mod:gzip module.

..

.. bpo: 36748 .. date: 2019-04-29-15-18-13 .. nonce: YBKWps .. section: Library

Optimized write buffering in C implementation of TextIOWrapper. Writing ASCII string to TextIOWrapper with ascii, latin1, or utf-8 encoding is about 20% faster. Patch by Inada Naoki.

..

.. bpo: 8138 .. date: 2019-04-27-02-54-23 .. nonce: osBRGI .. section: Library

Don't mark wsgiref.simple_server.SimpleServer as multi-threaded since wsgiref.simple_server.WSGIServer is single-threaded.

..

.. bpo: 22640 .. date: 2019-04-26-22-13-26 .. nonce: p3rheW .. section: Library

:func:py_compile.compile now supports silent mode. Patch by Joannah Nanjekye

..

.. bpo: 29183 .. date: 2019-04-22-22-55-29 .. nonce: MILvsk .. section: Library

Fix double exceptions in :class:wsgiref.handlers.BaseHandler by calling its :meth:~wsgiref.handlers.BaseHandler.close method only when no exception is raised.

..

.. bpo: 36548 .. date: 2019-04-07-14-30-10 .. nonce: CJQiYw .. section: Library

Improved the repr of regular expression flags.

..

.. bpo: 36542 .. date: 2019-04-06-12-36-09 .. nonce: Q0qyYV .. section: Library

The signature of Python functions can now be overridden by specifying the __text_signature__ attribute.

..

.. bpo: 36533 .. date: 2019-04-06-00-55-09 .. nonce: kzMyRH .. section: Library

Reinitialize logging.Handler locks in forked child processes instead of attempting to acquire them all in the parent before forking only to be released in the child process. The acquire/release pattern was leading to deadlocks in code that has implemented any form of chained logging handlers that depend upon one another as the lock acquisition order cannot be guaranteed.

..

.. bpo: 35252 .. date: 2019-04-02-19-23-12 .. nonce: VooTVv .. section: Library

Throw a TypeError instead of an AssertionError when using an invalid type annotation with singledispatch.

..

.. bpo: 35900 .. date: 2019-03-27-15-09-00 .. nonce: fh56UU .. section: Library

Allow reduction methods to return a 6-item tuple where the 6th item specifies a custom state-setting method that's called instead of the regular __setstate__ method.

..

.. bpo: 35900 .. date: 2019-03-22-22-40-00 .. nonce: oiee0o .. section: Library

enable custom reduction callback registration for functions and classes in _pickle.c, using the new Pickler's attribute reducer_override

..

.. bpo: 36368 .. date: 2019-03-21-16-00-00 .. nonce: zsRT1 .. section: Library

Fix a bug crashing SharedMemoryManager instances in interactive sessions after a ctrl-c (KeyboardInterrupt) was sent

..

.. bpo: 31904 .. date: 2019-03-18-14-25-36 .. nonce: ds3d67 .. section: Library

Fix mmap fail for VxWorks

..

.. bpo: 27497 .. date: 2019-03-13-10-57-41 .. nonce: JDmIe_ .. section: Library

:meth:csv.DictWriter.writeheader now returns the return value of the underlying :meth:csv.Writer.writerow method. Patch contributed by Ashish Nitin Patil.

..

.. bpo: 36239 .. date: 2019-03-09-23-51-27 .. nonce: BHJ3Ln .. section: Library

Parsing .mo files now ignores comments starting and ending with #-#-#-#-#.

..

.. bpo: 26707 .. date: 2019-03-04-01-28-33 .. nonce: QY4kRZ .. section: Library

Enable plistlib to read and write binary plist files that were created as a KeyedArchive file. Specifically, this allows the plistlib to process 0x80 tokens as UID objects.

..

.. bpo: 31904 .. date: 2019-03-01-17-59-39 .. nonce: 38djdk .. section: Library

Add posix module support for VxWorks.

..

.. bpo: 35125 .. date: 2019-02-15-17-18-50 .. nonce: h0xk0f .. section: Library

Asyncio: Remove inner callback on outer cancellation in shield

..

.. bpo: 35721 .. date: 2019-01-18-16-23-00 .. nonce: d8djAJ .. section: Library

Fix :meth:asyncio.SelectorEventLoop.subprocess_exec leaks file descriptors if Popen fails and called with stdin=subprocess.PIPE. Patch by Niklas Fiekas.

..

.. bpo: 31855 .. date: 2019-01-11-17-09-15 .. nonce: PlhfsX .. section: Library

:func:unittest.mock.mock_open results now respects the argument of read([size]). Patch contributed by Rémi Lapeyre.

..

.. bpo: 35431 .. date: 2019-01-02-19-48-23 .. nonce: FhG6QA .. section: Library

Implement :func:math.comb that returns binomial coefficient, that computes the number of ways to choose k items from n items without repetition and without order. Patch by Yash Aggarwal and Keller Fuchs.

..

.. bpo: 26660 .. date: 2018-11-04-16-39-46 .. nonce: RdXz8a .. section: Library

Fixed permission errors in :class:~tempfile.TemporaryDirectory clean up. Previously TemporaryDirectory.cleanup() failed when non-writeable or non-searchable files or directories were created inside a temporary directory.

..

.. bpo: 34271 .. date: 2018-10-21-17-39-32 .. nonce: P15VLM .. section: Library

Add debugging helpers to ssl module. It's now possible to dump key material and to trace TLS protocol. The default and stdlib contexts also support SSLKEYLOGFILE env var.

..

.. bpo: 26467 .. date: 2018-09-13-20-33-24 .. nonce: cahAk3 .. section: Library

Added AsyncMock to support using unittest to mock asyncio coroutines. Patch by Lisa Roach.

..

.. bpo: 33569 .. date: 2018-08-28-03-00-12 .. nonce: 45YlGG .. section: Library

dataclasses.InitVar: Exposes the type used to create the init var.

..

.. bpo: 34424 .. date: 2018-08-18-14-47-00 .. nonce: wAlRuS .. section: Library

Fix serialization of messages containing encoded strings when the policy.linesep is set to a multi-character string. Patch by Jens Troeger.

..

.. bpo: 34303 .. date: 2018-08-03-09-47-20 .. nonce: tOE2HP .. section: Library

Performance of :func:functools.reduce is slightly improved. Patch by Sergey Fedoseev.

..

.. bpo: 33361 .. date: 2018-07-13-20-17-17 .. nonce: dx2NVn .. section: Library

Fix a bug in :class:codecs.StreamRecoder where seeking might leave old data in a buffer and break subsequent read calls. Patch by Ammar Askar.

..

.. bpo: 22454 .. date: 2018-06-10-17-48-07 .. nonce: qeiy_X .. section: Library

The :mod:shlex module now exposes :func:shlex.join, the inverse of :func:shlex.split. Patch by Bo Bayles.

..

.. bpo: 31922 .. date: 2018-05-30-01-05-50 .. nonce: fobsXJ .. section: Library

:meth:asyncio.AbstractEventLoop.create_datagram_endpoint: Do not connect UDP socket when broadcast is allowed. This allows to receive replies after a UDP broadcast.

..

.. bpo: 24882 .. date: 2018-04-04-14-54-30 .. nonce: urybpa .. section: Library

Change ThreadPoolExecutor to use existing idle threads before spinning up new ones.

..

.. bpo: 31961 .. date: 2018-03-27-13-28-16 .. nonce: GjLoYu .. section: Library

Added support for bytes and path-like objects in :func:subprocess.Popen on Windows. The args parameter now accepts a :term:path-like object if shell is False and a sequence containing bytes and path-like objects. The executable parameter now accepts a bytes and :term:path-like object. The cwd parameter now accepts a bytes object. Based on patch by Anders Lorentsen.

..

.. bpo: 33123 .. date: 2018-03-22-19-13-19 .. nonce: _Y5ooE .. section: Library

:class:pathlib.Path.unlink now accepts a missing_ok parameter to avoid a :exc:FileNotFoundError from being raised. Patch by Robert Buchholz.

..

.. bpo: 32941 .. date: 2018-03-20-20-57-00 .. nonce: 9FU0gL .. section: Library

Allow :class:mmap.mmap objects to access the madvise() system call (through :meth:mmap.mmap.madvise).

..

.. bpo: 22102 .. date: 2018-03-08-16-15-00 .. nonce: th33uD .. section: Library

Added support for ZIP files with disks set to 0. Such files are commonly created by builtin tools on Windows when use ZIP64 extension. Patch by Francisco Facioni.

..

.. bpo: 32515 .. date: 2018-01-07-21-04-50 .. nonce: D8_Wcb .. section: Library

trace.py can now run modules via python3 -m trace -t --module module_name

..

.. bpo: 32299 .. date: 2017-12-13-17-49-56 .. nonce: eqAPWs .. section: Library

Changed :func:unittest.mock.patch.dict to return the patched dictionary when used as context manager. Patch by Vadim Tsander.

..

.. bpo: 27141 .. date: 2017-10-24-00-42-14 .. nonce: zbAgSs .. section: Library

Added a __copy__() to collections.UserList and collections.UserDict in order to correctly implement shallow copying of the objects. Patch by Bar Harel.

..

.. bpo: 31829 .. date: 2017-10-21-12-07-56 .. nonce: 6IhP-O .. section: Library

\r, \0 and \x1a (end-of-file on Windows) are now escaped in protocol 0 pickles of Unicode strings. This allows to load them without loss from files open in text mode in Python 2.

..

.. bpo: 23395 .. date: 2016-07-27-11-06-43 .. nonce: MuCEX9 .. section: Library

_thread.interrupt_main() now avoids setting the Python error status if the SIGINT signal is ignored or not handled by Python.

..

.. bpo: 36896 .. date: 2019-05-31-10-46-36 .. nonce: wkXTW9 .. section: Documentation

Clarify that some types have unstable constructor signature between Python versions.

..

.. bpo: 36686 .. date: 2019-05-27-17-28-58 .. nonce: Zot4sx .. section: Documentation

Improve documentation of the stdin, stdout, and stderr arguments of the asyncio.subprocess_exec function to specify which values are supported. Also mention that decoding as text is not supported.

Add a few tests to verify that the various values passed to the std* arguments actually work.

..

.. bpo: 36984 .. date: 2019-05-20-22-21-17 .. nonce: IjZlmS .. section: Documentation

Improve version added references in typing module - by Anthony Sottile.

..

.. bpo: 36868 .. date: 2019-05-11-17-42-15 .. nonce: yioL0R .. section: Documentation

What's new now mentions SSLContext.hostname_checks_common_name instead of SSLContext.host_flags.

..

.. bpo: 35924 .. date: 2019-05-08-13-17-44 .. nonce: lqbNpW .. section: Documentation

Add a note to the curses.addstr() documentation to warn that multiline strings can cause segfaults because of an ncurses bug.

..

.. bpo: 36783 .. date: 2019-05-07-02-30-51 .. nonce: gpC8E2 .. section: Documentation

Added C API Documentation for Time_FromTimeAndFold and PyDateTime_FromDateAndTimeAndFold as per PEP 495. Patch by Edison Abahurire.

..

.. bpo: 36797 .. date: 2019-05-05-07-58-50 .. nonce: W1X4On .. section: Documentation

More of the legacy distutils documentation has been either pruned, or else more clearly marked as being retained solely until the setuptools documentation covers it independently.

..

.. bpo: 22865 .. date: 2019-02-21-18-13-50 .. nonce: 6hg6J8 .. section: Documentation

Add detail to the documentation on the pty.spawn function.

..

.. bpo: 35397 .. date: 2019-01-09-17-56-35 .. nonce: ZMreIz .. section: Documentation

Remove deprecation and document urllib.parse.unwrap(). Patch contributed by Rémi Lapeyre.

..

.. bpo: 32995 .. date: 2018-10-07-03-04-57 .. nonce: TXN9ur .. section: Documentation

Added the context variable in glossary.

..

.. bpo: 33519 .. date: 2018-05-17-21-02-00 .. nonce: Q7s2FB .. section: Documentation

Clarify that copy() is not part of the MutableSequence ABC.

..

.. bpo: 33482 .. date: 2018-05-13-10-36-37 .. nonce: jalAaQ .. section: Documentation

Make codecs.StreamRecoder.writelines take a list of bytes.

..

.. bpo: 25735 .. date: 2018-04-08-19-09-22 .. nonce: idVQBD .. section: Documentation

Added documentation for func factorial to indicate that returns integer values

..

.. bpo: 20285 .. date: 2017-12-08-20-30-37 .. nonce: cfnp0J .. section: Documentation

Expand object.doc (docstring) to make it clearer. Modify pydoc.py so that help(object) lists object methods (for other classes, help omits methods of the object base class.)

..

.. bpo: 37069 .. date: 2019-06-03-02-30-36 .. nonce: rVtdLk .. section: Tests

Modify test_coroutines, test_cprofile, test_generators, test_raise, test_ssl and test_yield_from to use :func:test.support.catch_unraisable_exception rather than :func:test.support.captured_stderr.

..

.. bpo: 37098 .. date: 2019-05-30-10-57-39 .. nonce: SfXt1M .. section: Tests

Fix test_memfd_create on older Linux Kernels.

..

.. bpo: 37081 .. date: 2019-05-28-17-48-22 .. nonce: qxB-1l .. section: Tests

Test with OpenSSL 1.1.1c

..

.. bpo: 36829 .. date: 2019-05-22-12-57-15 .. nonce: e9mRWC .. section: Tests

Add :func:test.support.catch_unraisable_exception: context manager catching unraisable exception using :func:sys.unraisablehook.

..

.. bpo: 36915 .. date: 2019-05-14-14-12-24 .. nonce: 58b7pH .. section: Tests

The main regrtest process now always removes all temporary directories of worker processes even if they crash or if they are killed on KeyboardInterrupt (CTRL+c).

..

.. bpo: 36719 .. date: 2019-05-10-01-50-30 .. nonce: O84ZWv .. section: Tests

"python3 -m test -jN ..." now continues the execution of next tests when a worker process crash (CHILD_ERROR state). Previously, the test suite stopped immediately. Use --failfast to stop at the first error.

..

.. bpo: 36816 .. date: 2019-05-08-15-55-46 .. nonce: WBKRGZ .. section: Tests

Update Lib/test/selfsigned_pythontestdotnet.pem to match self-signed.pythontest.net's new TLS certificate.

..

.. bpo: 35925 .. date: 2019-05-06-18-29-54 .. nonce: gwQPuC .. section: Tests

Skip httplib and nntplib networking tests when they would otherwise fail due to a modern OS or distro with a default OpenSSL policy of rejecting connections to servers with weak certificates.

..

.. bpo: 36782 .. date: 2019-05-04-21-25-19 .. nonce: h3oPIb .. section: Tests

Add tests for several C API functions in the :mod:datetime module. Patch by Edison Abahurire.

..

.. bpo: 36342 .. date: 2019-03-23-13-58-49 .. nonce: q6Quiq .. section: Tests

Fix test_multiprocessing in test_venv if platform lacks functioning sem_open.

..

.. bpo: 36721 .. date: 2019-05-22-16-19-18 .. nonce: 9aRwfZ .. section: Build

To embed Python into an application, a new --embed option must be passed to python3-config --libs --embed to get -lpython3.8 (link the application to libpython). To support both 3.8 and older, try python3-config --libs --embed first and fallback to python3-config --libs (without --embed) if the previous command fails.

Add a pkg-config python-3.8-embed module to embed Python into an application: pkg-config python-3.8-embed --libs includes -lpython3.8. To support both 3.8 and older, try pkg-config python-X.Y-embed --libs first and fallback to pkg-config python-X.Y --libs (without --embed) if the previous command fails (replace X.Y with the Python version).

On the other hand, pkg-config python3.8 --libs no longer contains -lpython3.8. C extensions must not be linked to libpython (except on Android, case handled by the script); this change is backward incompatible on purpose.

..

.. bpo: 36786 .. date: 2019-05-03-21-08-06 .. nonce: gOLFbD .. section: Build

"make install" now runs compileall in parallel.

..

.. bpo: 36965 .. date: 2019-05-20-20-26-36 .. nonce: KsfI-N .. section: Windows

include of STATUS_CONTROL_C_EXIT without depending on MSC compiler

..

.. bpo: 35926 .. date: 2019-03-01-16-43-45 .. nonce: mLszHo .. section: Windows

Update to OpenSSL 1.1.1b for Windows.

..

.. bpo: 29883 .. date: 2018-09-15-11-36-55 .. nonce: HErerE .. section: Windows

Add Windows support for UDP transports for the Proactor Event Loop. Patch by Adam Meily.

..

.. bpo: 33407 .. date: 2018-08-28-17-23-49 .. nonce: ARG0W_ .. section: Windows

The :c:macro:Py_DEPRECATED() macro has been implemented for MSVC.

..

.. bpo: 36231 .. date: 2019-06-03-05-49-49 .. nonce: RfmW_p .. section: macOS

Support building Python on macOS without /usr/include installed. As of macOS 10.14, system header files are only available within an SDK provided by either the Command Line Tools or the Xcode app.

..

.. bpo: 35610 .. date: 2019-06-02-14-10-52 .. nonce: 0w_v6Y .. section: IDLE

Replace now redundant .context_use_ps1 with .prompt_last_line. This finishes change started in bpo-31858.

..

.. bpo: 37038 .. date: 2019-05-24-18-57-57 .. nonce: AJ3RwQ .. section: IDLE

Make idlelib.run runnable; add test clause.

..

.. bpo: 36958 .. date: 2019-05-19-22-02-22 .. nonce: DZUC6G .. section: IDLE

Print any argument other than None or int passed to SystemExit or sys.exit().

..

.. bpo: 36807 .. date: 2019-05-05-16-27-53 .. nonce: AGNWYJ .. section: IDLE

When saving a file, call os.fsync() so bits are flushed to e.g. USB drive.

..

.. bpo: 32411 .. date: 2017-12-25-18-48-50 .. nonce: vNwDhe .. section: IDLE

In browser.py, remove extraneous sorting by line number since dictionary was created in line number order.

..

.. bpo: 37053 .. date: 2019-05-26-16-47-06 .. nonce: -EYRuz .. section: Tools/Demos

Handle strings like u"bar" correctly in Tools/parser/unparse.py. Patch by Chih-Hsuan Yen.

..

.. bpo: 36763 .. date: 2019-05-27-12-25-25 .. nonce: bHCA9j .. section: C API

Implement the :pep:587 "Python Initialization Configuration".

..

.. bpo: 36379 .. date: 2019-05-24-07-11-08 .. nonce: 8zgoKe .. section: C API

Fix crashes when attempting to use the modulo parameter when __ipow__ is implemented in C.

..

.. bpo: 37107 .. date: 2019-05-22-17-33-52 .. nonce: 8BVPR- .. section: C API

Update :c:func:PyObject_CallMethodObjArgs and _PyObject_CallMethodIdObjArgs to use _PyObject_GetMethod to avoid creating a bound method object in many cases. Patch by Michael J. Sullivan.

..

.. bpo: 36974 .. date: 2019-05-22-15-24-08 .. nonce: TkySRe .. section: C API

Implement :pep:590: Vectorcall: a fast calling protocol for CPython. This is a new protocol to optimize calls of custom callable objects.

..

.. bpo: 36763 .. date: 2019-05-17-19-23-24 .. nonce: TswmDy .. section: C API

Py_Main() now returns the exitcode rather than calling Py_Exit(exitcode) when calling PyErr_Print() if the current exception type is SystemExit.

..

.. bpo: 36922 .. date: 2019-05-15-10-46-55 .. nonce: J3EFK_ .. section: C API

Add new type flag Py_TPFLAGS_METHOD_DESCRIPTOR for objects behaving like unbound methods. These are objects supporting the optimization given by the LOAD_METHOD/CALL_METHOD opcodes. See PEP 590.

..

.. bpo: 36728 .. date: 2019-05-11-03-56-23 .. nonce: FR-dMP .. section: C API

The :c:func:!PyEval_ReInitThreads function has been removed from the C API. It should not be called explicitly: use :c:func:PyOS_AfterFork_Child instead.