Python 3.9.0a5

This commit is contained in:
Łukasz Langa 2020-03-23 17:19:13 +01:00
parent 9a81ab107a
commit dcd4c4f9c9
No known key found for this signature in database
GPG Key ID: B26995E310250568
129 changed files with 1381 additions and 315 deletions

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 9
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 4
#define PY_RELEASE_SERIAL 5
/* Version as a string */
#define PY_VERSION "3.9.0a4+"
#define PY_VERSION "3.9.0a5"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Feb 25 13:20:31 2020
# Autogenerated by Sphinx on Mon Mar 23 17:18:04 2020
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -1476,8 +1476,8 @@ topics = {'assert': 'The "assert" statement\n'
' | starred_and_keywords ["," '
'keywords_arguments]\n'
' | keywords_arguments\n'
' positional_arguments ::= ["*"] expression ("," ["*"] '
'expression)*\n'
' positional_arguments ::= positional_item ("," positional_item)*\n'
' positional_item ::= assignment_expression | "*" expression\n'
' starred_and_keywords ::= ("*" expression | keyword_item)\n'
' ("," "*" expression | "," '
'keyword_item)*\n'
@ -1717,6 +1717,10 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
'function decorators. The result is then bound to the class name.\n'
'\n'
'Changed in version 3.9: Classes may be decorated with any valid\n'
'"assignment_expression". Previously, the grammar was much more\n'
'restrictive; see **PEP 614** for details.\n'
'\n'
'**Programmers note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@ -2187,8 +2191,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
' if_stmt ::= "if" expression ":" suite\n'
' ("elif" expression ":" suite)*\n'
' if_stmt ::= "if" assignment_expression ":" suite\n'
' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the '
@ -2211,7 +2215,7 @@ topics = {'assert': 'The "assert" statement\n'
'an\n'
'expression is true:\n'
'\n'
' while_stmt ::= "while" expression ":" suite\n'
' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, '
@ -2626,8 +2630,8 @@ topics = {'assert': 'The "assert" statement\n'
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
' decorators ::= decorator+\n'
' decorator ::= "@" dotted_name ["(" '
'[argument_list [","]] ")"] NEWLINE\n'
' decorator ::= "@" assignment_expression '
'NEWLINE\n'
' dotted_name ::= identifier ("." identifier)*\n'
' parameter_list ::= defparameter ("," '
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
@ -2681,6 +2685,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
'Changed in version 3.9: Functions may be decorated with any '
'valid\n'
'"assignment_expression". Previously, the grammar was much more\n'
'restrictive; see **PEP 614** for details.\n'
'\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@ -2882,6 +2891,10 @@ topics = {'assert': 'The "assert" statement\n'
'function decorators. The result is then bound to the class '
'name.\n'
'\n'
'Changed in version 3.9: Classes may be decorated with any valid\n'
'"assignment_expression". Previously, the grammar was much more\n'
'restrictive; see **PEP 614** for details.\n'
'\n'
'**Programmers note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@ -4403,8 +4416,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
' if_stmt ::= "if" expression ":" suite\n'
' ("elif" expression ":" suite)*\n'
' if_stmt ::= "if" assignment_expression ":" suite\n'
' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@ -4824,7 +4837,7 @@ topics = {'assert': 'The "assert" statement\n'
'[","]\n'
' starred_expression ::= expression | (starred_item ",")* '
'[starred_item]\n'
' starred_item ::= expression | "*" or_expr\n'
' starred_item ::= assignment_expression | "*" or_expr\n'
'\n'
'Except when part of a list or set display, an expression list\n'
'containing at least one comma yields a tuple. The length of '
@ -5134,11 +5147,11 @@ topics = {'assert': 'The "assert" statement\n'
'only\n'
'supported by the numeric types.\n'
'\n'
'A general convention is that an empty format string ("""") '
'A general convention is that an empty format specification '
'produces\n'
'the same result as if you had called "str()" on the value. '
'A non-empty\n'
'format string typically modifies the result.\n'
'format specification typically modifies the result.\n'
'\n'
'The general form of a *standard format specifier* is:\n'
'\n'
@ -5693,8 +5706,8 @@ topics = {'assert': 'The "assert" statement\n'
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
' decorators ::= decorator+\n'
' decorator ::= "@" dotted_name ["(" '
'[argument_list [","]] ")"] NEWLINE\n'
' decorator ::= "@" assignment_expression '
'NEWLINE\n'
' dotted_name ::= identifier ("." identifier)*\n'
' parameter_list ::= defparameter ("," '
'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
@ -5748,6 +5761,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
'Changed in version 3.9: Functions may be decorated with any '
'valid\n'
'"assignment_expression". Previously, the grammar was much more\n'
'restrictive; see **PEP 614** for details.\n'
'\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@ -6119,8 +6137,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
' if_stmt ::= "if" expression ":" suite\n'
' ("elif" expression ":" suite)*\n'
' if_stmt ::= "if" assignment_expression ":" suite\n'
' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@ -9018,7 +9036,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'If the metaclass has no "__prepare__" attribute, then the '
'class\n'
'namespace is initialised as an empty "dict()".\n'
'namespace is initialised as an empty ordered mapping.\n'
'\n'
'See also:\n'
'\n'
@ -11196,10 +11214,17 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' the operands provided. (The interpreter will then try the\n'
' reflected operation, or some other fallback, depending on the\n'
' operator.) Its truth value is true.\n'
' operator.) It should not be evaluated in a boolean context.\n'
'\n'
' See Implementing the arithmetic operations for more details.\n'
'\n'
' Changed in version 3.9: Evaluating "NotImplemented" in a '
'boolean\n'
' context is deprecated. While it currently evaluates as true, it\n'
' will emit a "DeprecationWarning". It will raise a "TypeError" in '
'a\n'
' future version of Python.\n'
'\n'
'Ellipsis\n'
' This type has a single value. There is a single object with '
'this\n'
@ -12487,6 +12512,29 @@ topics = {'assert': 'The "assert" statement\n'
' >>> d.values() == d.values()\n'
' False\n'
'\n'
' d | other\n'
'\n'
' Create a new dictionary with the merged keys and '
'values of *d*\n'
' and *other*, which must both be dictionaries. The '
'values of\n'
' *other* take priority when *d* and *other* share '
'keys.\n'
'\n'
' New in version 3.9.\n'
'\n'
' d |= other\n'
'\n'
' Update the dictionary *d* with keys and values from '
'*other*,\n'
' which may be either a *mapping* or an *iterable* of '
'key/value\n'
' pairs. The values of *other* take priority when *d* '
'and *other*\n'
' share keys.\n'
'\n'
' New in version 3.9.\n'
'\n'
' Dictionaries compare equal if and only if they have the '
'same "(key,\n'
' value)" pairs (regardless of ordering). Order comparisons '
@ -13616,7 +13664,7 @@ topics = {'assert': 'The "assert" statement\n'
'The "while" statement is used for repeated execution as long as an\n'
'expression is true:\n'
'\n'
' while_stmt ::= "while" expression ":" suite\n'
' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, executes '

1310
Misc/NEWS.d/3.9.0a5.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
Add ``--with-platlibdir`` option to the configure script: name of the
platform-specific library directory, stored in the new :attr:`sys.platlibdir`
attribute. It is used to build the path of platform-specific dynamic libraries
and the path of the standard library. It is equal to ``"lib"`` on most
platforms. On Fedora and SuSE, it is equal to ``"lib64"`` on 64-bit platforms.
Patch by Jan Matějek, Matěj Cepl, Charalampos Stratakis and Victor Stinner.

View File

@ -1,3 +0,0 @@
setup.py now uses a basic implementation of the :mod:`subprocess` module if
the :mod:`subprocess` module is not available: before required C extension
modules are built.

View File

@ -1 +0,0 @@
Fix build with DTrace but without additional DFLAGS.

View File

@ -1,5 +0,0 @@
Add a private API to get and set the frame evaluation function: add
:c:func:`_PyInterpreterState_GetEvalFrameFunc` and
:c:func:`_PyInterpreterState_SetEvalFrameFunc` C functions.
The :c:type:`_PyFrameEvalFunction` function type now takes a *tstate*
parameter.

View File

@ -1,2 +0,0 @@
Fixed segfault in ``Py_BuildValue()`` called with a format containing "#"
and undefined PY_SSIZE_T_CLEAN whwn an exception is set.

View File

@ -1,10 +0,0 @@
Extension modules: :c:member:`~PyModuleDef.m_traverse`,
:c:member:`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions
of :c:type:`PyModuleDef` are no longer called if the module state was requested
but is not allocated yet. This is the case immediately after the module is
created and before the module is executed (:c:data:`Py_mod_exec` function). More
precisely, these functions are not called if :c:member:`~PyModuleDef.m_size` is
greater than 0 and the module state (as returned by
:c:func:`PyModule_GetState`) is ``NULL``.
Extension modules without module state (``m_size <= 0``) are not affected.

View File

@ -1,3 +0,0 @@
The :c:func:`Py_FatalError` function is replaced with a macro which logs
automatically the name of the current function, unless the ``Py_LIMITED_API``
macro is defined.

View File

@ -1,2 +0,0 @@
:c:func:`PyNumber_ToBase` now raises a :exc:`SystemError` instead of
crashing when called with invalid base.

View File

@ -1,2 +0,0 @@
:c:macro:`Py_UNREACHABLE` is now implemented with
``__builtin_unreachable()`` and analogs in release mode.

View File

@ -1,3 +0,0 @@
Deprecated :c:func:`PyEval_InitThreads` and
:c:func:`PyEval_ThreadsInitialized`. Calling :c:func:`PyEval_InitThreads` now
does nothing.

View File

@ -1,2 +0,0 @@
:c:func:`PyDescr_NewMethod` and :c:func:`PyCFunction_NewEx` now include the
method name in the SystemError "bad call flags" error message to ease debug.

View File

@ -1,3 +0,0 @@
Py_TRASHCAN_BEGIN_CONDITION and Py_TRASHCAN_END macro no longer access
PyThreadState attributes, but call new private _PyTrash_begin() and
_PyTrash_end() functions which hide implementation details.

View File

@ -1,4 +0,0 @@
Move the static inline function flavor of Py_EnterRecursiveCall() and
Py_LeaveRecursiveCall() to the internal C API: they access PyThreadState
attributes. The limited C API provides regular functions which hide
implementation details.

View File

@ -1,2 +0,0 @@
If :c:func:`PySys_Audit` fails in :c:func:`PyEval_SetProfile` or
:c:func:`PyEval_SetTrace`, log the error as an unraisable exception.

View File

@ -1 +0,0 @@
Add :c:func:`PyInterpreterState_Get` function to the limited C API.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyThreadState_GetInterpreter`: get the interpreter of a Python
thread state.

View File

@ -1 +0,0 @@
Add _PyArg_NoKwnames helper function. Patch by Dong-hee Na.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyThreadState_GetFrame` function: get the current frame of a
Python thread state.

View File

@ -1,3 +0,0 @@
Remove ``_PyRuntime.getframe`` hook and remove ``_PyThreadState_GetFrame``
macro which was an alias to ``_PyRuntime.getframe``. They were only exposed
by the internal C API. Remove also ``PyThreadFrameGetter`` type.

View File

@ -1 +0,0 @@
Add :c:func:`PyModule_AddType` helper function: add a type to a module. Patch by Dong-hee Na.

View File

@ -1,2 +0,0 @@
Don't leak environment variable ``__PYVENV_LAUNCHER__`` into the interpreter
session on macOS.

View File

@ -1,2 +0,0 @@
Using :data:`NotImplemented` in a boolean context has been deprecated. Patch
contributed by Josh Rosenberg.

View File

@ -1,2 +0,0 @@
Do not optimize annotations if 'from __future__ import annotations' is used.
Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Fix unparsing of ext slices with no items (``foo[:,]``). Patch by Batuhan
Taskaya.

View File

@ -1,2 +0,0 @@
Optimize :c:func:`PyUnicode_AsUTF8` and :c:func:`PyUnicode_AsUTF8AndSize`
slightly when they need to create internal UTF-8 cache.

View File

@ -1 +0,0 @@
Port _locale extension module to multiphase initialization (:pep:`489`).

View File

@ -1 +0,0 @@
Tweak import deadlock detection code to not deadlock itself.

View File

@ -1,2 +0,0 @@
Relax :term:`decorator` grammar restrictions to allow any valid expression
(:pep:`614`).

View File

@ -1 +0,0 @@
Port audioop extension module to multiphase initialization (:pep:`489`).

View File

@ -1,2 +0,0 @@
Fixed a crash due to incorrect handling of weak references in
``collections.OrderedDict`` classes. Patch by Pablo Galindo.

View File

@ -1,6 +0,0 @@
Fix race condition where threads created by PyGILState_Ensure() could get a
duplicate id.
This affects consumers of tstate->id like the contextvar caching machinery,
which could return invalid cached objects under heavy thread load (observed
in embedded scenarios).

View File

@ -1,3 +0,0 @@
Fix a possible :exc:`SystemError` in ``math.{atan2,copysign,remainder}()``
when the first argument cannot be converted to a :class:`float`. Patch by
Zachary Spytz.

View File

@ -1,5 +0,0 @@
Fix :c:func:`PyEval_RestoreThread` random crash at exit with daemon threads.
It now accesses the ``_PyRuntime`` variable directly instead of using
``tstate->interp->runtime``, since ``tstate`` can be a dangling pointer after
:c:func:`Py_Finalize` has been called. Moreover, the daemon thread now exits
before trying to take the GIL.

View File

@ -1,4 +0,0 @@
Fix a bug that was causing incomplete results when calling
``pathlib.Path.glob`` in the presence of symlinks that point
to files where the user does not have read access. Patch by Pablo
Galindo and Matt Wozniski.

View File

@ -1,3 +0,0 @@
Clear the frames of daemon threads earlier during the Python shutdown to
call objects destructors. So "unclosed file" resource warnings are now
emitted for daemon threads in a more reliable way.

View File

@ -1 +0,0 @@
Update Unicode database to Unicode version 13.0.0.

View File

@ -1,2 +0,0 @@
Chaged list overallocation strategy. It no longer overallocates if the new
size is closer to overalocated size than to the old size and adds padding.

View File

@ -1,2 +0,0 @@
Speed up calls to ``tuple()`` by using the :pep:`590` ``vectorcall`` calling
convention. Patch by Dong-hee Na.

View File

@ -1,2 +0,0 @@
Allow executing asynchronous comprehensions on the top level when the
``PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag is given. Patch by Batuhan Taskaya.

View File

@ -1,3 +0,0 @@
Correctly raise ``SyntaxError`` if *await* is used inside non-async
functions and ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` is set (like in the asyncio
REPL). Patch by Pablo Galindo.

View File

@ -1 +0,0 @@
Use inline function to replace extension modules' get_module_state macros.

View File

@ -1 +0,0 @@
Port _statistics module to multiphase initialization (:pep:`489`).

View File

@ -1,2 +0,0 @@
Speed up calls to ``set()`` by using the :pep:`590` ``vectorcall`` calling
convention. Patch by Dong-hee Na.

View File

@ -1,3 +0,0 @@
subinterpreters: Move ``_PyRuntimeState.ceval.tracing_possible`` to
``PyInterpreterState.ceval.tracing_possible``: each interpreter now has its own
variable.

View File

@ -1,2 +0,0 @@
Speed up calls to ``frozenset()`` by using the :pep:`590` ``vectorcall``
calling convention. Patch by Dong-hee Na.

View File

@ -1 +0,0 @@
Port itertools module to multiphase initialization (:pep:`489`).

View File

@ -1 +0,0 @@
Port _heapq module to multiphase initialization.

View File

@ -1,4 +0,0 @@
If :c:func:`Py_AddPendingCall` is called in a subinterpreter, the function is
now scheduled to be called from the subinterpreter, rather than being called
from the main interpreter. Each subinterpreter now has its own list of
scheduled calls.

View File

@ -1,8 +0,0 @@
Optimize signal handling in multithreaded applications. If a thread different
than the main thread gets a signal, the bytecode evaluation loop is no longer
interrupted at each bytecode instruction to check for pending signals which
cannot be handled. Only the main thread of the main interpreter can handle
signals.
Previously, the bytecode evaluation loop was interrupted at each instruction
until the main thread handles signals.

View File

@ -1 +0,0 @@
Port _collections module to multiphase initialization (:pep:`489`).

View File

@ -1 +0,0 @@
Port _weakref extension module to multiphase initialization (:pep:`489`).

View File

@ -1,8 +0,0 @@
Optimize pending calls in multithreaded applications. If a thread different
than the main thread schedules a pending call (:c:func:`Py_AddPendingCall`),
the bytecode evaluation loop is no longer interrupted at each bytecode
instruction to check for pending calls which cannot be executed. Only the
main thread can execute pending calls.
Previously, the bytecode evaluation loop was interrupted at each instruction
until the main thread executes pending calls.

View File

@ -1 +0,0 @@
Changed operand name of **MAKE_FUNCTION** from *argc* to *flags* for module :mod:`dis`

View File

@ -1 +0,0 @@
Update :mod:`token` documentation to reflect additions in Python 3.8

View File

@ -1 +0,0 @@
Fix misleading documentation about mixed-type numeric comparisons.

View File

@ -1,2 +0,0 @@
The language reference no longer restricts default class namespaces to dicts
only.

View File

@ -1 +0,0 @@
Change 'string' to 'specification' in format doc.

View File

@ -1 +0,0 @@
Updated the Language Reference for :pep:`572`.

View File

@ -1 +0,0 @@
Selecting code context lines no longer causes a jump.

View File

@ -1,2 +0,0 @@
Edit "Go to line" now clears any selection, preventing accidental deletion.
It also updates Ln and Col on the status bar.

View File

@ -1,2 +0,0 @@
Since clicking to get an IDLE context menu moves the cursor,
any text selection should be and now is cleared.

View File

@ -1,2 +0,0 @@
For 'Go to Line', use a Query box subclass with IDLE standard behavior
and improved error checking.

View File

@ -1,5 +0,0 @@
Simplified AST for subscription. Simple indices are now represented by their
value, extended slices are represented as tuples. :mod:`ast` classes
``Index`` and ``ExtSlice`` are considered deprecated and will be removed in
future Python versions. In the meantime, ``Index(value)`` now returns
a ``value`` itself, ``ExtSlice(slices)`` returns ``Tuple(slices, Load())``.

View File

@ -1,2 +0,0 @@
Add support for scoped IPv6 addresses to :mod:`ipaddress`. Patch by Oleksandr
Pavliuk.

View File

@ -1,2 +0,0 @@
When using minidom module to generate XML documents the ability to add Standalone Document Declaration is added.
All the changes are made to generate a document in compliance with Extensible Markup Language (XML) 1.0 (Fifth Edition) W3C Recommendation (available here: https://www.w3.org/TR/xml/#sec-prolog-dtd).

View File

@ -1,2 +0,0 @@
Added starred expressions support to ``return`` and ``yield`` statements for
``lib2to3``. Patch by Vlad Emelianov.

View File

@ -1,3 +0,0 @@
Open issue in the BPO indicated a desire to make the implementation of
codecs.open() at parity with io.open(), which implements a try/except to
assure file stream gets closed before an exception is raised.

View File

@ -1 +0,0 @@
Remove default value from *attrs* parameter of :meth:`xml.etree.ElementTree.TreeBuilder.start` for consistency between Python and C implementations.

View File

@ -1 +0,0 @@
Adding HTTP status 418 "I'm a Teapot" to HTTPStatus in http library. Patch by Ross Rhodes.

View File

@ -1,2 +0,0 @@
HTTP status codes ``103 EARLY_HINTS`` and ``425 TOO_EARLY`` are added to
:class:`http.HTTPStatus`. Patch by Dong-hee Na.

View File

@ -1,2 +0,0 @@
Fix handling of header in :class:`urllib.request.AbstractDigestAuthHandler` when the optional ``qop`` parameter
is not present.

View File

@ -1 +0,0 @@
Add thread_name_prefix to default asyncio executor

View File

@ -1 +0,0 @@
Deprecated ``ast.Suite`` node class because it's no longer used. Patch by Batuhan Taskaya.

View File

@ -1,2 +0,0 @@
Keep ASDL signatures in the docstrings for ``AST`` nodes. Patch by Batuhan
Taskaya

View File

@ -1 +0,0 @@
Improve pathlib.Path compatibility on zipfile.Path and correct performance degradation as found in zipp 3.0.

View File

@ -1 +0,0 @@
Remove :meth:`tempfile.SpooledTemporaryFile.softspace` as files no longer have the ``softspace`` attribute in Python 3. Patch by Shantanu.

View File

@ -1,3 +0,0 @@
The :mod:`importlib` module now ignores the :envvar:`PYTHONCASEOK`
environment variable when the :option:`-E` or :option:`-I` command line
options are being used.

View File

@ -1,2 +0,0 @@
:class:`types.MappingProxyType` objects now support the merge (``|``) operator
from :pep:`584`.

View File

@ -1,4 +0,0 @@
The :func:`compileall.compile_dir` function's *ddir* parameter and the
compileall command line flag `-d` no longer write the wrong pathname to the
generated pyc file for submodules beneath the root of the directory tree
being compiled. This fixes a regression introduced with Python 3.5.

View File

@ -1 +0,0 @@
Fix AttributeError when calling get_stack on a PyAsyncGenObject Task

View File

@ -1,2 +0,0 @@
Refactor queue_manager in :class:`concurrent.futures.ProcessPoolExecutor` to
make it easier to maintain.

View File

@ -1,2 +0,0 @@
Change ``inspect.Signature.parameters`` back to ``collections.OrderedDict``.
This was changed to ``dict`` in Python 3.9.0a4.

View File

@ -1 +0,0 @@
Fix runpy.run_path() when using pathlike objects

View File

@ -1 +0,0 @@
:class:`collections.defaultdict` now implements ``|`` (:pep:`584`).

View File

@ -1,2 +0,0 @@
Add --without-decimal-contextvar build option. This enables a thread-local
rather than a coroutine local context.

View File

@ -1,2 +0,0 @@
Reimplement :func:`distutils.spawn.spawn` function with the
:mod:`subprocess` module.

View File

@ -1 +0,0 @@
Add getConnection method to logging HTTPHandler to enable custom connections.

View File

@ -1 +0,0 @@
The hosts method on 32-bit prefix length IPv4Networks and 128-bit prefix IPv6Networks now returns a list containing the single Address instead of an empty list.

View File

@ -1,3 +0,0 @@
Revert "bpo-37330: open() no longer accept 'U' in file mode". The "U" mode of
open() is kept in Python 3.9 to ease transition from Python 2.7, but will be
removed in Python 3.10.

View File

@ -1,3 +0,0 @@
Avoid a possible *"RuntimeError: dictionary changed size during iteration"*
from :func:`inspect.getmodule` when it tried to loop through
:attr:`sys.modules`.

View File

@ -1 +0,0 @@
Fix :mod:`json.tool` to catch :exc:`BrokenPipeError`. Patch by Dong-hee Na.

View File

@ -1,3 +0,0 @@
Fixed :func:`ast.unparse` for extended slices containing a single element
(e.g. ``a[i:j,]``). Remove redundant tuples when index with a tuple (e.g.
``a[i, j]``).

View File

@ -1,4 +0,0 @@
:func:`ast.dump()` no longer outputs optional fields and attributes with
default values. The default values for optional fields and attributes of
AST nodes are now set as class attributes (e.g. ``Constant.kind`` is set
to ``None``).

View File

@ -1,5 +0,0 @@
:mod:`multiprocessing` now supports abstract socket addresses (if abstract sockets
are supported in the running platform). When creating arbitrary addresses (like when
default-constructing :class:`multiprocessing.connection.Listener` objects) abstract
sockets are preferred to avoid the case when the temporary-file-generated address is
too large for an AF_UNIX socket address. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
More reliable use of ``os.scandir()`` in ``Path.glob()``. It no longer emits
a ResourceWarning when interrupted.

View File

@ -1,2 +0,0 @@
Fix the :meth:`random.Random.seed` method when a :class:`bool` is passed as the
seed.

View File

@ -1,4 +0,0 @@
The ``ensurepip`` module now invokes ``pip`` via the ``runpy`` module.
Hence it is no longer tightly coupled with the internal API of the bundled
``pip`` version, allowing easier updates to a newer ``pip`` version both
internally and for distributors.

Some files were not shown because too many files have changed in this diff Show More