Python 3.9.0a3
This commit is contained in:
parent
9017e0bd5e
commit
c33378df39
|
@ -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 2
|
||||
#define PY_RELEASE_SERIAL 3
|
||||
|
||||
/* Version as a string */
|
||||
#define PY_VERSION "3.9.0a2+"
|
||||
#define PY_VERSION "3.9.0a3"
|
||||
/*--end constants--*/
|
||||
|
||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Autogenerated by Sphinx on Wed Dec 18 22:05:39 2019
|
||||
# Autogenerated by Sphinx on Fri Jan 24 22:03:37 2020
|
||||
topics = {'assert': 'The "assert" statement\n'
|
||||
'**********************\n'
|
||||
'\n'
|
||||
|
@ -470,24 +470,25 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'The following code:\n'
|
||||
'\n'
|
||||
' async for TARGET in ITER:\n'
|
||||
' BLOCK\n'
|
||||
' SUITE\n'
|
||||
' else:\n'
|
||||
' BLOCK2\n'
|
||||
' SUITE2\n'
|
||||
'\n'
|
||||
'Is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' iter = (ITER)\n'
|
||||
' iter = type(iter).__aiter__(iter)\n'
|
||||
' running = True\n'
|
||||
'\n'
|
||||
' while running:\n'
|
||||
' try:\n'
|
||||
' TARGET = await type(iter).__anext__(iter)\n'
|
||||
' except StopAsyncIteration:\n'
|
||||
' running = False\n'
|
||||
' else:\n'
|
||||
' BLOCK\n'
|
||||
' SUITE\n'
|
||||
' else:\n'
|
||||
' BLOCK2\n'
|
||||
' SUITE2\n'
|
||||
'\n'
|
||||
'See also "__aiter__()" and "__anext__()" for details.\n'
|
||||
'\n'
|
||||
|
@ -507,23 +508,27 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'The following code:\n'
|
||||
'\n'
|
||||
' async with EXPR as VAR:\n'
|
||||
' BLOCK\n'
|
||||
' async with EXPRESSION as TARGET:\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'Is semantically equivalent to:\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' mgr = (EXPR)\n'
|
||||
' aexit = type(mgr).__aexit__\n'
|
||||
' aenter = type(mgr).__aenter__(mgr)\n'
|
||||
' manager = (EXPRESSION)\n'
|
||||
' aenter = type(manager).__aenter__\n'
|
||||
' aexit = type(manager).__aexit__\n'
|
||||
' value = await aenter(manager)\n'
|
||||
' hit_except = False\n'
|
||||
'\n'
|
||||
' VAR = await aenter\n'
|
||||
' try:\n'
|
||||
' BLOCK\n'
|
||||
' TARGET = value\n'
|
||||
' SUITE\n'
|
||||
' except:\n'
|
||||
' if not await aexit(mgr, *sys.exc_info()):\n'
|
||||
' hit_except = True\n'
|
||||
' if not await aexit(manager, *sys.exc_info()):\n'
|
||||
' raise\n'
|
||||
' else:\n'
|
||||
' await aexit(mgr, None, None, None)\n'
|
||||
' finally:\n'
|
||||
' if not hit_except:\n'
|
||||
' await aexit(manager, None, None, None)\n'
|
||||
'\n'
|
||||
'See also "__aenter__()" and "__aexit__()" for details.\n'
|
||||
'\n'
|
||||
|
@ -2519,11 +2524,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'"with_item")\n'
|
||||
' is evaluated to obtain a context manager.\n'
|
||||
'\n'
|
||||
'2. The context manager’s "__exit__()" is loaded for later use.\n'
|
||||
'2. The context manager’s "__enter__()" is loaded for later use.\n'
|
||||
'\n'
|
||||
'3. The context manager’s "__enter__()" method is invoked.\n'
|
||||
'3. The context manager’s "__exit__()" is loaded for later use.\n'
|
||||
'\n'
|
||||
'4. If a target was included in the "with" statement, the return\n'
|
||||
'4. The context manager’s "__enter__()" method is invoked.\n'
|
||||
'\n'
|
||||
'5. If a target was included in the "with" statement, the return\n'
|
||||
' value from "__enter__()" is assigned to it.\n'
|
||||
'\n'
|
||||
' Note: The "with" statement guarantees that if the '
|
||||
|
@ -2536,9 +2543,9 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'occurring\n'
|
||||
' within the suite would be. See step 6 below.\n'
|
||||
'\n'
|
||||
'5. The suite is executed.\n'
|
||||
'6. The suite is executed.\n'
|
||||
'\n'
|
||||
'6. The context manager’s "__exit__()" method is invoked. If an\n'
|
||||
'7. The context manager’s "__exit__()" method is invoked. If an\n'
|
||||
' exception caused the suite to be exited, its type, value, '
|
||||
'and\n'
|
||||
' traceback are passed as arguments to "__exit__()". Otherwise, '
|
||||
|
@ -2560,18 +2567,42 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'proceeds\n'
|
||||
' at the normal location for the kind of exit that was taken.\n'
|
||||
'\n'
|
||||
'The following code:\n'
|
||||
'\n'
|
||||
' with EXPRESSION as TARGET:\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' manager = (EXPRESSION)\n'
|
||||
' enter = type(manager).__enter__\n'
|
||||
' exit = type(manager).__exit__\n'
|
||||
' value = enter(manager)\n'
|
||||
' hit_except = False\n'
|
||||
'\n'
|
||||
' try:\n'
|
||||
' TARGET = value\n'
|
||||
' SUITE\n'
|
||||
' except:\n'
|
||||
' hit_except = True\n'
|
||||
' if not exit(manager, *sys.exc_info()):\n'
|
||||
' raise\n'
|
||||
' finally:\n'
|
||||
' if not hit_except:\n'
|
||||
' exit(manager, None, None, None)\n'
|
||||
'\n'
|
||||
'With more than one item, the context managers are processed as '
|
||||
'if\n'
|
||||
'multiple "with" statements were nested:\n'
|
||||
'\n'
|
||||
' with A() as a, B() as b:\n'
|
||||
' suite\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'is equivalent to\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' with A() as a:\n'
|
||||
' with B() as b:\n'
|
||||
' suite\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'Changed in version 3.1: Support for multiple context '
|
||||
'expressions.\n'
|
||||
|
@ -2935,24 +2966,25 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'The following code:\n'
|
||||
'\n'
|
||||
' async for TARGET in ITER:\n'
|
||||
' BLOCK\n'
|
||||
' SUITE\n'
|
||||
' else:\n'
|
||||
' BLOCK2\n'
|
||||
' SUITE2\n'
|
||||
'\n'
|
||||
'Is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' iter = (ITER)\n'
|
||||
' iter = type(iter).__aiter__(iter)\n'
|
||||
' running = True\n'
|
||||
'\n'
|
||||
' while running:\n'
|
||||
' try:\n'
|
||||
' TARGET = await type(iter).__anext__(iter)\n'
|
||||
' except StopAsyncIteration:\n'
|
||||
' running = False\n'
|
||||
' else:\n'
|
||||
' BLOCK\n'
|
||||
' SUITE\n'
|
||||
' else:\n'
|
||||
' BLOCK2\n'
|
||||
' SUITE2\n'
|
||||
'\n'
|
||||
'See also "__aiter__()" and "__anext__()" for details.\n'
|
||||
'\n'
|
||||
|
@ -2972,23 +3004,27 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'The following code:\n'
|
||||
'\n'
|
||||
' async with EXPR as VAR:\n'
|
||||
' BLOCK\n'
|
||||
' async with EXPRESSION as TARGET:\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'Is semantically equivalent to:\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' mgr = (EXPR)\n'
|
||||
' aexit = type(mgr).__aexit__\n'
|
||||
' aenter = type(mgr).__aenter__(mgr)\n'
|
||||
' manager = (EXPRESSION)\n'
|
||||
' aenter = type(manager).__aenter__\n'
|
||||
' aexit = type(manager).__aexit__\n'
|
||||
' value = await aenter(manager)\n'
|
||||
' hit_except = False\n'
|
||||
'\n'
|
||||
' VAR = await aenter\n'
|
||||
' try:\n'
|
||||
' BLOCK\n'
|
||||
' TARGET = value\n'
|
||||
' SUITE\n'
|
||||
' except:\n'
|
||||
' if not await aexit(mgr, *sys.exc_info()):\n'
|
||||
' hit_except = True\n'
|
||||
' if not await aexit(manager, *sys.exc_info()):\n'
|
||||
' raise\n'
|
||||
' else:\n'
|
||||
' await aexit(mgr, None, None, None)\n'
|
||||
' finally:\n'
|
||||
' if not hit_except:\n'
|
||||
' await aexit(manager, None, None, None)\n'
|
||||
'\n'
|
||||
'See also "__aenter__()" and "__aexit__()" for details.\n'
|
||||
'\n'
|
||||
|
@ -6808,7 +6844,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'object.__rfloordiv__(self, other)\n'
|
||||
'object.__rmod__(self, other)\n'
|
||||
'object.__rdivmod__(self, other)\n'
|
||||
'object.__rpow__(self, other)\n'
|
||||
'object.__rpow__(self, other[, modulo])\n'
|
||||
'object.__rlshift__(self, other)\n'
|
||||
'object.__rrshift__(self, other)\n'
|
||||
'object.__rand__(self, other)\n'
|
||||
|
@ -9483,7 +9519,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'object.__rfloordiv__(self, other)\n'
|
||||
'object.__rmod__(self, other)\n'
|
||||
'object.__rdivmod__(self, other)\n'
|
||||
'object.__rpow__(self, other)\n'
|
||||
'object.__rpow__(self, other[, modulo])\n'
|
||||
'object.__rlshift__(self, other)\n'
|
||||
'object.__rrshift__(self, other)\n'
|
||||
'object.__rand__(self, other)\n'
|
||||
|
@ -9874,9 +9910,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'best\n'
|
||||
' performances, but only used at the first encoding '
|
||||
'error. Enable the\n'
|
||||
' development mode ("-X" "dev" option), or use a debug '
|
||||
'build, to\n'
|
||||
' check *errors*.\n'
|
||||
' Python Development Mode, or use a debug build to check '
|
||||
'*errors*.\n'
|
||||
'\n'
|
||||
' Changed in version 3.1: Support for keyword arguments '
|
||||
'added.\n'
|
||||
|
@ -12401,6 +12436,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'dictionary. This\n'
|
||||
' is a shortcut for "reversed(d.keys())".\n'
|
||||
'\n'
|
||||
' New in version 3.8.\n'
|
||||
'\n'
|
||||
' setdefault(key[, default])\n'
|
||||
'\n'
|
||||
' If *key* is in the dictionary, return its value. If '
|
||||
|
@ -13606,11 +13643,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'1. The context expression (the expression given in the "with_item")\n'
|
||||
' is evaluated to obtain a context manager.\n'
|
||||
'\n'
|
||||
'2. The context manager’s "__exit__()" is loaded for later use.\n'
|
||||
'2. The context manager’s "__enter__()" is loaded for later use.\n'
|
||||
'\n'
|
||||
'3. The context manager’s "__enter__()" method is invoked.\n'
|
||||
'3. The context manager’s "__exit__()" is loaded for later use.\n'
|
||||
'\n'
|
||||
'4. If a target was included in the "with" statement, the return\n'
|
||||
'4. The context manager’s "__enter__()" method is invoked.\n'
|
||||
'\n'
|
||||
'5. If a target was included in the "with" statement, the return\n'
|
||||
' value from "__enter__()" is assigned to it.\n'
|
||||
'\n'
|
||||
' Note: The "with" statement guarantees that if the "__enter__()"\n'
|
||||
|
@ -13620,9 +13659,9 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' target list, it will be treated the same as an error occurring\n'
|
||||
' within the suite would be. See step 6 below.\n'
|
||||
'\n'
|
||||
'5. The suite is executed.\n'
|
||||
'6. The suite is executed.\n'
|
||||
'\n'
|
||||
'6. The context manager’s "__exit__()" method is invoked. If an\n'
|
||||
'7. The context manager’s "__exit__()" method is invoked. If an\n'
|
||||
' exception caused the suite to be exited, its type, value, and\n'
|
||||
' traceback are passed as arguments to "__exit__()". Otherwise, '
|
||||
'three\n'
|
||||
|
@ -13642,17 +13681,41 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'proceeds\n'
|
||||
' at the normal location for the kind of exit that was taken.\n'
|
||||
'\n'
|
||||
'The following code:\n'
|
||||
'\n'
|
||||
' with EXPRESSION as TARGET:\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' manager = (EXPRESSION)\n'
|
||||
' enter = type(manager).__enter__\n'
|
||||
' exit = type(manager).__exit__\n'
|
||||
' value = enter(manager)\n'
|
||||
' hit_except = False\n'
|
||||
'\n'
|
||||
' try:\n'
|
||||
' TARGET = value\n'
|
||||
' SUITE\n'
|
||||
' except:\n'
|
||||
' hit_except = True\n'
|
||||
' if not exit(manager, *sys.exc_info()):\n'
|
||||
' raise\n'
|
||||
' finally:\n'
|
||||
' if not hit_except:\n'
|
||||
' exit(manager, None, None, None)\n'
|
||||
'\n'
|
||||
'With more than one item, the context managers are processed as if\n'
|
||||
'multiple "with" statements were nested:\n'
|
||||
'\n'
|
||||
' with A() as a, B() as b:\n'
|
||||
' suite\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'is equivalent to\n'
|
||||
'is semantically equivalent to:\n'
|
||||
'\n'
|
||||
' with A() as a:\n'
|
||||
' with B() as b:\n'
|
||||
' suite\n'
|
||||
' SUITE\n'
|
||||
'\n'
|
||||
'Changed in version 3.1: Support for multiple context expressions.\n'
|
||||
'\n'
|
||||
|
|
|
@ -0,0 +1,906 @@
|
|||
.. bpo: 39427
|
||||
.. date: 2020-01-22-22-28-04
|
||||
.. nonce: LiO-Eo
|
||||
.. release date: 2020-01-24
|
||||
.. section: Core and Builtins
|
||||
|
||||
Document all possibilities for the ``-X`` options in the command line help
|
||||
section. Patch by Pablo Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39421
|
||||
.. date: 2020-01-22-15-53-37
|
||||
.. nonce: O3nG7u
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix possible crashes when operating with the functions in the :mod:`heapq`
|
||||
module and custom comparison operators.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39386
|
||||
.. date: 2020-01-20-21-40-57
|
||||
.. nonce: ULqD8t
|
||||
.. section: Core and Builtins
|
||||
|
||||
Prevent double awaiting of async iterator.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 17005
|
||||
.. date: 2020-01-17-00-00-58
|
||||
.. nonce: nTSxsy
|
||||
.. section: Core and Builtins
|
||||
|
||||
Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
|
||||
offers functionality to perform topological sorting of graphs. Patch by
|
||||
Pablo Galindo, Tim Peters and Larry Hastings.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39320
|
||||
.. date: 2020-01-15-15-33-44
|
||||
.. nonce: b4hnJW
|
||||
.. section: Core and Builtins
|
||||
|
||||
Replace four complex bytecodes for building sequences with three simpler
|
||||
ones.
|
||||
|
||||
The following four bytecodes have been removed:
|
||||
|
||||
* BUILD_LIST_UNPACK
|
||||
* BUILD_TUPLE_UNPACK
|
||||
* BUILD_SET_UNPACK
|
||||
* BUILD_TUPLE_UNPACK_WITH_CALL
|
||||
|
||||
The following three bytecodes have been added:
|
||||
|
||||
* LIST_TO_TUPLE
|
||||
* LIST_EXTEND
|
||||
* SET_UPDATE
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39336
|
||||
.. date: 2020-01-15-01-39-29
|
||||
.. nonce: nJ7W9I
|
||||
.. section: Core and Builtins
|
||||
|
||||
Import loaders which publish immutable module objects can now publish
|
||||
immutable packages in addition to individual modules.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39322
|
||||
.. date: 2020-01-13-15-18-13
|
||||
.. nonce: aAs-1T
|
||||
.. section: Core and Builtins
|
||||
|
||||
Added a new function :func:`gc.is_finalized` to check if an object has been
|
||||
finalized by the garbage collector. Patch by Pablo Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39048
|
||||
.. date: 2020-01-13-14-45-22
|
||||
.. nonce: iPsj81
|
||||
.. section: Core and Builtins
|
||||
|
||||
Improve the displayed error message when incorrect types are passed to
|
||||
``async with`` statements by looking up the :meth:`__aenter__` special
|
||||
method before the :meth:`__aexit__` special method when entering an
|
||||
asynchronous context manager. Patch by Géry Ogam.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39235
|
||||
.. date: 2020-01-09-10-01-18
|
||||
.. nonce: RYwjoc
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix AST end location for lone generator expression in function call, e.g.
|
||||
f(i for i in a).
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39209
|
||||
.. date: 2020-01-06-10-29-16
|
||||
.. nonce: QHAONe
|
||||
.. section: Core and Builtins
|
||||
|
||||
Correctly handle multi-line tokens in interactive mode. Patch by Pablo
|
||||
Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 1635741
|
||||
.. date: 2020-01-05-13-40-08
|
||||
.. nonce: QRTJVC
|
||||
.. section: Core and Builtins
|
||||
|
||||
Port _json extension module to multiphase initialization (:pep:`489`).
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39216
|
||||
.. date: 2020-01-05-06-55-52
|
||||
.. nonce: 74jLh9
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix constant folding optimization for positional only arguments - by Anthony
|
||||
Sottile.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39215
|
||||
.. date: 2020-01-04-17-25-34
|
||||
.. nonce: xiqiIz
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix ``SystemError`` when nested function has annotation on positional-only
|
||||
argument - by Anthony Sottile.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39200
|
||||
.. date: 2020-01-04-01-14-32
|
||||
.. nonce: 8Z9DYp
|
||||
.. section: Core and Builtins
|
||||
|
||||
Correct the error message when calling the :func:`min` or :func:`max` with
|
||||
no arguments. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39200
|
||||
.. date: 2020-01-03-14-50-14
|
||||
.. nonce: Ip2_iI
|
||||
.. section: Core and Builtins
|
||||
|
||||
Correct the error message when trying to construct :class:`range` objects
|
||||
with no arguments. Patch by Pablo Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39166
|
||||
.. date: 2020-01-02-22-22-03
|
||||
.. nonce: Qt-UeD
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix incorrect line execution reporting in trace functions when tracing the
|
||||
last iteration of asynchronous for loops. Patch by Pablo Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39114
|
||||
.. date: 2019-12-31-18-25-45
|
||||
.. nonce: WG9alt
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix incorrent line execution reporting in trace functions when tracing
|
||||
exception handlers with name binding. Patch by Pablo Galindo.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39156
|
||||
.. date: 2019-12-30-10-53-59
|
||||
.. nonce: veT-CB
|
||||
.. section: Core and Builtins
|
||||
|
||||
Split the COMPARE_OP bytecode instruction into four distinct instructions.
|
||||
|
||||
* COMPARE_OP for rich comparisons
|
||||
* IS_OP for 'is' and 'is not' tests
|
||||
* CONTAINS_OP for 'in' and 'is not' tests
|
||||
* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
|
||||
|
||||
This improves the clarity of the interpreter and should provide a modest
|
||||
speedup.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38588
|
||||
.. date: 2019-12-29-19-13-54
|
||||
.. nonce: pgXnNS
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix possible crashes in dict and list when calling
|
||||
:c:func:`PyObject_RichCompareBool`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 13601
|
||||
.. date: 2019-12-17-22-32-11
|
||||
.. nonce: vNP4LC
|
||||
.. section: Core and Builtins
|
||||
|
||||
By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
|
||||
redirected to a file. You can still make ``sys.stderr`` unbuffered by
|
||||
passing the :option:`-u` command-line option or setting the
|
||||
:envvar:`PYTHONUNBUFFERED` environment variable.
|
||||
|
||||
(Contributed by Jendrik Seipp in bpo-13601.)
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38610
|
||||
.. date: 2019-10-31-14-30-39
|
||||
.. nonce: fHdVMS
|
||||
.. section: Core and Builtins
|
||||
|
||||
Fix possible crashes in several list methods by holding strong references to
|
||||
list elements when calling :c:func:`PyObject_RichCompareBool`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 32021
|
||||
.. date: 2019-03-11-13-30-40
|
||||
.. nonce: dpbtkP
|
||||
.. section: Core and Builtins
|
||||
|
||||
Include brotli .br encoding in mimetypes encodings_map
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39430
|
||||
.. date: 2020-01-24-11-05-21
|
||||
.. nonce: I0UQzM
|
||||
.. section: Library
|
||||
|
||||
Fixed race condition in lazy imports in :mod:`tarfile`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39413
|
||||
.. date: 2020-01-24-10-10-25
|
||||
.. nonce: 7XYDM8
|
||||
.. section: Library
|
||||
|
||||
The :func:`os.unsetenv` function is now also available on Windows.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39390
|
||||
.. date: 2020-01-23-21-34-29
|
||||
.. nonce: D2tSXk
|
||||
.. section: Library
|
||||
|
||||
Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
|
||||
The argument types are now str and List[str] again.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39395
|
||||
.. date: 2020-01-23-03-05-41
|
||||
.. nonce: 4dda42
|
||||
.. section: Library
|
||||
|
||||
The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
|
||||
available.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39406
|
||||
.. date: 2020-01-22-21-18-58
|
||||
.. nonce: HMpe8x
|
||||
.. section: Library
|
||||
|
||||
If ``setenv()`` C function is available, :func:`os.putenv` is now
|
||||
implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
|
||||
have to handle the environment variable memory.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39396
|
||||
.. date: 2020-01-21-09-00-42
|
||||
.. nonce: 6UXQXE
|
||||
.. section: Library
|
||||
|
||||
Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 29435
|
||||
.. date: 2020-01-20-18-48-00
|
||||
.. nonce: qqJ2Ax
|
||||
.. section: Library
|
||||
|
||||
Allow :func:`tarfile.is_tarfile` to be used with file and file-like objects,
|
||||
like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39377
|
||||
.. date: 2020-01-20-13-00-35
|
||||
.. nonce: QSFdaU
|
||||
.. section: Library
|
||||
|
||||
Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
|
||||
since Python 3.1.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39389
|
||||
.. date: 2020-01-20-00-56-01
|
||||
.. nonce: fEirIS
|
||||
.. section: Library
|
||||
|
||||
Write accurate compression level metadata in :mod:`gzip` archives, rather
|
||||
than always signaling maximum compression.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39366
|
||||
.. date: 2020-01-17-18-14-51
|
||||
.. nonce: Cv3NQS
|
||||
.. section: Library
|
||||
|
||||
The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
|
||||
:class:`nntplib.NNTP` have been removed.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39357
|
||||
.. date: 2020-01-16-11-24-00
|
||||
.. nonce: bCwx-h
|
||||
.. section: Library
|
||||
|
||||
Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0,
|
||||
it was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an
|
||||
open file object, to control how the file is opened. The *compresslevel*
|
||||
parameter becomes keyword-only.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39353
|
||||
.. date: 2020-01-16-10-21-48
|
||||
.. nonce: ntp7Ql
|
||||
.. section: Library
|
||||
|
||||
Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module
|
||||
and the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
|
||||
:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
|
||||
:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39351
|
||||
.. date: 2020-01-16-09-27-28
|
||||
.. nonce: a-FQdv
|
||||
.. section: Library
|
||||
|
||||
Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
|
||||
deprecated since Python 3.1: use :func:`base64.encodebytes` and
|
||||
:func:`base64.decodebytes` instead.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39350
|
||||
.. date: 2020-01-16-09-15-40
|
||||
.. nonce: ZQx0uY
|
||||
.. section: Library
|
||||
|
||||
Remove ``fractions.gcd()`` function, deprecated since Python 3.5
|
||||
(:issue:`22486`): use :func:`math.gcd` instead.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39329
|
||||
.. date: 2020-01-14-22-16-07
|
||||
.. nonce: 6OKGBn
|
||||
.. section: Library
|
||||
|
||||
:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
|
||||
Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39313
|
||||
.. date: 2020-01-12-18-17-00
|
||||
.. nonce: DCTsnm
|
||||
.. section: Library
|
||||
|
||||
Add a new ``exec_function`` option (*--exec-function* in the CLI) to
|
||||
``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan
|
||||
Taskaya.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39259
|
||||
.. date: 2020-01-12-17-19-40
|
||||
.. nonce: iax06r
|
||||
.. section: Library
|
||||
|
||||
:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39259
|
||||
.. date: 2020-01-12-16-34-28
|
||||
.. nonce: J_yBVq
|
||||
.. section: Library
|
||||
|
||||
:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39310
|
||||
.. date: 2020-01-12-13-34-42
|
||||
.. nonce: YMRdcj
|
||||
.. section: Library
|
||||
|
||||
Add :func:`math.ulp`: return the value of the least significant bit of a
|
||||
float.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39297
|
||||
.. date: 2020-01-11-01-15-37
|
||||
.. nonce: y98Z6Q
|
||||
.. section: Library
|
||||
|
||||
Improved performance of importlib.metadata distribution discovery and
|
||||
resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39259
|
||||
.. date: 2020-01-11-00-32-45
|
||||
.. nonce: _S5VjC
|
||||
.. section: Library
|
||||
|
||||
:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38901
|
||||
.. date: 2020-01-10-22-30-48
|
||||
.. nonce: OdVIIb
|
||||
.. section: Library
|
||||
|
||||
When you specify prompt='.' or equivalently python -m venv --prompt . ...
|
||||
the basename of the current directory is used to set the created venv's
|
||||
prompt when it's activated.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39288
|
||||
.. date: 2020-01-10-16-52-09
|
||||
.. nonce: IB-aQX
|
||||
.. section: Library
|
||||
|
||||
Add :func:`math.nextafter`: return the next floating-point value after *x*
|
||||
towards *y*.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39259
|
||||
.. date: 2020-01-09-10-58-58
|
||||
.. nonce: RmDgCC
|
||||
.. section: Library
|
||||
|
||||
:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39242
|
||||
.. date: 2020-01-08-23-25-27
|
||||
.. nonce: bnL65N
|
||||
.. section: Library
|
||||
|
||||
Updated the Gmane domain from news.gmane.org to news.gmane.io which is used
|
||||
for examples of :class:`~nntplib.NNTP` news reader server and nntplib tests.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 35292
|
||||
.. date: 2020-01-08-14-39-19
|
||||
.. nonce: ihRT1z
|
||||
.. section: Library
|
||||
|
||||
Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so
|
||||
the `mimetypes.init` is called lazily to avoid unnecessary costs when
|
||||
:mod:`http.server` module is imported.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39239
|
||||
.. date: 2020-01-07-01-02-44
|
||||
.. nonce: r7vecs
|
||||
.. section: Library
|
||||
|
||||
The :meth:`select.epoll.unregister` method no longer ignores the
|
||||
:data:`~errno.EBADF` error.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38907
|
||||
.. date: 2020-01-06-02-14-38
|
||||
.. nonce: F1RkCR
|
||||
.. section: Library
|
||||
|
||||
In http.server script, restore binding to IPv4 on Windows.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39152
|
||||
.. date: 2020-01-03-18-02-50
|
||||
.. nonce: JgPjCC
|
||||
.. section: Library
|
||||
|
||||
Fix ttk.Scale.configure([name]) to return configuration tuple for name or
|
||||
all options. Giovanni Lombardo contributed part of the patch.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39198
|
||||
.. date: 2020-01-02-20-21-03
|
||||
.. nonce: nzwGyG
|
||||
.. section: Library
|
||||
|
||||
If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio
|
||||
timeouts or stopit) , the `logging` global lock may not be released
|
||||
appropriately, resulting in deadlock. This change wraps that block of code
|
||||
with `try...finally` to ensure the lock is released.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39191
|
||||
.. date: 2020-01-02-17-28-03
|
||||
.. nonce: ur_scy
|
||||
.. section: Library
|
||||
|
||||
Perform a check for running loop before starting a new task in
|
||||
``loop.run_until_complete()`` to fail fast; it prevents the side effect of
|
||||
new task spawning before exception raising.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38871
|
||||
.. date: 2020-01-01-18-44-52
|
||||
.. nonce: 3EEOLg
|
||||
.. section: Library
|
||||
|
||||
Correctly parenthesize filter-based statements that contain lambda
|
||||
expressions in mod:`lib2to3`. Patch by Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39142
|
||||
.. date: 2019-12-31-19-27-23
|
||||
.. nonce: oqU5iD
|
||||
.. section: Library
|
||||
|
||||
A change was made to logging.config.dictConfig to avoid converting instances
|
||||
of named tuples to ConvertingTuple. It's assumed that named tuples are too
|
||||
specialised to be treated like ordinary tuples; if a user of named tuples
|
||||
requires ConvertingTuple functionality, they will have to implement that
|
||||
themselves in their named tuple class.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39158
|
||||
.. date: 2019-12-29-15-44-38
|
||||
.. nonce: cxVoOR
|
||||
.. section: Library
|
||||
|
||||
ast.literal_eval() now supports empty sets.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39129
|
||||
.. date: 2019-12-24-10-43-13
|
||||
.. nonce: jVx5rW
|
||||
.. section: Library
|
||||
|
||||
Fix import path for ``asyncio.TimeoutError``
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39057
|
||||
.. date: 2019-12-15-21-47-54
|
||||
.. nonce: FOxn-w
|
||||
.. section: Library
|
||||
|
||||
:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
|
||||
no longer ignores a trailing newline.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39056
|
||||
.. date: 2019-12-15-21-05-16
|
||||
.. nonce: nEfUM9
|
||||
.. section: Library
|
||||
|
||||
Fixed handling invalid warning category in the -W option. No longer import
|
||||
the re module if it is not needed.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39055
|
||||
.. date: 2019-12-15-19-23-23
|
||||
.. nonce: FmN3un
|
||||
.. section: Library
|
||||
|
||||
:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
|
||||
if the input ends with a single ``\n``.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 21600
|
||||
.. date: 2019-12-14-14-38-40
|
||||
.. nonce: kC4Cgh
|
||||
.. section: Library
|
||||
|
||||
Fix :func:`mock.patch.stopall` to stop active patches that were created with
|
||||
:func:`mock.patch.dict`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39019
|
||||
.. date: 2019-12-10-21-11-05
|
||||
.. nonce: YIlgZ7
|
||||
.. section: Library
|
||||
|
||||
Implement dummy ``__class_getitem__`` for
|
||||
:class:`tempfile.SpooledTemporaryFile`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39019
|
||||
.. date: 2019-12-10-21-03-34
|
||||
.. nonce: i8RpMZ
|
||||
.. section: Library
|
||||
|
||||
Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
|
||||
``subprocess.CompletedProcess``
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38914
|
||||
.. date: 2019-11-26-23-21-56
|
||||
.. nonce: 8l-g-T
|
||||
.. section: Library
|
||||
|
||||
Adjusted the wording of the warning issued by distutils' ``check`` command
|
||||
when the ``author`` and ``maintainer`` fields are supplied but no
|
||||
corresponding e-mail field (``author_email`` or ``maintainer_email``) is
|
||||
found. The wording now reflects the fact that these fields are suggested,
|
||||
but not required. Patch by Juergen Gmach.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38878
|
||||
.. date: 2019-11-22-12-08-52
|
||||
.. nonce: EJ0cFf
|
||||
.. section: Library
|
||||
|
||||
Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
|
||||
upon inheritence. Patch by Bar Harel.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38615
|
||||
.. date: 2019-11-17-17-32-35
|
||||
.. nonce: OVyaNX
|
||||
.. section: Library
|
||||
|
||||
:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional
|
||||
*timeout* parameter for their constructors. Also, the
|
||||
:meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
|
||||
with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
|
||||
:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by
|
||||
Dong-hee Na.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 35182
|
||||
.. date: 2019-10-31-19-23-25
|
||||
.. nonce: hzeNl9
|
||||
.. section: Library
|
||||
|
||||
Fixed :func:`Popen.communicate` subsequent call crash when the child process
|
||||
has already closed any piped standard stream, but still continues to be
|
||||
running. Patch by Andriy Maletsky.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38630
|
||||
.. date: 2019-10-29-12-21-10
|
||||
.. nonce: Dv6Xrm
|
||||
.. section: Library
|
||||
|
||||
On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
|
||||
Polling reduces the risk of sending a signal to the wrong process if the
|
||||
process completed, the :attr:`subprocess.Popen.returncode` attribute is
|
||||
still ``None``, and the pid has been reassigned (recycled) to a new
|
||||
different process.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38536
|
||||
.. date: 2019-10-21-20-24-51
|
||||
.. nonce: beZ0Sk
|
||||
.. section: Library
|
||||
|
||||
Removes trailing space in formatted currency with `international=True` and a
|
||||
locale with symbol following value. E.g. `locale.currency(12.34,
|
||||
international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38473
|
||||
.. date: 2019-10-14-21-14-55
|
||||
.. nonce: uXpVld
|
||||
.. section: Library
|
||||
|
||||
Use signature from inner mock for autospecced methods attached with
|
||||
:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38361
|
||||
.. date: 2019-10-04-09-49-56
|
||||
.. nonce: LM4u4T
|
||||
.. section: Library
|
||||
|
||||
Fixed an issue where ``ident`` could include a leading path separator when
|
||||
:func:`syslog.openlog` was called without arguments.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38293
|
||||
.. date: 2019-09-29-08-17-03
|
||||
.. nonce: wls5s3
|
||||
.. section: Library
|
||||
|
||||
Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property`
|
||||
objects.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 37958
|
||||
.. date: 2019-08-27-03-57-25
|
||||
.. nonce: lRORI3
|
||||
.. section: Library
|
||||
|
||||
Added the pstats.Stats.get_profile_dict() method to return the profile data
|
||||
as a StatsProfile instance.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 28367
|
||||
.. date: 2019-05-06-22-38-47
|
||||
.. nonce: 2AKen5
|
||||
.. section: Library
|
||||
|
||||
Termios magic constants for the following baud rates: - B500000 -
|
||||
B576000 - B921600 - B1000000 - B1152000 - B1500000 - B2000000 -
|
||||
B2500000 - B3000000 - B3500000 - B4000000 Patch by Andrey Smirnov
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39381
|
||||
.. date: 2020-01-18-15-37-56
|
||||
.. nonce: wTWe8d
|
||||
.. section: Documentation
|
||||
|
||||
Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
|
||||
event loop only if called from the main thread.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 38918
|
||||
.. date: 2019-12-15-22-04-41
|
||||
.. nonce: 8JnDTS
|
||||
.. section: Documentation
|
||||
|
||||
Add an entry for ``__module__`` in the "function" & "method" sections of the
|
||||
`inspect docs types and members table
|
||||
<https://docs.python.org/3/library/inspect.html#types-and-members>`_
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 3530
|
||||
.. date: 2019-11-17-11-53-10
|
||||
.. nonce: 8zFUMc
|
||||
.. section: Documentation
|
||||
|
||||
In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer``
|
||||
example and add advice on when to use the ``fix_missing_locations``
|
||||
function.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39395
|
||||
.. date: 2020-01-23-03-05-13
|
||||
.. nonce: RoArIZ
|
||||
.. section: Build
|
||||
|
||||
On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv`
|
||||
functions are now required to build Python.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39160
|
||||
.. date: 2019-12-30-03-54-24
|
||||
.. nonce: aBmj13
|
||||
.. section: Build
|
||||
|
||||
Updated the documentation in `./configure --help` to show default values,
|
||||
reference documentation where required and add additional explanation where
|
||||
needed.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39144
|
||||
.. date: 2019-12-27-22-18-26
|
||||
.. nonce: dwHMlR
|
||||
.. section: Build
|
||||
|
||||
The ctags and etags build targets both include Modules/_ctypes and Python
|
||||
standard library source files.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39050
|
||||
.. date: 2020-01-22-22-28-06
|
||||
.. nonce: zkn0FO
|
||||
.. section: IDLE
|
||||
|
||||
Make IDLE Settings dialog Help button work again.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 34118
|
||||
.. date: 2019-12-30-16-44-07
|
||||
.. nonce: FaNW0a
|
||||
.. section: IDLE
|
||||
|
||||
Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
|
||||
the library manual built-in functions list.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 32989
|
||||
.. date: 2018-03-03-12-56-26
|
||||
.. nonce: FVhmhH
|
||||
.. section: IDLE
|
||||
|
||||
Add tests for editor newline_and_indent_event method. Remove dead code from
|
||||
pyparse find_good_parse_start method.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39372
|
||||
.. date: 2020-01-17-19-25-48
|
||||
.. nonce: hGJMY6
|
||||
.. section: C API
|
||||
|
||||
Clean header files of interfaces defined but with no implementation. The
|
||||
public API symbols being removed are:
|
||||
``_PyBytes_InsertThousandsGroupingLocale``,
|
||||
``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
|
||||
``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
|
||||
``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
|
||||
``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
|
||||
``PyNoArgsFunction``.
|
||||
|
||||
..
|
||||
|
||||
.. bpo: 39164
|
||||
.. date: 2019-12-30-10-43-52
|
||||
.. nonce: WEV0uu
|
||||
.. section: C API
|
||||
|
||||
Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception
|
||||
information of the specified Python thread state.
|
|
@ -1 +0,0 @@
|
|||
The ctags and etags build targets both include Modules/_ctypes and Python standard library source files.
|
|
@ -1 +0,0 @@
|
|||
Updated the documentation in `./configure --help` to show default values, reference documentation where required and add additional explanation where needed.
|
|
@ -1,2 +0,0 @@
|
|||
On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` functions
|
||||
are now required to build Python.
|
|
@ -1 +0,0 @@
|
|||
Add a private ``_PyErr_GetExcInfo()`` function to retrieve exception information of the specified Python thread state.
|
|
@ -1,8 +0,0 @@
|
|||
Clean header files of interfaces defined but with no implementation. The
|
||||
public API symbols being removed are:
|
||||
``_PyBytes_InsertThousandsGroupingLocale``,
|
||||
``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``,
|
||||
``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``,
|
||||
``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``,
|
||||
``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``,
|
||||
``PyNoArgsFunction``.
|
|
@ -1 +0,0 @@
|
|||
Include brotli .br encoding in mimetypes encodings_map
|
|
@ -1,2 +0,0 @@
|
|||
Fix possible crashes in several list methods by holding strong references to
|
||||
list elements when calling :c:func:`PyObject_RichCompareBool`.
|
|
@ -1,6 +0,0 @@
|
|||
By default, ``sys.stderr`` is line-buffered now, even if ``stderr`` is
|
||||
redirected to a file. You can still make ``sys.stderr`` unbuffered by
|
||||
passing the :option:`-u` command-line option or setting the
|
||||
:envvar:`PYTHONUNBUFFERED` environment variable.
|
||||
|
||||
(Contributed by Jendrik Seipp in bpo-13601.)
|
|
@ -1,2 +0,0 @@
|
|||
Fix possible crashes in dict and list when calling
|
||||
:c:func:`PyObject_RichCompareBool`.
|
|
@ -1,9 +0,0 @@
|
|||
Split the COMPARE_OP bytecode instruction into four distinct instructions.
|
||||
|
||||
* COMPARE_OP for rich comparisons
|
||||
* IS_OP for 'is' and 'is not' tests
|
||||
* CONTAINS_OP for 'in' and 'is not' tests
|
||||
* JUMP_IF_NOT_EXC_MATCH for checking exceptions in 'try-except' statements.
|
||||
|
||||
This improves the clarity of the interpreter and should provide a modest
|
||||
speedup.
|
|
@ -1,2 +0,0 @@
|
|||
Fix incorrent line execution reporting in trace functions when tracing
|
||||
exception handlers with name binding. Patch by Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Fix incorrect line execution reporting in trace functions when tracing the
|
||||
last iteration of asynchronous for loops. Patch by Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Correct the error message when trying to construct :class:`range` objects
|
||||
with no arguments. Patch by Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Correct the error message when calling the :func:`min` or :func:`max` with
|
||||
no arguments. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Fix ``SystemError`` when nested function has annotation on positional-only
|
||||
argument - by Anthony Sottile.
|
|
@ -1,2 +0,0 @@
|
|||
Fix constant folding optimization for positional only arguments - by Anthony
|
||||
Sottile.
|
|
@ -1 +0,0 @@
|
|||
Port _json extension module to multiphase initialization (:pep:`489`).
|
|
@ -1,2 +0,0 @@
|
|||
Correctly handle multi-line tokens in interactive mode. Patch by Pablo
|
||||
Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Fix AST end location for lone generator expression in function call, e.g.
|
||||
f(i for i in a).
|
|
@ -1,4 +0,0 @@
|
|||
Improve the displayed error message when incorrect types are passed to ``async
|
||||
with`` statements by looking up the :meth:`__aenter__` special method before
|
||||
the :meth:`__aexit__` special method when entering an asynchronous context
|
||||
manager. Patch by Géry Ogam.
|
|
@ -1,2 +0,0 @@
|
|||
Added a new function :func:`gc.is_finalized` to check if an object has been
|
||||
finalized by the garbage collector. Patch by Pablo Galindo.
|
|
@ -1 +0,0 @@
|
|||
Import loaders which publish immutable module objects can now publish immutable packages in addition to individual modules.
|
|
@ -1,15 +0,0 @@
|
|||
Replace four complex bytecodes for building sequences with three simpler ones.
|
||||
|
||||
|
||||
The following four bytecodes have been removed:
|
||||
|
||||
* BUILD_LIST_UNPACK
|
||||
* BUILD_TUPLE_UNPACK
|
||||
* BUILD_SET_UNPACK
|
||||
* BUILD_TUPLE_UNPACK_WITH_CALL
|
||||
|
||||
The following three bytecodes have been added:
|
||||
|
||||
* LIST_TO_TUPLE
|
||||
* LIST_EXTEND
|
||||
* SET_UPDATE
|
|
@ -1,3 +0,0 @@
|
|||
Add :class:`functools.TopologicalSorter` to the :mod:`functools` module to
|
||||
offers functionality to perform topological sorting of graphs. Patch by
|
||||
Pablo Galindo, Tim Peters and Larry Hastings.
|
|
@ -1 +0,0 @@
|
|||
Prevent double awaiting of async iterator.
|
|
@ -1,2 +0,0 @@
|
|||
Fix possible crashes when operating with the functions in the :mod:`heapq`
|
||||
module and custom comparison operators.
|
|
@ -1,2 +0,0 @@
|
|||
Document all possibilities for the ``-X`` options in the command line help
|
||||
section. Patch by Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
In the :mod:`ast` module documentation, fix a misleading ``NodeTransformer`` example and add
|
||||
advice on when to use the ``fix_missing_locations`` function.
|
|
@ -1,3 +0,0 @@
|
|||
Add an entry for ``__module__`` in the "function" & "method" sections of the
|
||||
`inspect docs types and members table
|
||||
<https://docs.python.org/3/library/inspect.html#types-and-members>`_
|
|
@ -1,2 +0,0 @@
|
|||
Mention in docs that :func:`asyncio.get_event_loop` implicitly creates new
|
||||
event loop only if called from the main thread.
|
|
@ -1,2 +0,0 @@
|
|||
Add tests for editor newline_and_indent_event method.
|
||||
Remove dead code from pyparse find_good_parse_start method.
|
|
@ -1,2 +0,0 @@
|
|||
Tag memoryview, range, and tuple as classes, the same as list, etcetera, in
|
||||
the library manual built-in functions list.
|
|
@ -1 +0,0 @@
|
|||
Make IDLE Settings dialog Help button work again.
|
|
@ -1,13 +0,0 @@
|
|||
Termios magic constants for the following baud rates:
|
||||
- B500000
|
||||
- B576000
|
||||
- B921600
|
||||
- B1000000
|
||||
- B1152000
|
||||
- B1500000
|
||||
- B2000000
|
||||
- B2500000
|
||||
- B3000000
|
||||
- B3500000
|
||||
- B4000000
|
||||
Patch by Andrey Smirnov
|
|
@ -1,2 +0,0 @@
|
|||
Added the pstats.Stats.get_profile_dict() method to return the profile
|
||||
data as a StatsProfile instance.
|
|
@ -1 +0,0 @@
|
|||
Add :func:`copy.copy` and :func:`copy.deepcopy` support to :func:`property` objects.
|
|
@ -1 +0,0 @@
|
|||
Fixed an issue where ``ident`` could include a leading path separator when :func:`syslog.openlog` was called without arguments.
|
|
@ -1,2 +0,0 @@
|
|||
Use signature from inner mock for autospecced methods attached with
|
||||
:func:`unittest.mock.attach_mock`. Patch by Karthikeyan Singaravelan.
|
|
@ -1,2 +0,0 @@
|
|||
Removes trailing space in formatted currency with `international=True` and a locale with symbol following value.
|
||||
E.g. `locale.currency(12.34, international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.
|
|
@ -1,5 +0,0 @@
|
|||
On Unix, :meth:`subprocess.Popen.send_signal` now polls the process status.
|
||||
Polling reduces the risk of sending a signal to the wrong process if the
|
||||
process completed, the :attr:`subprocess.Popen.returncode` attribute is still
|
||||
``None``, and the pid has been reassigned (recycled) to a new different
|
||||
process.
|
|
@ -1,3 +0,0 @@
|
|||
Fixed :func:`Popen.communicate` subsequent call crash when the child process
|
||||
has already closed any piped standard stream, but still continues to be
|
||||
running. Patch by Andriy Maletsky.
|
|
@ -1,5 +0,0 @@
|
|||
:class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an
|
||||
optional *timeout* parameter for their constructors.
|
||||
Also, the :meth:`~imaplib.IMAP4.open` method now has an optional *timeout* parameter
|
||||
with this change. The overridden methods of :class:`~imaplib.IMAP4_SSL` and
|
||||
:class:`~imaplib.IMAP4_stream` were applied to this change. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Fixed __subclasshook__ of :class:`os.PathLike` to return a correct result
|
||||
upon inheritence. Patch by Bar Harel.
|
|
@ -1,5 +0,0 @@
|
|||
Adjusted the wording of the warning issued by distutils' ``check`` command when
|
||||
the ``author`` and ``maintainer`` fields are supplied but no corresponding
|
||||
e-mail field (``author_email`` or ``maintainer_email``) is found. The wording
|
||||
now reflects the fact that these fields are suggested, but not required. Patch
|
||||
by Juergen Gmach.
|
|
@ -1,2 +0,0 @@
|
|||
Implement dummy ``__class_getitem__`` for ``subprocess.Popen``,
|
||||
``subprocess.CompletedProcess``
|
|
@ -1 +0,0 @@
|
|||
Implement dummy ``__class_getitem__`` for :class:`tempfile.SpooledTemporaryFile`.
|
|
@ -1,2 +0,0 @@
|
|||
Fix :func:`mock.patch.stopall` to stop active patches that were created with
|
||||
:func:`mock.patch.dict`.
|
|
@ -1,2 +0,0 @@
|
|||
:func:`base64.b64decode` with ``validate=True`` raises now a binascii.Error
|
||||
if the input ends with a single ``\n``.
|
|
@ -1,2 +0,0 @@
|
|||
Fixed handling invalid warning category in the -W option. No longer import
|
||||
the re module if it is not needed.
|
|
@ -1,2 +0,0 @@
|
|||
:func:`urllib.request.proxy_bypass_environment` now ignores leading dots and
|
||||
no longer ignores a trailing newline.
|
|
@ -1 +0,0 @@
|
|||
Fix import path for ``asyncio.TimeoutError``
|
|
@ -1 +0,0 @@
|
|||
ast.literal_eval() now supports empty sets.
|
|
@ -1,5 +0,0 @@
|
|||
A change was made to logging.config.dictConfig to avoid converting instances
|
||||
of named tuples to ConvertingTuple. It's assumed that named tuples are too
|
||||
specialised to be treated like ordinary tuples; if a user of named tuples
|
||||
requires ConvertingTuple functionality, they will have to implement that
|
||||
themselves in their named tuple class.
|
|
@ -1,2 +0,0 @@
|
|||
Correctly parenthesize filter-based statements that contain lambda
|
||||
expressions in mod:`lib2to3`. Patch by Dong-hee Na.
|
|
@ -1,3 +0,0 @@
|
|||
Perform a check for running loop before starting a new task in
|
||||
``loop.run_until_complete()`` to fail fast; it prevents the side effect of
|
||||
new task spawning before exception raising.
|
|
@ -1 +0,0 @@
|
|||
If an exception were to be thrown in `Logger.isEnabledFor` (say, by asyncio timeouts or stopit) , the `logging` global lock may not be released appropriately, resulting in deadlock. This change wraps that block of code with `try...finally` to ensure the lock is released.
|
|
@ -1,2 +0,0 @@
|
|||
Fix ttk.Scale.configure([name]) to return configuration tuple for name
|
||||
or all options. Giovanni Lombardo contributed part of the patch.
|
|
@ -1 +0,0 @@
|
|||
In http.server script, restore binding to IPv4 on Windows.
|
|
@ -1,2 +0,0 @@
|
|||
The :meth:`select.epoll.unregister` method no longer ignores the
|
||||
:data:`~errno.EBADF` error.
|
|
@ -1 +0,0 @@
|
|||
Proxy the `SimpleHTTPRequestHandler.guess_type` to `mimetypes.guess_type` so the `mimetypes.init` is called lazily to avoid unnecessary costs when :mod:`http.server` module is imported.
|
|
@ -1,3 +0,0 @@
|
|||
Updated the Gmane domain from news.gmane.org to news.gmane.io
|
||||
which is used for examples of :class:`~nntplib.NNTP` news reader server and
|
||||
nntplib tests.
|
|
@ -1,3 +0,0 @@
|
|||
:class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Add :func:`math.nextafter`: return the next floating-point value after *x*
|
||||
towards *y*.
|
|
@ -1,3 +0,0 @@
|
|||
When you specify prompt='.' or equivalently python -m venv --prompt . ...
|
||||
the basename of the current directory is used to set the created venv's
|
||||
prompt when it's activated.
|
|
@ -1,3 +0,0 @@
|
|||
:class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
|
@ -1 +0,0 @@
|
|||
Improved performance of importlib.metadata distribution discovery and resilients to inaccessible sys.path entries (importlib_metadata v1.4.0).
|
|
@ -1 +0,0 @@
|
|||
Add :func:`math.ulp`: return the value of the least significant bit of a float.
|
|
@ -1,3 +0,0 @@
|
|||
:class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
|
@ -1,3 +0,0 @@
|
|||
:class:`~ftplib.FTP_TLS` and :class:`~ftplib.FTP_TLS` now raise a
|
||||
:class:`ValueError` if the given timeout for their constructor is zero to
|
||||
prevent the creation of a non-blocking socket. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Add a new ``exec_function`` option (*--exec-function* in the CLI) to
|
||||
``RefactoringTool`` for making ``exec`` a function. Patch by Batuhan Taskaya.
|
|
@ -1,2 +0,0 @@
|
|||
:class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter.
|
||||
Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Remove ``fractions.gcd()`` function, deprecated since Python 3.5
|
||||
(:issue:`22486`): use :func:`math.gcd` instead.
|
|
@ -1,3 +0,0 @@
|
|||
Remove ``base64.encodestring()`` and ``base64.decodestring()``, aliases
|
||||
deprecated since Python 3.1: use :func:`base64.encodebytes` and
|
||||
:func:`base64.decodebytes` instead.
|
|
@ -1,4 +0,0 @@
|
|||
Deprecate binhex4 and hexbin4 standards. Deprecate the :mod:`binhex` module and
|
||||
the following :mod:`binascii` functions: :func:`~binascii.b2a_hqx`,
|
||||
:func:`~binascii.a2b_hqx`, :func:`~binascii.rlecode_hqx`,
|
||||
:func:`~binascii.rledecode_hqx`, :func:`~binascii.crc_hqx`.
|
|
@ -1,4 +0,0 @@
|
|||
Remove the *buffering* parameter of :class:`bz2.BZ2File`. Since Python 3.0, it
|
||||
was ignored and using it was emitting :exc:`DeprecationWarning`. Pass an open
|
||||
file object, to control how the file is opened. The *compresslevel* parameter
|
||||
becomes keyword-only.
|
|
@ -1,2 +0,0 @@
|
|||
The previously deprecated ``xpath()`` and ``xgtitle()`` methods of
|
||||
:class:`nntplib.NNTP` have been removed.
|
|
@ -1,2 +0,0 @@
|
|||
Write accurate compression level metadata in :mod:`gzip` archives, rather
|
||||
than always signaling maximum compression.
|
|
@ -1,2 +0,0 @@
|
|||
Removed ``encoding`` option from :func:`json.loads`. It has been deprecated
|
||||
since Python 3.1.
|
|
@ -1,2 +0,0 @@
|
|||
Allow :func:`tarfile.is_tarfile` to be used with file and file-like
|
||||
objects, like :func:`zipfile.is_zipfile`. Patch by William Woodruff.
|
|
@ -1 +0,0 @@
|
|||
Fix ``math.nextafter(-0.0, +0.0)`` on AIX 7.1.
|
|
@ -1,3 +0,0 @@
|
|||
If ``setenv()`` C function is available, :func:`os.putenv` is now
|
||||
implemented with ``setenv()`` instead of ``putenv()``, so Python doesn't
|
||||
have to handle the environment variable memory.
|
|
@ -1,2 +0,0 @@
|
|||
The :func:`os.putenv` and :func:`os.unsetenv` functions are now always
|
||||
available.
|
|
@ -1,2 +0,0 @@
|
|||
Fixed a regression with the `ignore` callback of :func:`shutil.copytree`.
|
||||
The argument types are now str and List[str] again.
|
|
@ -1 +0,0 @@
|
|||
The :func:`os.unsetenv` function is now also available on Windows.
|
|
@ -1 +0,0 @@
|
|||
Fixed race condition in lazy imports in :mod:`tarfile`.
|
|
@ -1,4 +1,4 @@
|
|||
This is Python version 3.9.0 alpha 2
|
||||
This is Python version 3.9.0 alpha 3
|
||||
====================================
|
||||
|
||||
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
|
||||
|
|
Loading…
Reference in New Issue