Python 3.9.0a5
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE4/8oOcBIslwITevpsmmV4xAlBWgFAl544Y4ACgkQsmmV4xAl BWib5Q//SUfuC1VL72wNZTECCaNGIxcc1eivlXQsNFgPa5pfeCYT0sGVwWpYPsgp tAQs69Azns4LRkHR9FehklXkIKMNcrn2rYph6CGhdN+9k9J1AmVSWnjNnpXGl7xT UkoabQZVY7LYB0FAQvNWVxONGwY2CKGebm06rLB55T9GZa4jsiCETaMgLB7rX2Re vb7dDZm80Eg+zy4U3Vl936O+IEdBnVhVRTQ0FqSDjm8sXZZ+xZpuh7E7QBXfPCNy RSKLmw8ru+f8eeJ16LefRNqkk4CUxhvGNxFl2BwVA4PcEIwIMh+0lmbNjJPWFHh6 BMcvgKW46VrX1gQezYnRt6iosYa5VdPkdO1eXyiN0OPGj4MpPGMGqxF/mlJPQ+7P dSkKBOkPUDlztAa3hKTMGcDZ8R1s5FESLYMwu1gnz9IQh+U7NUDrsDd8NuUdTepZ BENr5EEBeqwb41v12pr/F/1jy7tiaoupEEzVHb4+tAtwTm6OnwlGhxWZls2l+OGf dEBkRXt+ob7lW10sd5y6OZeKSoW6h4X6Oc152GyFp7JobPPMi6Vl97M/mqbPZ4/L Ld+Kv1gF12z8iF43+2IcWJ2FDotEo+yXiufPiQMrgXJMwCQDjeErOLO3jJJznnAE QeL0wXISaFyaO6TWBWkXTTg+Tr+p5DkkzvxdSOB+JEdfny4M96g= =ybLd -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEE4/8oOcBIslwITevpsmmV4xAlBWgFAl55MXUQHGx1a2FzekBs YW5nYS5wbAAKCRCyaZXjECUFaERFEACcpKfOjX+trFBj29AAPemrrH06fbBXDpPV RqF201Zk3+8B9Ca3q+j2vGsqgmtgl6BPSAnaBJtjGmuMwj/zIcmHv7Gdh5ZqnCWy 6IIjxYQPQZG3knrnH4jX8TQGrpL7CViVnnJzsLNS09gFovdpPq2u8WyHWK1817YR D0lVDG8jXEpcIecmxozcpSBzl195YkoJIlDeIDu8vUzNqM7Y3D4E/pdEyRSB5CnO lnetzi0BnxvQz3klUQiOpdxjH+Qp8ipUT58SMlZa3sDsm8heS73Tt7IFxx9UB58J vHMdumAlcpoUyFTAKC1BByR+HFcMbW2U2QIyTt4NEjPD874KqmC2P3JINwLHqAFT WEzSOTW6c3CUixX1EbzCUzaSMDap4CBjjiGJQleFreWy/sEZnEDZ7+Dca0GO0seM yK4yUzgTX+902zfueQXnyU8/Z7sOB//6/MnESleGXR64Lcf35GK2BA0PF8RT4zcJ wlnuDHGGIQMIYuX1Tm8dZQUIIshl6JURxDhujU3pCFeJmKCzaH/QYCLfDLRGvjJl Rt8a62OojrAGQEakuF6ohbJAvIfDF/ks82Qzk8xfaKmAQjKsBWAg0bpxReI0bBHE jEPss1zujUvFNwe0cY1SBIFxNFl86H8tvj/mCxeyFOm0DYEibtlMKqPhErjHOY90 Cc+s/NyJgA== =zk5D -----END PGP SIGNATURE----- Merge tag 'v3.9.0a5' Python 3.9.0a5
This commit is contained in:
commit
fd88a026be
|
@ -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.
|
||||
|
|
|
@ -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'
|
||||
'**Programmer’s 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'
|
||||
'**Programmer’s 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 '
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Fix build with DTrace but without additional DFLAGS.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
:c:func:`PyNumber_ToBase` now raises a :exc:`SystemError` instead of
|
||||
crashing when called with invalid base.
|
|
@ -1,2 +0,0 @@
|
|||
:c:macro:`Py_UNREACHABLE` is now implemented with
|
||||
``__builtin_unreachable()`` and analogs in release mode.
|
|
@ -1,3 +0,0 @@
|
|||
Deprecated :c:func:`PyEval_InitThreads` and
|
||||
:c:func:`PyEval_ThreadsInitialized`. Calling :c:func:`PyEval_InitThreads` now
|
||||
does nothing.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Add :c:func:`PyInterpreterState_Get` function to the limited C API.
|
|
@ -1,2 +0,0 @@
|
|||
Add :c:func:`PyThreadState_GetInterpreter`: get the interpreter of a Python
|
||||
thread state.
|
|
@ -1 +0,0 @@
|
|||
Add _PyArg_NoKwnames helper function. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Add :c:func:`PyThreadState_GetFrame` function: get the current frame of a
|
||||
Python thread state.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Add :c:func:`PyModule_AddType` helper function: add a type to a module. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
Don't leak environment variable ``__PYVENV_LAUNCHER__`` into the interpreter
|
||||
session on macOS.
|
|
@ -1,2 +0,0 @@
|
|||
Using :data:`NotImplemented` in a boolean context has been deprecated. Patch
|
||||
contributed by Josh Rosenberg.
|
|
@ -1,2 +0,0 @@
|
|||
Do not optimize annotations if 'from __future__ import annotations' is used.
|
||||
Patch by Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Fix unparsing of ext slices with no items (``foo[:,]``). Patch by Batuhan
|
||||
Taskaya.
|
|
@ -1,2 +0,0 @@
|
|||
Optimize :c:func:`PyUnicode_AsUTF8` and :c:func:`PyUnicode_AsUTF8AndSize`
|
||||
slightly when they need to create internal UTF-8 cache.
|
|
@ -1 +0,0 @@
|
|||
Port _locale extension module to multiphase initialization (:pep:`489`).
|
|
@ -1 +0,0 @@
|
|||
Tweak import deadlock detection code to not deadlock itself.
|
|
@ -1,2 +0,0 @@
|
|||
Relax :term:`decorator` grammar restrictions to allow any valid expression
|
||||
(:pep:`614`).
|
|
@ -1 +0,0 @@
|
|||
Port audioop extension module to multiphase initialization (:pep:`489`).
|
|
@ -1,2 +0,0 @@
|
|||
Fixed a crash due to incorrect handling of weak references in
|
||||
``collections.OrderedDict`` classes. Patch by Pablo Galindo.
|
|
@ -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).
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Update Unicode database to Unicode version 13.0.0.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Speed up calls to ``tuple()`` by using the :pep:`590` ``vectorcall`` calling
|
||||
convention. Patch by Dong-hee Na.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Use inline function to replace extension modules' get_module_state macros.
|
|
@ -1 +0,0 @@
|
|||
Port _statistics module to multiphase initialization (:pep:`489`).
|
|
@ -1,2 +0,0 @@
|
|||
Speed up calls to ``set()`` by using the :pep:`590` ``vectorcall`` calling
|
||||
convention. Patch by Dong-hee Na.
|
|
@ -1,3 +0,0 @@
|
|||
subinterpreters: Move ``_PyRuntimeState.ceval.tracing_possible`` to
|
||||
``PyInterpreterState.ceval.tracing_possible``: each interpreter now has its own
|
||||
variable.
|
|
@ -1,2 +0,0 @@
|
|||
Speed up calls to ``frozenset()`` by using the :pep:`590` ``vectorcall``
|
||||
calling convention. Patch by Dong-hee Na.
|
|
@ -1 +0,0 @@
|
|||
Port itertools module to multiphase initialization (:pep:`489`).
|
|
@ -1 +0,0 @@
|
|||
Port _heapq module to multiphase initialization.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Port _collections module to multiphase initialization (:pep:`489`).
|
|
@ -1 +0,0 @@
|
|||
Port _weakref extension module to multiphase initialization (:pep:`489`).
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Changed operand name of **MAKE_FUNCTION** from *argc* to *flags* for module :mod:`dis`
|
|
@ -1 +0,0 @@
|
|||
Update :mod:`token` documentation to reflect additions in Python 3.8
|
|
@ -1 +0,0 @@
|
|||
Fix misleading documentation about mixed-type numeric comparisons.
|
|
@ -1,2 +0,0 @@
|
|||
The language reference no longer restricts default class namespaces to dicts
|
||||
only.
|
|
@ -1 +0,0 @@
|
|||
Change 'string' to 'specification' in format doc.
|
|
@ -1 +0,0 @@
|
|||
Updated the Language Reference for :pep:`572`.
|
|
@ -1 +0,0 @@
|
|||
Selecting code context lines no longer causes a jump.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Since clicking to get an IDLE context menu moves the cursor,
|
||||
any text selection should be and now is cleared.
|
|
@ -1,2 +0,0 @@
|
|||
For 'Go to Line', use a Query box subclass with IDLE standard behavior
|
||||
and improved error checking.
|
|
@ -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())``.
|
|
@ -1,2 +0,0 @@
|
|||
Add support for scoped IPv6 addresses to :mod:`ipaddress`. Patch by Oleksandr
|
||||
Pavliuk.
|
|
@ -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).
|
|
@ -1,2 +0,0 @@
|
|||
Added starred expressions support to ``return`` and ``yield`` statements for
|
||||
``lib2to3``. Patch by Vlad Emelianov.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Remove default value from *attrs* parameter of :meth:`xml.etree.ElementTree.TreeBuilder.start` for consistency between Python and C implementations.
|
|
@ -1 +0,0 @@
|
|||
Adding HTTP status 418 "I'm a Teapot" to HTTPStatus in http library. Patch by Ross Rhodes.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Fix handling of header in :class:`urllib.request.AbstractDigestAuthHandler` when the optional ``qop`` parameter
|
||||
is not present.
|
|
@ -1 +0,0 @@
|
|||
Add thread_name_prefix to default asyncio executor
|
|
@ -1 +0,0 @@
|
|||
Deprecated ``ast.Suite`` node class because it's no longer used. Patch by Batuhan Taskaya.
|
|
@ -1,2 +0,0 @@
|
|||
Keep ASDL signatures in the docstrings for ``AST`` nodes. Patch by Batuhan
|
||||
Taskaya
|
|
@ -1 +0,0 @@
|
|||
Improve pathlib.Path compatibility on zipfile.Path and correct performance degradation as found in zipp 3.0.
|
|
@ -1 +0,0 @@
|
|||
Remove :meth:`tempfile.SpooledTemporaryFile.softspace` as files no longer have the ``softspace`` attribute in Python 3. Patch by Shantanu.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
:class:`types.MappingProxyType` objects now support the merge (``|``) operator
|
||||
from :pep:`584`.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Fix AttributeError when calling get_stack on a PyAsyncGenObject Task
|
|
@ -1,2 +0,0 @@
|
|||
Refactor queue_manager in :class:`concurrent.futures.ProcessPoolExecutor` to
|
||||
make it easier to maintain.
|
|
@ -1,2 +0,0 @@
|
|||
Change ``inspect.Signature.parameters`` back to ``collections.OrderedDict``.
|
||||
This was changed to ``dict`` in Python 3.9.0a4.
|
|
@ -1 +0,0 @@
|
|||
Fix runpy.run_path() when using pathlike objects
|
|
@ -1 +0,0 @@
|
|||
:class:`collections.defaultdict` now implements ``|`` (:pep:`584`).
|
|
@ -1,2 +0,0 @@
|
|||
Add --without-decimal-contextvar build option. This enables a thread-local
|
||||
rather than a coroutine local context.
|
|
@ -1,2 +0,0 @@
|
|||
Reimplement :func:`distutils.spawn.spawn` function with the
|
||||
:mod:`subprocess` module.
|
|
@ -1 +0,0 @@
|
|||
Add getConnection method to logging HTTPHandler to enable custom connections.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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`.
|
|
@ -1 +0,0 @@
|
|||
Fix :mod:`json.tool` to catch :exc:`BrokenPipeError`. Patch by Dong-hee Na.
|
|
@ -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]``).
|
|
@ -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``).
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
More reliable use of ``os.scandir()`` in ``Path.glob()``. It no longer emits
|
||||
a ResourceWarning when interrupted.
|
|
@ -1,2 +0,0 @@
|
|||
Fix the :meth:`random.Random.seed` method when a :class:`bool` is passed as the
|
||||
seed.
|
|
@ -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
Loading…
Reference in New Issue