Commit 3b5deb01 authored by Łukasz Langa's avatar Łukasz Langa

Python 3.8.0b1

parent 8d0ef0b5
......@@ -36,7 +36,7 @@ import suspicious
ISSUE_URI = 'https://bugs.python.org/issue%s'
SOURCE_URI = 'https://github.com/python/cpython/tree/master/%s'
SOURCE_URI = 'https://github.com/python/cpython/tree/3.8/%s'
# monkey-patch reST parser to disable alphabetic and roman enumerated lists
from docutils.parsers.rst.states import Body
......
......@@ -19,11 +19,11 @@
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 8
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 4
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
#define PY_RELEASE_SERIAL 1
/* Version as a string */
#define PY_VERSION "3.8.0a4+"
#define PY_VERSION "3.8.0b1"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
......
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Wed May 29 01:18:52 2019
# Autogenerated by Sphinx on Tue Jun 4 19:40:37 2019
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
......@@ -357,12 +357,13 @@ topics = {'assert': 'The "assert" statement\n'
'a variable or attribute annotation and an optional assignment\n'
'statement:\n'
'\n'
' annotated_assignment_stmt ::= augtarget ":" expression ["=" '
'expression]\n'
' annotated_assignment_stmt ::= augtarget ":" expression\n'
' ["=" (starred_expression | '
'yield_expression)]\n'
'\n'
'The difference from normal Assignment statements is that only '
'single\n'
'target and only single right hand side value is allowed.\n'
'target is allowed.\n'
'\n'
'For simple names as assignment targets, if in class or module '
'scope,\n'
......@@ -409,7 +410,14 @@ topics = {'assert': 'The "assert" statement\n'
'standard\n'
' syntax for type annotations that can be used in static '
'analysis\n'
' tools and IDEs.\n',
' tools and IDEs.\n'
'\n'
'Changed in version 3.8: Now annotated assignments allow same\n'
'expressions in the right hand side as the regular '
'assignments.\n'
'Previously, some expressions (like un-parenthesized tuple '
'expressions)\n'
'caused a syntax error.\n',
'async': 'Coroutines\n'
'**********\n'
'\n'
......@@ -2026,21 +2034,22 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For user-defined classes which do not define "__contains__()" '
'but do\n'
'define "__iter__()", "x in y" is "True" if some value "z" '
'with "x ==\n'
'z" is produced while iterating over "y". If an exception is '
'raised\n'
'during the iteration, it is as if "in" raised that '
'exception.\n'
'define "__iter__()", "x in y" is "True" if some value "z", '
'for which\n'
'the expression "x is z or x == z" is true, is produced while '
'iterating\n'
'over "y". If an exception is raised during the iteration, it '
'is as if\n'
'"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class '
'defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a '
'non-\n'
'negative integer index *i* such that "x == y[i]", and all '
'lower\n'
'integer indices do not raise "IndexError" exception. (If any '
'other\n'
'negative integer index *i* such that "x is y[i] or x == '
'y[i]", and no\n'
'lower integer index raises the "IndexError" exception. (If '
'any other\n'
'exception is raised, it is as if "in" raised that '
'exception).\n'
'\n'
......@@ -5081,7 +5090,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'<\'" | Forces the field to be left-aligned '
'within the available |\n'
' | | space (this is the default for most '
......@@ -5130,7 +5139,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'+\'" | indicates that a sign should be used for '
'both positive as |\n'
' | | well as negative '
......@@ -5234,7 +5243,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'s\'" | String format. This is the default type '
'for strings and |\n'
' | | may be '
......@@ -5254,7 +5263,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'b\'" | Binary format. Outputs the number in '
'base 2. |\n'
' '
......@@ -5316,7 +5325,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'e\'" | Exponent notation. Prints the number in '
'scientific |\n'
' | | notation using the letter ‘e’ to indicate '
......@@ -6334,14 +6343,16 @@ topics = {'assert': 'The "assert" statement\n'
'"False" otherwise.\n'
'\n'
'For user-defined classes which do not define "__contains__()" but do\n'
'define "__iter__()", "x in y" is "True" if some value "z" with "x ==\n'
'z" is produced while iterating over "y". If an exception is raised\n'
'during the iteration, it is as if "in" raised that exception.\n'
'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
'the expression "x is z or x == z" is true, is produced while '
'iterating\n'
'over "y". If an exception is raised during the iteration, it is as if\n'
'"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a non-\n'
'negative integer index *i* such that "x == y[i]", and all lower\n'
'integer indices do not raise "IndexError" exception. (If any other\n'
'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
'lower integer index raises the "IndexError" exception. (If any other\n'
'exception is raised, it is as if "in" raised that exception).\n'
'\n'
'The operator "not in" is defined to have the inverse truth value of\n'
......@@ -6850,11 +6861,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
' Note: In order to have a coherent integer type class, '
'when\n'
' "__index__()" is defined "__int__()" should also be '
'defined, and\n'
' both should return the same value.\n'
' If "__int__()", "__float__()" and "__complex__()" are '
'not defined\n'
' then corresponding built-in functions "int()", "float()" '
'and\n'
' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
......@@ -7025,7 +7036,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------------------------------------+---------------------------------------+\n'
'| Operator | '
'Description |\n'
'|=================================================|=======================================|\n'
'+=================================================+=======================================+\n'
'| "lambda" | '
'Lambda expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
......@@ -8716,7 +8727,7 @@ topics = {'assert': 'The "assert" statement\n'
' in:\n'
'\n'
' class Philosopher:\n'
' def __init_subclass__(cls, default_name, '
' def __init_subclass__(cls, /, default_name, '
'**kwargs):\n'
' super().__init_subclass__(**kwargs)\n'
' cls.default_name = default_name\n'
......@@ -9469,11 +9480,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
' Note: In order to have a coherent integer type class, '
'when\n'
' "__index__()" is defined "__int__()" should also be '
'defined, and\n'
' both should return the same value.\n'
' If "__int__()", "__float__()" and "__complex__()" are not '
'defined\n'
' then corresponding built-in functions "int()", "float()" '
'and\n'
' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
......@@ -10269,7 +10280,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Representation | '
'Description |\n'
' '
'|=========================|===============================|\n'
'+=========================+===============================+\n'
' | "\\n" | Line '
'Feed |\n'
' '
......@@ -10608,7 +10619,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
'|===================|===================================|=========|\n'
'+===================+===================================+=========+\n'
'| "\\newline" | Backslash and newline ignored '
'| |\n'
'+-------------------+-----------------------------------+---------+\n'
......@@ -10654,7 +10665,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
'|===================|===================================|=========|\n'
'+===================+===================================+=========+\n'
'| "\\N{name}" | Character named *name* in the | '
'(4) |\n'
'| | Unicode database | '
......@@ -11292,7 +11303,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Attribute | Meaning '
'| |\n'
' '
'|===========================|=================================|=============|\n'
'+===========================+=================================+=============+\n'
' | "__doc__" | The function’s documentation '
'| Writable |\n'
' | | string, or "None" if '
......@@ -11769,33 +11780,36 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Special read-only attributes: "co_name" gives the function '
'name;\n'
' "co_argcount" is the number of positional arguments '
'(including\n'
' arguments with default values); "co_nlocals" is the number '
'of\n'
' local variables used by the function (including arguments);\n'
' "co_varnames" is a tuple containing the names of the local\n'
' variables (starting with the argument names); "co_cellvars" '
'is a\n'
' tuple containing the names of local variables that are\n'
' referenced by nested functions; "co_freevars" is a tuple\n'
' containing the names of free variables; "co_code" is a '
'string\n'
' representing the sequence of bytecode instructions; '
'"co_consts"\n'
' is a tuple containing the literals used by the bytecode;\n'
' "co_names" is a tuple containing the names used by the '
'bytecode;\n'
' "co_filename" is the filename from which the code was '
'compiled;\n'
' "co_firstlineno" is the first line number of the function;\n'
' "co_lnotab" is a string encoding the mapping from bytecode\n'
' offsets to line numbers (for details see the source code of '
' "co_argcount" is the total number of positional arguments\n'
' (including positional-only arguments and arguments with '
'default\n'
' values); "co_posonlyargcount" is the number of '
'positional-only\n'
' arguments (including arguments with default values);\n'
' "co_kwonlyargcount" is the number of keyword-only arguments\n'
' (including arguments with default values); "co_nlocals" is '
'the\n'
' number of local variables used by the function (including\n'
' arguments); "co_varnames" is a tuple containing the names of '
'the\n'
' local variables (starting with the argument names);\n'
' "co_cellvars" is a tuple containing the names of local '
'variables\n'
' that are referenced by nested functions; "co_freevars" is a\n'
' tuple containing the names of free variables; "co_code" is a\n'
' string representing the sequence of bytecode instructions;\n'
' "co_consts" is a tuple containing the literals used by the\n'
' bytecode; "co_names" is a tuple containing the names used by '
'the\n'
' interpreter); "co_stacksize" is the required stack size\n'
' (including local variables); "co_flags" is an integer '
'encoding a\n'
' number of flags for the interpreter.\n'
' bytecode; "co_filename" is the filename from which the code '
'was\n'
' compiled; "co_firstlineno" is the first line number of the\n'
' function; "co_lnotab" is a string encoding the mapping from\n'
' bytecode offsets to line numbers (for details see the source\n'
' code of the interpreter); "co_stacksize" is the required '
'stack\n'
' size (including local variables); "co_flags" is an integer\n'
' encoding a number of flags for the interpreter.\n'
'\n'
' The following flag bits are defined for "co_flags": bit '
'"0x04"\n'
......@@ -12563,7 +12577,7 @@ topics = {'assert': 'The "assert" statement\n'
'+----------------------------+----------------------------------+------------+\n'
'| Operation | Result '
'| Notes |\n'
'|============================|==================================|============|\n'
'+============================+==================================+============+\n'
'| "x in s" | "True" if an item of *s* is '
'| (1) |\n'
'| | equal to *x*, else "False" '
......@@ -12792,7 +12806,7 @@ topics = {'assert': 'The "assert" statement\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
'| Operation | '
'Result | Notes |\n'
'|================================|==================================|=======================|\n'
'+================================+==================================+=======================+\n'
'| "s[i] = x" | item *i* of *s* is replaced '
'by | |\n'
'| | '
......@@ -13254,7 +13268,7 @@ topics = {'assert': 'The "assert" statement\n'
'| Operation | '
'Result | Notes '
'|\n'
'|================================|==================================|=======================|\n'
'+================================+==================================+=======================+\n'
'| "s[i] = x" | item *i* of *s* is '
'replaced by | |\n'
'| | '
......
.. bpo: 35907
.. date: 2019-05-21-23-20-18
.. nonce: NC_zNK
.. release date: 2019-06-04
.. section: Security
CVE-2019-9948: Avoid file reading by disallowing ``local-file://`` and
``local_file://`` URL schemes in ``URLopener().open()`` and
``URLopener().retrieve()`` of :mod:`urllib.request`.
..
.. bpo: 33529
.. date: 2019-02-24-18-48-16
.. nonce: wpNNBD
.. section: Security
Prevent fold function used in email header encoding from entering infinite
loop when there are too many non-ASCII characters in a header.
..
.. bpo: 33164
.. date: 2018-03-30-12-26-47
.. nonce: aO29Cx
.. section: Security
Updated blake2 implementation which uses secure memset implementation
provided by platform.
..
.. bpo: 35814
.. date: 2019-06-03-00-51-02
.. nonce: Cf7sGY
.. section: Core and Builtins
Allow unpacking in the right hand side of annotated assignments. In
particular, ``t: Tuple[int, ...] = x, y, *z`` is now allowed.
..
.. bpo: 37126
.. date: 2019-06-01-20-03-13
.. nonce: tP6lL4
.. section: Core and Builtins
All structseq objects are now tracked by the garbage collector. Patch by
Pablo Galindo.
..
.. bpo: 37122
.. date: 2019-06-01-16-53-41
.. nonce: dZ3-NY
.. section: Core and Builtins
Make the *co_argcount* attribute of code objects represent the total number
of positional arguments (including positional-only arguments). The value of
*co_posonlyargcount* can be used to distinguish which arguments are
positional only, and the difference (*co_argcount* - *co_posonlyargcount*)
is the number of positional-or-keyword arguments. Patch by Pablo Galindo.
..
.. bpo: 20092
.. date: 2019-05-31-11-55-49
.. nonce: KIMjBW
.. section: Core and Builtins
Constructors of :class:`int`, :class:`float` and :class:`complex` will now
use the :meth:`~object.__index__` special method, if available and the
corresponding method :meth:`~object.__int__`, :meth:`~object.__float__` or
:meth:`~object.__complex__` is not available.
..
.. bpo: 37087
.. date: 2019-05-30-17-33-55
.. nonce: vElenE
.. section: Core and Builtins
Add native thread ID (TID) support to OpenBSD.
..
.. bpo: 26219
.. date: 2019-05-29-22-03-09
.. nonce: Ovf1Qs
.. section: Core and Builtins
Implemented per opcode cache mechanism and ``LOAD_GLOBAL`` instruction use
it. ``LOAD_GLOBAL`` is now about 40% faster. Contributed by Yury Selivanov,
and Inada Naoki.
..
.. bpo: 37072
.. date: 2019-05-28-18-18-55
.. nonce: 1Hewl3
.. section: Core and Builtins
Fix crash in PyAST_FromNodeObject() when flags is NULL.
..
.. bpo: 37029
.. date: 2019-05-28-17-02-46
.. nonce: MxpgfJ
.. section: Core and Builtins
Freeing a great many small objects could take time quadratic in the number
of arenas, due to using linear search to keep ``obmalloc.c``'s list of
usable arenas sorted by order of number of free memory pools. This is
accomplished without search now, leaving the worst-case time linear in the
number of arenas. For programs where this quite visibly matters (typically
with more than 100 thousand small objects alive simultaneously), this can
greatly reduce the time needed to release their memory.
..
.. bpo: 26423
.. date: 2019-05-27-18-00-19
.. nonce: RgUOE8
.. section: Core and Builtins
Fix possible overflow in ``wrap_lenfunc()`` when ``sizeof(long) <
sizeof(Py_ssize_t)`` (e.g., 64-bit Windows).
..
.. bpo: 37050
.. date: 2019-05-27-14-46-24
.. nonce: 7MyZGg
.. section: Core and Builtins
Improve the AST for "debug" f-strings, which use '=' to print out the source
of the expression being evaluated. Delete expr_text from the FormattedValue
node, and instead use a Constant string node (possibly merged with adjacent
constant expressions inside the f-string).
..
.. bpo: 22385
.. date: 2019-05-25-17-18-26
.. nonce: VeVvhJ
.. section: Core and Builtins
The `bytes.hex`, `bytearray.hex`, and `memoryview.hex` methods as well as
the `binascii.hexlify` and `b2a_hex` functions now have the ability to
include an optional separator between hex bytes. This functionality was
inspired by MicroPython's hexlify implementation.
..
.. bpo: 26836
.. date: 2019-05-25-08-18-01
.. nonce: rplYWW
.. section: Core and Builtins
Add :func:`os.memfd_create`.
..
.. bpo: 37032
.. date: 2019-05-24-12-38-40
.. nonce: T8rSH8
.. section: Core and Builtins
Added new ``replace()`` method to the code type (:class:`types.CodeType`).
..
.. bpo: 37007
.. date: 2019-05-23-04-19-13
.. nonce: d1SOtF
.. section: Core and Builtins
Implement :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`,
and :func:`socket.if_indextoname()` on Windows.
..
.. bpo: 36829
.. date: 2019-05-22-23-01-29
.. nonce: MfOcUg
.. section: Core and Builtins
:c:func:`PyErr_WriteUnraisable` now creates a traceback object if there is
no current traceback. Moreover, call :c:func:`PyErr_NormalizeException` and
:c:func:`PyException_SetTraceback` to normalize the exception value. Ignore
any error.
..
.. bpo: 36878
.. date: 2019-05-22-11-16-16
.. nonce: QwLa3P
.. section: Core and Builtins
Only accept text after `# type: ignore` if the first character is ASCII.
This is to disallow things like `# type: ignoreé`.
..
.. bpo: 36878
.. date: 2019-05-21-16-21-22
.. nonce: EFRHZ3
.. section: Core and Builtins
Store text appearing after a `# type: ignore` comment in the AST. For
example a type ignore like `# type: ignore[E1000]` will have the string
`"[E1000]"` stored in its AST node.
..
.. bpo: 2180
.. date: 2019-05-17-18-34-30
.. nonce: aBqHeW
.. section: Core and Builtins
Treat line continuation at EOF as a ``SyntaxError`` by Anthony Sottile.
..
.. bpo: 36907
.. date: 2019-05-17-12-28-24
.. nonce: rk7kgp
.. section: Core and Builtins
Fix a crash when calling a C function with a keyword dict (``f(**kwargs)``)
and changing the dict ``kwargs`` while that function is running.
..
.. bpo: 36946
.. date: 2019-05-16-23-53-45
.. nonce: qjxr0Y
.. section: Core and Builtins
Fix possible signed integer overflow when handling slices.
..
.. bpo: 36826
.. date: 2019-05-15-14-01-09
.. nonce: GLrO3W
.. section: Core and Builtins
Add NamedExpression kind support to ast_unparse.c
..
.. bpo: 1875
.. date: 2019-05-15-01-29-29
.. nonce: 9oxXFX
.. section: Core and Builtins
A :exc:`SyntaxError` is now raised if a code blocks that will be optimized
away (e.g. if conditions that are always false) contains syntax errors.
Patch by Pablo Galindo.
..
.. bpo: 36027
.. date: 2019-05-12-18-46-50
.. nonce: Q4YatQ
.. section: Core and Builtins
Allow computation of modular inverses via three-argument ``pow``: the second
argument is now permitted to be negative in the case where the first and
third arguments are relatively prime.
..
.. bpo: 36861
.. date: 2019-05-08-20-42-40
.. nonce: 72mvZM
.. section: Core and Builtins
Update the Unicode database to version 12.1.0.
..
.. bpo: 28866
.. date: 2019-05-08-16-36-51
.. nonce: qCv_bj
.. section: Core and Builtins
Avoid caching attributes of classes which type defines mro() to avoid a hard
cache invalidation problem.
..
.. bpo: 36851
.. date: 2019-05-08-11-42-06
.. nonce: J7DiCW
.. section: Core and Builtins
The ``FrameType`` stack is now correctly cleaned up if the execution ends
with a return and the stack is not empty.
..
.. bpo: 34616
.. date: 2019-05-07-17-12-37
.. nonce: 0Y0_9r
.. section: Core and Builtins
The ``compile()`` builtin functions now support the
``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag, which allow to compile sources
that contains top-level ``await``, ``async with`` or ``async for``. This is
useful to evaluate async-code from with an already async functions; for
example in a custom REPL.
..
.. bpo: 36842
.. date: 2019-05-07-16-50-12
.. nonce: NYww_N
.. section: Core and Builtins
Implement PEP 578, adding sys.audit, io.open_code and related APIs.
..
.. bpo: 27639
.. date: 2019-05-07-15-49-17
.. nonce: b1Ah87
.. section: Core and Builtins
Correct return type for UserList slicing operations. Patch by Michael
Blahay, Erick Cervantes, and vaultah
..
.. bpo: 36737
.. date: 2019-05-07-12-18-11
.. nonce: XAo6LY
.. section: Core and Builtins
Move PyRuntimeState.warnings into per-interpreter state (via "module
state").
..
.. bpo: 36793
.. date: 2019-05-04-16-15-33
.. nonce: Izog4Z
.. section: Core and Builtins
Removed ``__str__`` implementations from builtin types :class:`bool`,
:class:`int`, :class:`float`, :class:`complex` and few classes from the
standard library. They now inherit ``__str__()`` from :class:`object`.
..
.. bpo: 36774
.. date: 2019-05-02-11-48-08
.. nonce: ZqbJ1J
.. section: Core and Builtins
Add a ``=`` feature f-strings for debugging. This can precede ``!s``,
``!r``, or ``!a``. It produces the text of the expression, followed by an
equal sign, followed by the repr of the value of the expression. So
``f'{3*9+15=}'`` would be equal to the string ``'3*9+15=42'``. If ``=`` is
specified, the default conversion is set to ``!r``, unless a format spec is
given, in which case the formatting behavior is unchanged, and __format__
will be used.
..
.. bpo: 24048
.. date: 2019-04-29-03-27-22
.. nonce: vXxUDQ
.. section: Core and Builtins
Save the live exception during import.c's ``remove_module()``.
..
.. bpo: 27987
.. date: 2019-04-16-11-52-21
.. nonce: n2_DcQ
.. section: Core and Builtins
pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on
64-bit platforms to conform x86-64 ABI. Recent compilers assume this
alignment more often. Patch by Inada Naoki.
..
.. bpo: 36601
.. date: 2019-04-13-16-14-16
.. nonce: mIgS7t
.. section: Core and Builtins
A long-since-meaningless check for ``getpid() == main_pid`` was removed from
Python's internal C signal handler.
..
.. bpo: 36594
.. date: 2019-04-10-18-12-11
.. nonce: fbnJAc
.. section: Core and Builtins
Fix incorrect use of ``%p`` in format strings. Patch by Zackery Spytz.
..
.. bpo: 36045
.. date: 2019-02-24-12-44-46
.. nonce: RO20OV
.. section: Core and Builtins
builtins.help() now prefixes `async` for async functions
..
.. bpo: 36084
.. date: 2019-02-22-23-03-20
.. nonce: 86Eh4X
.. section: Core and Builtins
Add native thread ID (TID) to threading.Thread objects (supported platforms:
Windows, FreeBSD, Linux, macOS)
..
.. bpo: 36035
.. date: 2019-02-22-14-30-19
.. nonce: -6dy1y
.. section: Core and Builtins
Added fix for broken symlinks in combination with pathlib
..
.. bpo: 35983
.. date: 2019-02-13-16-47-19
.. nonce: bNxsXv
.. section: Core and Builtins
Added new trashcan macros to deal with a double deallocation that could
occur when the `tp_dealloc` of a subclass calls the `tp_dealloc` of a base
class and that base class uses the trashcan mechanism. Patch by Jeroen
Demeyer.
..
.. bpo: 20602
.. date: 2018-07-04-16-57-59
.. nonce: sDLElw
.. section: Core and Builtins
Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown.
Patch by Zackery Spytz.
..
.. bpo: 26826
.. date: 2018-05-30-23-43-03
.. nonce: NkRzjb
.. section: Core and Builtins
Expose :func:`copy_file_range` as a low level API in the :mod:`os` module.
..
.. bpo: 32388
.. date: 2017-12-21-20-37-40
.. nonce: 6w-i5t
.. section: Core and Builtins
Remove cross-version binary compatibility requirement in tp_flags.
..
.. bpo: 31862
.. date: 2017-10-24-17-26-58
.. nonce: 5Gea8L
.. section: Core and Builtins
Port binascii to PEP 489 multiphase initialization. Patch by Marcel Plch.
..
.. bpo: 37128
.. date: 2019-06-01-22-54-03
.. nonce: oGXBWN
.. section: Library
Added :func:`math.perm`.
..
.. bpo: 37120
.. date: 2019-06-01-09-03-32
.. nonce: FOKQLU
.. section: Library
Add SSLContext.num_tickets to control the number of TLSv1.3 session tickets.
..
.. bpo: 12202
.. date: 2019-05-31-15-53-34
.. nonce: nobzc9
.. section: Library
Fix the error handling in :meth:`msilib.SummaryInformation.GetProperty`.
Patch by Zackery Spytz.
..
.. bpo: 26835
.. date: 2019-05-31-11-33-11
.. nonce: xGbUX0
.. section: Library
The fcntl module now contains file sealing constants for sealing of memfds.
..
.. bpo: 29262
.. date: 2019-05-30-21-25-14
.. nonce: LdIzun
.. section: Library
Add ``get_origin()`` and ``get_args()`` introspection helpers to ``typing``
module.
..
.. bpo: 12639
.. date: 2019-05-30-16-16-47
.. nonce: TQFOR4
.. section: Library
:meth:`msilib.Directory.start_component()` no longer fails if *keyfile* is
not ``None``.
..
.. bpo: 36999
.. date: 2019-05-30-13-30-46
.. nonce: EjY_L2
.. section: Library
Add the ``asyncio.Task.get_coro()`` method to publicly expose the tasks's
coroutine object.
..
.. bpo: 35246
.. date: 2019-05-28-23-17-35
.. nonce: oXT21d
.. section: Library
Make :func:`asyncio.create_subprocess_exec` accept path-like arguments.
..
.. bpo: 35279
.. date: 2019-05-28-19-14-29
.. nonce: PX7yl9
.. section: Library
Change default *max_workers* of ``ThreadPoolExecutor`` from ``cpu_count() *
5`` to ``min(32, cpu_count() + 4))``. Previous value was unreasonably large
on many cores machines.
..
.. bpo: 37076
.. date: 2019-05-28-12-17-10
.. nonce: Bk2xOs
.. section: Library
:func:`_thread.start_new_thread` now logs uncaught exception raised by the
function using :func:`sys.unraisablehook`, rather than
:func:`sys.excepthook`, so the hook gets access to the function which raised
the exception.
..
.. bpo: 33725
.. date: 2019-05-28-01-17-42
.. nonce: fFZoDG
.. section: Library
On macOS, the :mod:`multiprocessing` module now uses *spawn* start method by
default.
..
.. bpo: 37054
.. date: 2019-05-28-01-06-44
.. nonce: sLULGQ
.. section: Library
Fix destructor :class:`_pyio.BytesIO` and :class:`_pyio.TextIOWrapper`:
initialize their ``_buffer`` attribute as soon as possible (in the class
body), because it's used by ``__del__()`` which calls ``close()``.
..
.. bpo: 37058
.. date: 2019-05-26-19-05-24
.. nonce: jmRu_g
.. section: Library
PEP 544: Add ``Protocol`` and ``@runtime_checkable`` to the ``typing``
module.
..
.. bpo: 36933
.. date: 2019-05-26-10-16-55
.. nonce: 4w3eP9
.. section: Library
The functions ``sys.set_coroutine_wrapper`` and
``sys.get_coroutine_wrapper`` that were deprecated and marked for removal in
3.8 have been removed.
..
.. bpo: 37047
.. date: 2019-05-26-01-20-06
.. nonce: K9epi8
.. section: Library
Handle late binding and attribute access in :class:`unittest.mock.AsyncMock`
setup for autospeccing. Document newly implemented async methods in
:class:`unittest.mock.MagicMock`.
..
.. bpo: 37049
.. date: 2019-05-25-19-48-42
.. nonce: an2LXJ
.. section: Library
PEP 589: Add ``TypedDict`` to the ``typing`` module.
..
.. bpo: 37046
.. date: 2019-05-25-19-12-53
.. nonce: iuhQQj
.. section: Library
PEP 586: Add ``Literal`` to the ``typing`` module.
..
.. bpo: 37045
.. date: 2019-05-25-18-36-50
.. nonce: suHdVJ
.. section: Library
PEP 591: Add ``Final`` qualifier and ``@final`` decorator to the ``typing``
module.
..
.. bpo: 37035
.. date: 2019-05-24-18-16-07
.. nonce: HFbJVT
.. section: Library
Don't log OSError based exceptions if a fatal error has occurred in asyncio
transport. Peer can generate almost any OSError, user cannot avoid these
exceptions by fixing own code. Errors are still propagated to user code,
it's just logging them is pointless and pollute asyncio logs.
..
.. bpo: 37001
.. date: 2019-05-23-21-10-57
.. nonce: DoLvTK
.. section: Library
:func:`symtable.symtable` now accepts the same input types for source code
as the built-in :func:`compile` function. Patch by Dino Viehland.
..
.. bpo: 37028
.. date: 2019-05-23-18-57-34
.. nonce: Vse6Pj
.. section: Library
Implement asyncio REPL
..
.. bpo: 37027
.. date: 2019-05-23-18-46-56
.. nonce: iH4eut
.. section: Library
Return safe to use proxy socket object from
transport.get_extra_info('socket')
..
.. bpo: 32528
.. date: 2019-05-23-17-37-22
.. nonce: sGnkcl
.. section: Library
Make asyncio.CancelledError a BaseException.
This will address the common mistake many asyncio users make: an "except
Exception" clause breaking Tasks cancellation.
In addition to this change, we stop inheriting asyncio.TimeoutError and
asyncio.InvalidStateError from their concurrent.futures.* counterparts.
There's no point for these exceptions to share the inheritance chain.
..
.. bpo: 1230540
.. date: 2019-05-23-01-48-39
.. nonce: oKTNEQ
.. section: Library
Add a new :func:`threading.excepthook` function which handles uncaught
:meth:`threading.Thread.run` exception. It can be overridden to control how
uncaught :meth:`threading.Thread.run` exceptions are handled.
..
.. bpo: 36996
.. date: 2019-05-22-22-55-18
.. nonce: XQx08d
.. section: Library
Handle :func:`unittest.mock.patch` used as a decorator on async functions.
..
.. bpo: 37008
.. date: 2019-05-22-15-26-08
.. nonce: WPbv31
.. section: Library
Add support for calling :func:`next` with the mock resulting from
:func:`unittest.mock.mock_open`
..
.. bpo: 27737
.. date: 2019-05-22-02-25-31
.. nonce: 7bgKpa
.. section: Library
Allow whitespace only header encoding in ``email.header`` - by Batuhan
Taskaya
..
.. bpo: 36969
.. date: 2019-05-21-12-31-21
.. nonce: u7cxu7
.. section: Library
PDB command `args` now display positional only arguments. Patch contributed
by Rémi Lapeyre.
..
.. bpo: 36969
.. date: 2019-05-20-23-31-20
.. nonce: JkZORP
.. section: Library
PDB command `args` now display keyword only arguments. Patch contributed by
Rémi Lapeyre.
..
.. bpo: 36983
.. date: 2019-05-20-20-41-30
.. nonce: hz-fLr
.. section: Library
Add missing names to ``typing.__all__``: ``ChainMap``, ``ForwardRef``,
``OrderedDict`` - by Anthony Sottile.
..
.. bpo: 36972
.. date: 2019-05-20-17-08-26
.. nonce: 3l3SGc
.. section: Library
Add SupportsIndex protocol to the typing module to allow type checking to
detect classes that can be passed to `hex()`, `oct()` and `bin()`.
..
.. bpo: 32972
.. date: 2019-05-20-14-47-55
.. nonce: LoeUNh
.. section: Library
Implement ``unittest.AsyncTestCase`` to help testing asyncio-based code.
..
.. bpo: 36952
.. date: 2019-05-20-11-01-28
.. nonce: MgZi7-
.. section: Library
:func:`fileinput.input` and :class:`fileinput.FileInput` **bufsize**
argument has been removed (was deprecated and ignored since Python 3.6), and
as a result the **mode** and **openhook** arguments have been made
keyword-only.
..
.. bpo: 36952
.. date: 2019-05-20-08-54-41
.. nonce: I_glok
.. section: Library
Starting with Python 3.3, importing ABCs from :mod:`collections` is
deprecated, and import should be done from :mod:`collections.abc`. Still
being able to import from :mod:`collections` was marked for removal in 3.8,
but has been delayed to 3.9; documentation and ``DeprecationWarning``
clarified.
..
.. bpo: 36949
.. date: 2019-05-19-06-54-26
.. nonce: jBlG9F
.. section: Library
Implement __repr__ for WeakSet objects.
..
.. bpo: 36948
.. date: 2019-05-17-21-42-58
.. nonce: vnUDvk
.. section: Library
Fix :exc:`NameError` in :meth:`urllib.request.URLopener.retrieve`. Patch by
Karthikeyan Singaravelan.
..
.. bpo: 33524
.. date: 2019-05-17-11-44-21
.. nonce: 8y_xUU
.. section: Library
Fix the folding of email header when the max_line_length is 0 or None and
the header contains non-ascii characters. Contributed by Licht Takeuchi
(@Licht-T).
..
.. bpo: 24564
.. date: 2019-05-16-23-40-36
.. nonce: lIwV_7
.. section: Library
:func:`shutil.copystat` now ignores :const:`errno.EINVAL` on
:func:`os.setxattr` which may occur when copying files on filesystems
without extended attributes support.
Original patch by Giampaolo Rodola, updated by Ying Wang.
..
.. bpo: 36888
.. date: 2019-05-16-18-02-08
.. nonce: -H2Dkm
.. section: Library
Python child processes can now access the status of their parent process
using multiprocessing.process.parent_process
..
.. bpo: 36921
.. date: 2019-05-15-21-35-23
.. nonce: kA1306
.. section: Library
Deprecate ``@coroutine`` for sake of ``async def``.
..
.. bpo: 25652
.. date: 2019-05-14-21-39-52
.. nonce: xLw42k
.. section: Library
Fix bug in ``__rmod__`` of ``UserString`` - by Batuhan Taskaya.
..
.. bpo: 36916
.. date: 2019-05-14-15-39-34
.. nonce: _GPsTt
.. section: Library
Remove a message about an unhandled exception in a task when writer.write()
is used without await and writer.drain() fails with an exception.
..
.. bpo: 36889
.. date: 2019-05-14-12-25-44
.. nonce: MChPqP
.. section: Library
Introduce :class:`asyncio.Stream` class that merges
:class:`asyncio.StreamReader` and :class:`asyncio.StreamWriter`
functionality. :class:`asyncio.Stream` can work in readonly, writeonly and
readwrite modes. Provide :func:`asyncio.connect`,
:func:`asyncio.connect_unix`, :func:`asyncio.connect_read_pipe` and
:func:`asyncio.connect_write_pipe` factories to open :class:`asyncio.Stream`
connections. Provide :class:`asyncio.StreamServer` and
:class:`UnixStreamServer` to serve servers with asyncio.Stream API. Modify
:func:`asyncio.create_subprocess_shell` and
:func:`asyncio.create_subprocess_exec` to use :class:`asyncio.Stream`
instead of deprecated :class:`StreamReader` and :class:`StreamWriter`.
Deprecate :class:`asyncio.StreamReader` and :class:`asyncio.StreamWriter`.
Deprecate usage of private classes, e.g. :class:`asyncio.FlowControlMixing`
and :class:`asyncio.StreamReaderProtocol` outside of asyncio package.
..
.. bpo: 36845
.. date: 2019-05-14-07-57-02
.. nonce: _GtFFf
.. section: Library
Added validation of integer prefixes to the construction of IP networks and
interfaces in the ipaddress module.
..
.. bpo: 23378
.. date: 2019-05-14-05-38-22
.. nonce: R25teI
.. section: Library
Add an extend action to argparser.
..
.. bpo: 36867
.. date: 2019-05-13-13-02-43
.. nonce: Qh-6mX
.. section: Library
Fix a bug making a SharedMemoryManager instance and its parent process use
two separate resource_tracker processes.
..
.. bpo: 23896
.. date: 2019-05-13-05-49-15
.. nonce: 8TtUKo
.. section: Library
Adds a grammar to lib2to3.pygram that contains exec as a function not as
statement.
..
.. bpo: 36895
.. date: 2019-05-12-14-49-13
.. nonce: ZZuuY7
.. section: Library
The function ``time.clock()`` was deprecated in 3.3 in favor of
``time.perf_counter()`` and marked for removal in 3.8, it has removed.
..
.. bpo: 35545
.. date: 2019-05-11-16-21-29
.. nonce: FcvJvP
.. section: Library
Fix asyncio discarding IPv6 scopes when ensuring hostname resolutions
internally
..
.. bpo: 36887
.. date: 2019-05-11-14-50-59
.. nonce: XD3f22
.. section: Library
Add new function :func:`math.isqrt` to compute integer square roots.
..
.. bpo: 34632
.. date: 2019-05-11-02-30-45
.. nonce: 8MXa7T
.. section: Library
Introduce the ``importlib.metadata`` module with (provisional) support for
reading metadata from third-party packages.
..
.. bpo: 36878
.. date: 2019-05-10-22-00-06
.. nonce: iigeqk
.. section: Library
When using `type_comments=True` in `ast.parse`, treat `# type: ignore`
followed by a non-alphanumeric character and then arbitrary text as a type
ignore, instead of requiring nothing but whitespace or another comment. This
is to permit formations such as `# type: ignore[E1000]`.
..
.. bpo: 36778
.. date: 2019-05-10-01-06-36
.. nonce: GRqeiS
.. section: Library
``cp65001`` encoding (Windows code page 65001) becomes an alias to ``utf_8``
encoding.
..
.. bpo: 36867
.. date: 2019-05-09-18-12-55
.. nonce: FuwVTi
.. section: Library
The multiprocessing.resource_tracker replaces the
multiprocessing.semaphore_tracker module. Other than semaphores,
resource_tracker also tracks shared_memory segments.
..
.. bpo: 30262
.. date: 2019-05-09-12-38-40
.. nonce: Tu74ak
.. section: Library
The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not
exposed to the user. Patch by Aviv Palivoda.
..
.. bpo: 24538
.. date: 2019-05-09-08-35-18
.. nonce: WK8Y-k
.. section: Library
In `shutil.copystat()`, first copy extended file attributes and then file
permissions, since extended attributes can only be set on the destination
while it is still writeable.
..
.. bpo: 36829
.. date: 2019-05-08-12-51-37
.. nonce: 8enFMA
.. section: Library
Add new :func:`sys.unraisablehook` function which can be overridden to
control how "unraisable exceptions" are handled. It is called when an
exception has occurred but there is no way for Python to handle it. For
example, when a destructor raises an exception or during garbage collection
(:func:`gc.collect`).
..
.. bpo: 36832
.. date: 2019-05-07-15-00-45
.. nonce: TExgqb
.. section: Library
Introducing ``zipfile.Path``, a pathlib-compatible wrapper for traversing
zip files.
..
.. bpo: 36814
.. date: 2019-05-06-23-13-26
.. nonce: dSeMz_
.. section: Library
Fix an issue where os.posix_spawnp() would incorrectly raise a TypeError
when file_actions is None.
..
.. bpo: 33110
.. date: 2019-05-06-22-34-47
.. nonce: rSJSCh
.. section: Library
Handle exceptions raised by functions added by concurrent.futures
add_done_callback correctly when the Future has already completed.
..
.. bpo: 26903
.. date: 2019-05-06-19-17-04
.. nonce: 4payXb
.. section: Library
Limit `max_workers` in `ProcessPoolExecutor` to 61 to work around a
WaitForMultipleObjects limitation.
..
.. bpo: 36813
.. date: 2019-05-06-18-28-38
.. nonce: NXD0KZ
.. section: Library
Fix :class:`~logging.handlers.QueueListener` to call ``queue.task_done()``
upon stopping. Patch by Bar Harel.
..
.. bpo: 36806
.. date: 2019-05-05-16-14-38
.. nonce: rAzF-x
.. section: Library
Forbid creation of asyncio stream objects like StreamReader, StreamWriter,
Process, and their protocols outside of asyncio package.
..
.. bpo: 36802
.. date: 2019-05-05-10-12-23
.. nonce: HYMc8P
.. section: Library
Provide both sync and async calls for StreamWriter.write() and
StreamWriter.close()
..
.. bpo: 36801
.. date: 2019-05-05-09-45-44
.. nonce: XrlFFs
.. section: Library
Properly handle SSL connection closing in asyncio StreamWriter.drain() call.
..
.. bpo: 36785
.. date: 2019-05-03-20-47-55
.. nonce: PQLnPq
.. section: Library
Implement PEP 574 (pickle protocol 5 with out-of-band buffers).
..
.. bpo: 36772
.. date: 2019-05-01-20-41-53
.. nonce: fV2K0F
.. section: Library
functools.lru_cache() can now be used as a straight decorator in addition to
its existing usage as a function that returns a decorator.
..
.. bpo: 6584
.. date: 2019-04-30-04-34-53
.. nonce: Hzp9-P
.. section: Library
Add a :exc:`~gzip.BadGzipFile` exception to the :mod:`gzip` module.
..
.. bpo: 36748
.. date: 2019-04-29-15-18-13
.. nonce: YBKWps
.. section: Library
Optimized write buffering in C implementation of ``TextIOWrapper``. Writing
ASCII string to ``TextIOWrapper`` with ascii, latin1, or utf-8 encoding is
about 20% faster. Patch by Inada Naoki.
..
.. bpo: 8138
.. date: 2019-04-27-02-54-23
.. nonce: osBRGI
.. section: Library
Don't mark ``wsgiref.simple_server.SimpleServer`` as multi-threaded since
``wsgiref.simple_server.WSGIServer`` is single-threaded.
..
.. bpo: 22640
.. date: 2019-04-26-22-13-26
.. nonce: p3rheW
.. section: Library
:func:`py_compile.compile` now supports silent mode. Patch by Joannah
Nanjekye
..
.. bpo: 29183
.. date: 2019-04-22-22-55-29
.. nonce: MILvsk
.. section: Library
Fix double exceptions in :class:`wsgiref.handlers.BaseHandler` by calling
its :meth:`~wsgiref.handlers.BaseHandler.close` method only when no
exception is raised.
..
.. bpo: 36548
.. date: 2019-04-07-14-30-10
.. nonce: CJQiYw
.. section: Library
Improved the repr of regular expression flags.
..
.. bpo: 36542
.. date: 2019-04-06-12-36-09
.. nonce: Q0qyYV
.. section: Library
The signature of Python functions can now be overridden by specifying the
``__text_signature__`` attribute.
..
.. bpo: 36533
.. date: 2019-04-06-00-55-09
.. nonce: kzMyRH
.. section: Library
Reinitialize logging.Handler locks in forked child processes instead of
attempting to acquire them all in the parent before forking only to be
released in the child process. The acquire/release pattern was leading to
deadlocks in code that has implemented any form of chained logging handlers
that depend upon one another as the lock acquision order cannot be
guaranteed.
..
.. bpo: 35252
.. date: 2019-04-02-19-23-12
.. nonce: VooTVv
.. section: Library
Throw a TypeError instead of an AssertionError when using an invalid type
annotation with singledispatch.
..
.. bpo: 35900
.. date: 2019-03-27-15-09-00
.. nonce: fh56UU
.. section: Library
Allow reduction methods to return a 6-item tuple where the 6th item
specifies a custom state-setting method that's called instead of the regular
``__setstate__`` method.
..
.. bpo: 35900
.. date: 2019-03-22-22-40-00
.. nonce: oiee0o
.. section: Library
enable custom reduction callback registration for functions and classes in
_pickle.c, using the new Pickler's attribute ``reducer_override``
..
.. bpo: 36368
.. date: 2019-03-21-16-00-00
.. nonce: zsRT1
.. section: Library
Fix a bug crashing SharedMemoryManager instances in interactive sessions
after a ctrl-c (KeyboardInterrupt) was sent
..
.. bpo: 31904
.. date: 2019-03-18-14-25-36
.. nonce: ds3d67
.. section: Library
Fix mmap fail for VxWorks
..
.. bpo: 27497
.. date: 2019-03-13-10-57-41
.. nonce: JDmIe_
.. section: Library
:meth:`csv.DictWriter.writeheader` now returns the return value of the
underlying :meth:`csv.Writer.writerow` method. Patch contributed by Ashish
Nitin Patil.
..
.. bpo: 36239
.. date: 2019-03-09-23-51-27
.. nonce: BHJ3Ln
.. section: Library
Parsing .mo files now ignores comments starting and ending with #-#-#-#-#.
..
.. bpo: 26707
.. date: 2019-03-04-01-28-33
.. nonce: QY4kRZ
.. section: Library
Enable plistlib to read and write binary plist files that were created as a
KeyedArchive file. Specifically, this allows the plistlib to process 0x80
tokens as UID objects.
..
.. bpo: 31904
.. date: 2019-03-01-17-59-39
.. nonce: 38djdk
.. section: Library
Add posix module support for VxWorks.
..
.. bpo: 35125
.. date: 2019-02-15-17-18-50
.. nonce: h0xk0f
.. section: Library
Asyncio: Remove inner callback on outer cancellation in shield
..
.. bpo: 35721
.. date: 2019-01-18-16-23-00
.. nonce: d8djAJ
.. section: Library
Fix :meth:`asyncio.SelectorEventLoop.subprocess_exec()` leaks file
descriptors if ``Popen`` fails and called with ``stdin=subprocess.PIPE``.
Patch by Niklas Fiekas.
..
.. bpo: 31855
.. date: 2019-01-11-17-09-15
.. nonce: PlhfsX
.. section: Library
:func:`unittest.mock.mock_open` results now respects the argument of
read([size]). Patch contributed by Rémi Lapeyre.
..
.. bpo: 35431
.. date: 2019-01-02-19-48-23
.. nonce: FhG6QA
.. section: Library
Implement :func:`math.comb` that returns binomial coefficient, that computes
the number of ways to choose k items from n items without repetition and
without order. Patch by Yash Aggarwal and Keller Fuchs.
..
.. bpo: 26660
.. date: 2018-11-04-16-39-46
.. nonce: RdXz8a
.. section: Library
Fixed permission errors in :class:`~tempfile.TemporaryDirectory` clean up.
Previously ``TemporaryDirectory.cleanup()`` failed when non-writeable or
non-searchable files or directories were created inside a temporary
directory.
..
.. bpo: 34271
.. date: 2018-10-21-17-39-32
.. nonce: P15VLM
.. section: Library
Add debugging helpers to ssl module. It's now possible to dump key material
and to trace TLS protocol. The default and stdlib contexts also support
SSLKEYLOGFILE env var.
..
.. bpo: 26467
.. date: 2018-09-13-20-33-24
.. nonce: cahAk3
.. section: Library
Added AsyncMock to support using unittest to mock asyncio coroutines. Patch
by Lisa Roach.
..
.. bpo: 33569
.. date: 2018-08-28-03-00-12
.. nonce: 45YlGG
.. section: Library
dataclasses.InitVar: Exposes the type used to create the init var.
..
.. bpo: 34424
.. date: 2018-08-18-14-47-00
.. nonce: wAlRuS
.. section: Library
Fix serialization of messages containing encoded strings when the
policy.linesep is set to a multi-character string. Patch by Jens Troeger.
..
.. bpo: 34303
.. date: 2018-08-03-09-47-20
.. nonce: tOE2HP
.. section: Library
Performance of :func:`functools.reduce` is slightly improved. Patch by
Sergey Fedoseev.
..
.. bpo: 33361
.. date: 2018-07-13-20-17-17
.. nonce: dx2NVn
.. section: Library
Fix a bug in :class:`codecs.StreamRecoder` where seeking might leave old
data in a buffer and break subsequent read calls. Patch by Ammar Askar.
..
.. bpo: 22454
.. date: 2018-06-10-17-48-07
.. nonce: qeiy_X
.. section: Library
The :mod:`shlex` module now exposes :func:`shlex.join`, the inverse of
:func:`shlex.split`. Patch by Bo Bayles.
..
.. bpo: 31922
.. date: 2018-05-30-01-05-50
.. nonce: fobsXJ
.. section: Library
:meth:`asyncio.AbstractEventLoop.create_datagram_endpoint`: Do not connect
UDP socket when broadcast is allowed. This allows to receive replies after a
UDP broadcast.
..
.. bpo: 24882
.. date: 2018-04-04-14-54-30
.. nonce: urybpa
.. section: Library
Change ThreadPoolExecutor to use existing idle threads before spinning up
new ones.
..
.. bpo: 31961
.. date: 2018-03-27-13-28-16
.. nonce: GjLoYu
.. section: Library
Added support for bytes and path-like objects in :func:`subprocess.Popen` on
Windows. The *args* parameter now accepts a :term:`path-like object` if
*shell* is ``False`` and a sequence containing bytes and path-like objects.
The *executable* parameter now accepts a bytes and :term:`path-like object`.
The *cwd* parameter now accepts a bytes object. Based on patch by Anders
Lorentsen.
..
.. bpo: 33123
.. date: 2018-03-22-19-13-19
.. nonce: _Y5ooE
.. section: Library
:class:`pathlib.Path.unlink` now accepts a *missing_ok* parameter to avoid a
:exc:`FileNotFoundError` from being raised. Patch by Robert Buchholz.
..
.. bpo: 32941
.. date: 2018-03-20-20-57-00
.. nonce: 9FU0gL
.. section: Library
Allow :class:`mmap.mmap` objects to access the madvise() system call
(through :meth:`mmap.mmap.madvise`).
..
.. bpo: 22102
.. date: 2018-03-08-16-15-00
.. nonce: th33uD
.. section: Library
Added support for ZIP files with disks set to 0. Such files are commonly
created by builtin tools on Windows when use ZIP64 extension. Patch by
Francisco Facioni.
..
.. bpo: 32515
.. date: 2018-01-07-21-04-50
.. nonce: D8_Wcb
.. section: Library
trace.py can now run modules via python3 -m trace -t --module module_name
..
.. bpo: 32299
.. date: 2017-12-13-17-49-56
.. nonce: eqAPWs
.. section: Library
Changed :func:`unittest.mock.patch.dict` to return the patched dictionary
when used as context manager. Patch by Vadim Tsander.
..
.. bpo: 27141
.. date: 2017-10-24-00-42-14
.. nonce: zbAgSs
.. section: Library
Added a ``__copy__()`` to ``collections.UserList`` and
``collections.UserDict`` in order to correctly implement shallow copying of
the objects. Patch by Bar Harel.
..
.. bpo: 31829
.. date: 2017-10-21-12-07-56
.. nonce: 6IhP-O
.. section: Library
``\r``, ``\0`` and ``\x1a`` (end-of-file on Windows) are now escaped in
protocol 0 pickles of Unicode strings. This allows to load them without loss
from files open in text mode in Python 2.
..
.. bpo: 23395
.. date: 2016-07-27-11-06-43
.. nonce: MuCEX9
.. section: Library
``_thread.interrupt_main()`` now avoids setting the Python error status if
the ``SIGINT`` signal is ignored or not handled by Python.
..
.. bpo: 36896
.. date: 2019-05-31-10-46-36
.. nonce: wkXTW9
.. section: Documentation
Clarify that some types have unstable constructor signature between Python
versions.
..
.. bpo: 36686
.. date: 2019-05-27-17-28-58
.. nonce: Zot4sx
.. section: Documentation
Improve documentation of the stdin, stdout, and stderr arguments of of the
``asyncio.subprocess_exec`` function to specficy which values are supported.
Also mention that decoding as text is not supported.
Add a few tests to verify that the various values passed to the std*
arguments actually work.
..
.. bpo: 36984
.. date: 2019-05-20-22-21-17
.. nonce: IjZlmS
.. section: Documentation
Improve version added references in ``typing`` module - by Anthony Sottile.
..
.. bpo: 36868
.. date: 2019-05-11-17-42-15
.. nonce: yioL0R
.. section: Documentation
What's new now mentions SSLContext.hostname_checks_common_name instead of
SSLContext.host_flags.
..
.. bpo: 35924
.. date: 2019-05-08-13-17-44
.. nonce: lqbNpW
.. section: Documentation
Add a note to the ``curses.addstr()`` documentation to warn that multiline
strings can cause segfaults because of an ncurses bug.
..
.. bpo: 36783
.. date: 2019-05-07-02-30-51
.. nonce: gpC8E2
.. section: Documentation
Added C API Documentation for Time_FromTimeAndFold and
PyDateTime_FromDateAndTimeAndFold as per PEP 495. Patch by Edison Abahurire.
..
.. bpo: 36797
.. date: 2019-05-05-07-58-50
.. nonce: W1X4On
.. section: Documentation
More of the legacy distutils documentation has been either pruned, or else
more clearly marked as being retained solely until the setuptools
documentation covers it independently.
..
.. bpo: 22865
.. date: 2019-02-21-18-13-50
.. nonce: 6hg6J8
.. section: Documentation
Add detail to the documentation on the `pty.spawn` function.
..
.. bpo: 35397
.. date: 2019-01-09-17-56-35
.. nonce: ZMreIz
.. section: Documentation
Remove deprecation and document urllib.parse.unwrap(). Patch contributed by
Rémi Lapeyre.
..
.. bpo: 32995
.. date: 2018-10-07-03-04-57
.. nonce: TXN9ur
.. section: Documentation
Added the context variable in glossary.
..
.. bpo: 33519
.. date: 2018-05-17-21-02-00
.. nonce: Q7s2FB
.. section: Documentation
Clarify that `copy()` is not part of the `MutableSequence` ABC.
..
.. bpo: 33482
.. date: 2018-05-13-10-36-37
.. nonce: jalAaQ
.. section: Documentation
Make `codecs.StreamRecoder.writelines` take a list of bytes.
..
.. bpo: 25735
.. date: 2018-04-08-19-09-22
.. nonce: idVQBD
.. section: Documentation
Added documentation for func factorial to indicate that returns integer
values
..
.. bpo: 20285
.. date: 2017-12-08-20-30-37
.. nonce: cfnp0J
.. section: Documentation
Expand object.__doc__ (docstring) to make it clearer. Modify pydoc.py so
that help(object) lists object methods (for other classes, help omits
methods of the object base class.)
..
.. bpo: 37069
.. date: 2019-06-03-02-30-36
.. nonce: rVtdLk
.. section: Tests
Modify test_coroutines, test_cprofile, test_generators, test_raise, test_ssl
and test_yield_from to use :func:`test.support.catch_unraisable_exception`
rather than :func:`test.support.captured_stderr`.
..
.. bpo: 37098
.. date: 2019-05-30-10-57-39
.. nonce: SfXt1M
.. section: Tests
Fix test_memfd_create on older Linux Kernels.
..
.. bpo: 37081
.. date: 2019-05-28-17-48-22
.. nonce: qxB-1l
.. section: Tests
Test with OpenSSL 1.1.1c
..
.. bpo: 36829
.. date: 2019-05-22-12-57-15
.. nonce: e9mRWC
.. section: Tests
Add :func:`test.support.catch_unraisable_exception`: context manager
catching unraisable exception using :func:`sys.unraisablehook`.
..
.. bpo: 36915
.. date: 2019-05-14-14-12-24
.. nonce: 58b7pH
.. section: Tests
The main regrtest process now always removes all temporary directories of
worker processes even if they crash or if they are killed on
KeyboardInterrupt (CTRL+c).
..
.. bpo: 36719
.. date: 2019-05-10-01-50-30
.. nonce: O84ZWv
.. section: Tests
"python3 -m test -jN ..." now continues the execution of next tests when a
worker process crash (CHILD_ERROR state). Previously, the test suite stopped
immediately. Use --failfast to stop at the first error.
..
.. bpo: 36816
.. date: 2019-05-08-15-55-46
.. nonce: WBKRGZ
.. section: Tests
Update Lib/test/selfsigned_pythontestdotnet.pem to match
self-signed.pythontest.net's new TLS certificate.
..
.. bpo: 35925
.. date: 2019-05-06-18-29-54
.. nonce: gwQPuC
.. section: Tests
Skip httplib and nntplib networking tests when they would otherwise fail due
to a modern OS or distro with a default OpenSSL policy of rejecting
connections to servers with weak certificates.
..
.. bpo: 36782
.. date: 2019-05-04-21-25-19
.. nonce: h3oPIb
.. section: Tests
Add tests for several C API functions in the :mod:`datetime` module. Patch
by Edison Abahurire.
..
.. bpo: 36342
.. date: 2019-03-23-13-58-49
.. nonce: q6Quiq
.. section: Tests
Fix test_multiprocessing in test_venv if platform lacks functioning
sem_open.
..
.. bpo: 36721
.. date: 2019-05-22-16-19-18
.. nonce: 9aRwfZ
.. section: Build
To embed Python into an application, a new ``--embed`` option must be passed
to ``python3-config --libs --embed`` to get ``-lpython3.8`` (link the
application to libpython). To support both 3.8 and older, try
``python3-config --libs --embed`` first and fallback to ``python3-config
--libs`` (without ``--embed``) if the previous command fails.
Add a pkg-config ``python-3.8-embed`` module to embed Python into an
application: ``pkg-config python-3.8-embed --libs`` includes
``-lpython3.8``. To support both 3.8 and older, try ``pkg-config
python-X.Y-embed --libs`` first and fallback to ``pkg-config python-X.Y
--libs`` (without ``--embed``) if the previous command fails (replace
``X.Y`` with the Python version).
On the other hand, ``pkg-config python3.8 --libs`` no longer contains
``-lpython3.8``. C extensions must not be linked to libpython (except on
Android, case handled by the script); this change is backward incompatible
on purpose.
..
.. bpo: 36786
.. date: 2019-05-03-21-08-06
.. nonce: gOLFbD
.. section: Build
"make install" now runs compileall in parallel.
..
.. bpo: 36965
.. date: 2019-05-20-20-26-36
.. nonce: KsfI-N
.. section: Windows
include of STATUS_CONTROL_C_EXIT without depending on MSC compiler
..
.. bpo: 35926
.. date: 2019-03-01-16-43-45
.. nonce: mLszHo
.. section: Windows
Update to OpenSSL 1.1.1b for Windows.
..
.. bpo: 29883
.. date: 2018-09-15-11-36-55
.. nonce: HErerE
.. section: Windows
Add Windows support for UDP transports for the Proactor Event Loop. Patch by
Adam Meily.
..
.. bpo: 33407
.. date: 2018-08-28-17-23-49
.. nonce: ARG0W_
.. section: Windows
The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC.
..
.. bpo: 36231
.. date: 2019-06-03-05-49-49
.. nonce: RfmW_p
.. section: macOS
Support building Python on macOS without /usr/include installed. As of macOS
10.14, system header files are only available within an SDK provided by
either the Command Line Tools or the Xcode app.
..
.. bpo: 35610
.. date: 2019-06-02-14-10-52
.. nonce: 0w_v6Y
.. section: IDLE
Replace now redundant .context_use_ps1 with .prompt_last_line. This finishes
change started in bpo-31858.
..
.. bpo: 37038
.. date: 2019-05-24-18-57-57
.. nonce: AJ3RwQ
.. section: IDLE
Make idlelib.run runnable; add test clause.
..
.. bpo: 36958
.. date: 2019-05-19-22-02-22
.. nonce: DZUC6G
.. section: IDLE
Print any argument other than None or int passed to SystemExit or
sys.exit().
..
.. bpo: 13102
.. date: 2019-05-05-16-27-53
.. nonce: AGNWYJ
.. section: IDLE
When saving a file, call os.fsync() so bits are flushed to e.g. USB drive.
..
.. bpo: 32411
.. date: 2017-12-25-18-48-50
.. nonce: vNwDhe
.. section: IDLE
In browser.py, remove extraneous sorting by line number since dictionary was
created in line number order.
..
.. bpo: 37053
.. date: 2019-05-26-16-47-06
.. nonce: -EYRuz
.. section: Tools/Demos
Handle strings like u"bar" correctly in Tools/parser/unparse.py. Patch by
Chih-Hsuan Yen.
..
.. bpo: 36763
.. date: 2019-05-27-12-25-25
.. nonce: bHCA9j
.. section: C API
Implement the :pep:`587` "Python Initialization Configuration".
..
.. bpo: 36379
.. date: 2019-05-24-07-11-08
.. nonce: 8zgoKe
.. section: C API
Fix crashes when attempting to use the *modulo* parameter when ``__ipow__``
is implemented in C.
..
.. bpo: 37107
.. date: 2019-05-22-17-33-52
.. nonce: 8BVPR-
.. section: C API
Update :c:func:`PyObject_CallMethodObjArgs` and
``_PyObject_CallMethodIdObjArgs`` to use ``_PyObject_GetMethod`` to avoid
creating a bound method object in many cases. Patch by Michael J. Sullivan.
..
.. bpo: 36974
.. date: 2019-05-22-15-24-08
.. nonce: TkySRe
.. section: C API
Implement :pep:`590`: Vectorcall: a fast calling protocol for CPython. This
is a new protocol to optimize calls of custom callable objects.
..
.. bpo: 36763
.. date: 2019-05-17-19-23-24
.. nonce: TswmDy
.. section: C API
``Py_Main()`` now returns the exitcode rather than calling
``Py_Exit(exitcode)`` when calling ``PyErr_Print()`` if the current
exception type is ``SystemExit``.
..
.. bpo: 36922
.. date: 2019-05-15-10-46-55
.. nonce: J3EFK_
.. section: C API
Add new type flag ``Py_TPFLAGS_METHOD_DESCRIPTOR`` for objects behaving like
unbound methods. These are objects supporting the optimization given by the
``LOAD_METHOD``/``CALL_METHOD`` opcodes. See PEP 590.
..
.. bpo: 36728
.. date: 2019-05-11-03-56-23
.. nonce: FR-dMP
.. section: C API
The :c:func:`PyEval_ReInitThreads` function has been removed from the C API.
It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child`
instead.
To embed Python into an application, a new ``--embed`` option must be passed to
``python3-config --libs --embed`` to get ``-lpython3.8`` (link the application
to libpython). To support both 3.8 and older, try ``python3-config --libs
--embed`` first and fallback to ``python3-config --libs`` (without ``--embed``)
if the previous command fails.
Add a pkg-config ``python-3.8-embed`` module to embed Python into an
application: ``pkg-config python-3.8-embed --libs`` includes ``-lpython3.8``.
To support both 3.8 and older, try ``pkg-config python-X.Y-embed --libs`` first
and fallback to ``pkg-config python-X.Y --libs`` (without ``--embed``) if the
previous command fails (replace ``X.Y`` with the Python version).
On the other hand, ``pkg-config python3.8 --libs`` no longer contains
``-lpython3.8``. C extensions must not be linked to libpython (except on
Android, case handled by the script); this change is backward incompatible on
purpose.
The :c:func:`PyEval_ReInitThreads` function has been removed from the C API.
It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` instead.
Add new type flag ``Py_TPFLAGS_METHOD_DESCRIPTOR`` for objects behaving like
unbound methods. These are objects supporting the optimization given by the
``LOAD_METHOD``/``CALL_METHOD`` opcodes. See PEP 590.
``Py_Main()`` now returns the exitcode rather than calling
``Py_Exit(exitcode)`` when calling ``PyErr_Print()`` if the current
exception type is ``SystemExit``.
Implement :pep:`590`: Vectorcall: a fast calling protocol for CPython.
This is a new protocol to optimize calls of custom callable objects.
Update :c:func:`PyObject_CallMethodObjArgs` and ``_PyObject_CallMethodIdObjArgs``
to use ``_PyObject_GetMethod`` to avoid creating a bound method object in many
cases.
Patch by Michael J. Sullivan.
Fix crashes when attempting to use the *modulo* parameter when ``__ipow__``
is implemented in C.
Implement the :pep:`587` "Python Initialization Configuration".
Port binascii to PEP 489 multiphase initialization.
Patch by Marcel Plch.
Remove cross-version binary compatibility requirement in tp_flags.
Expose :func:`copy_file_range` as a low level API in the :mod:`os` module.
Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown.
Patch by Zackery Spytz.
Added new trashcan macros to deal with a double deallocation that could occur
when the `tp_dealloc` of a subclass calls the `tp_dealloc` of a base class
and that base class uses the trashcan mechanism. Patch by Jeroen Demeyer.
Added fix for broken symlinks in combination with pathlib
\ No newline at end of file
Add native thread ID (TID) to threading.Thread objects (supported platforms: Windows, FreeBSD, Linux, macOS)
\ No newline at end of file
Fix incorrect use of ``%p`` in format strings.
Patch by Zackery Spytz.
A long-since-meaningless check for ``getpid() == main_pid`` was removed
from Python's internal C signal handler.
pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on
64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment
more often. Patch by Inada Naoki.
Save the live exception during import.c's ``remove_module()``.
Add a ``=`` feature f-strings for debugging. This can precede ``!s``,
``!r``, or ``!a``. It produces the text of the expression, followed by
an equal sign, followed by the repr of the value of the expression. So
``f'{3*9+15=}'`` would be equal to the string ``'3*9+15=42'``. If
``=`` is specified, the default conversion is set to ``!r``, unless a
format spec is given, in which case the formatting behavior is
unchanged, and __format__ will be used.
Removed ``__str__`` implementations from builtin types :class:`bool`,
:class:`int`, :class:`float`, :class:`complex` and few classes from the
standard library. They now inherit ``__str__()`` from :class:`object`.
Move PyRuntimeState.warnings into per-interpreter state (via "module
state").
Correct return type for UserList slicing operations. Patch by Michael Blahay,
Erick Cervantes, and vaultah
Implement PEP 578, adding sys.audit, io.open_code and related APIs.
The ``compile()`` builtin functions now support the ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` flag, which allow to compile sources that contains top-level ``await``, ``async with`` or ``async for``. This is useful to evaluate async-code from with an already async functions; for example in a custom REPL.
\ No newline at end of file
The ``FrameType`` stack is now correctly cleaned up if the execution ends
with a return and the stack is not empty.
Avoid caching attributes of classes which type defines mro() to avoid a hard
cache invalidation problem.
Allow computation of modular inverses via three-argument ``pow``: the second
argument is now permitted to be negative in the case where the first and
third arguments are relatively prime.
A :exc:`SyntaxError` is now raised if a code blocks that will be optimized
away (e.g. if conditions that are always false) contains syntax errors.
Patch by Pablo Galindo.
Fix possible signed integer overflow when handling slices.
Fix a crash when calling a C function with a keyword dict (``f(**kwargs)``)
and changing the dict ``kwargs`` while that function is running.
Treat line continuation at EOF as a ``SyntaxError`` by Anthony Sottile.
Store text appearing after a `# type: ignore` comment in the AST. For
example a type ignore like `# type: ignore[E1000]` will have the string
`"[E1000]"` stored in its AST node.
Only accept text after `# type: ignore` if the first character is ASCII.
This is to disallow things like `# type: ignoreé`.
:c:func:`PyErr_WriteUnraisable` now creates a traceback object if there is
no current traceback. Moreover, call :c:func:`PyErr_NormalizeException` and
:c:func:`PyException_SetTraceback` to normalize the exception value. Ignore any
error.
Implement :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`, and
:func:`socket.if_indextoname()` on Windows.
Added new ``replace()`` method to the code type (:class:`types.CodeType`).
The `bytes.hex`, `bytearray.hex`, and `memoryview.hex` methods as well as
the `binascii.hexlify` and `b2a_hex` functions now have the ability to
include an optional separator between hex bytes. This functionality was
inspired by MicroPython's hexlify implementation.
Improve the AST for "debug" f-strings, which use '=' to print out the source
of the expression being evaluated. Delete expr_text from the FormattedValue
node, and instead use a Constant string node (possibly merged with adjacent
constant expressions inside the f-string).
Fix possible overflow in ``wrap_lenfunc()`` when
``sizeof(long) < sizeof(Py_ssize_t)`` (e.g., 64-bit Windows).
Freeing a great many small objects could take time quadratic in the number of arenas, due to using linear search to keep ``obmalloc.c``'s list of usable arenas sorted by order of number of free memory pools. This is accomplished without search now, leaving the worst-case time linear in the number of arenas. For programs where this quite visibly matters (typically with more than 100 thousand small objects alive simultaneously), this can greatly reduce the time needed to release their memory.
\ No newline at end of file
Fix crash in PyAST_FromNodeObject() when flags is NULL.
\ No newline at end of file
Implemented per opcode cache mechanism and ``LOAD_GLOBAL`` instruction use
it. ``LOAD_GLOBAL`` is now about 40% faster. Contributed by Yury Selivanov,
and Inada Naoki.
Add native thread ID (TID) support to OpenBSD.
\ No newline at end of file
Constructors of :class:`int`, :class:`float` and :class:`complex` will now
use the :meth:`~object.__index__` special method, if available and the
corresponding method :meth:`~object.__int__`, :meth:`~object.__float__`
or :meth:`~object.__complex__` is not available.
Make the *co_argcount* attribute of code objects represent the total number
of positional arguments (including positional-only arguments). The value of
*co_posonlyargcount* can be used to distinguish which arguments are
positional only, and the difference (*co_argcount* - *co_posonlyargcount*)
is the number of positional-or-keyword arguments. Patch by Pablo Galindo.
All structseq objects are now tracked by the garbage collector. Patch by
Pablo Galindo.
Allow unpacking in the right hand side of annotated assignments. In
particular, ``t: Tuple[int, ...] = x, y, *z`` is now allowed.
Expand object.__doc__ (docstring) to make it clearer.
Modify pydoc.py so that help(object) lists object methods
(for other classes, help omits methods of the object base class.)
Added documentation for func factorial to indicate that returns integer values
Make `codecs.StreamRecoder.writelines` take a list of bytes.
Clarify that `copy()` is not part of the `MutableSequence` ABC.
Remove deprecation and document urllib.parse.unwrap(). Patch contributed by
Rémi Lapeyre.
Add detail to the documentation on the `pty.spawn` function.
\ No newline at end of file
More of the legacy distutils documentation has been either pruned, or else
more clearly marked as being retained solely until the setuptools
documentation covers it independently.
Added C API Documentation for Time_FromTimeAndFold and PyDateTime_FromDateAndTimeAndFold as per PEP 495.
Patch by Edison Abahurire.
\ No newline at end of file
Add a note to the ``curses.addstr()`` documentation to warn that multiline
strings can cause segfaults because of an ncurses bug.
What's new now mentions SSLContext.hostname_checks_common_name instead of
SSLContext.host_flags.
Improve version added references in ``typing`` module - by Anthony Sottile.
Improve documentation of the stdin, stdout, and stderr arguments of of the
``asyncio.subprocess_exec`` function to specficy which values are supported.
Also mention that decoding as text is not supported.
Add a few tests to verify that the various values passed to the std*
arguments actually work.
Clarify that some types have unstable constructor signature between Python
versions.
In browser.py, remove extraneous sorting by line number since dictionary was
created in line number order.
When saving a file, call os.fsync() so bits are flushed to e.g. USB drive.
Print any argument other than None or int passed to SystemExit or
sys.exit().
Replace now redundant .context_use_ps1 with .prompt_last_line. This finishes
change started in bpo-31858.
``_thread.interrupt_main()`` now avoids setting the Python error status
if the ``SIGINT`` signal is ignored or not handled by Python.
``\r``, ``\0`` and ``\x1a`` (end-of-file on Windows) are now escaped in
protocol 0 pickles of Unicode strings. This allows to load them without loss
from files open in text mode in Python 2.
Added a ``__copy__()`` to ``collections.UserList`` and
``collections.UserDict`` in order to correctly implement shallow copying of
the objects. Patch by Bar Harel.
Changed :func:`unittest.mock.patch.dict` to return the patched
dictionary when used as context manager. Patch by Vadim Tsander.
trace.py can now run modules via python3 -m trace -t --module module_name
Added support for ZIP files with disks set to 0. Such files are commonly created by builtin tools on Windows when use ZIP64 extension.
Patch by Francisco Facioni.
Allow :class:`mmap.mmap` objects to access the madvise() system call
(through :meth:`mmap.mmap.madvise`).
:class:`pathlib.Path.unlink` now accepts a *missing_ok* parameter to avoid a
:exc:`FileNotFoundError` from being raised. Patch by Robert Buchholz.
Added support for bytes and path-like objects in :func:`subprocess.Popen`
on Windows. The *args* parameter now accepts a :term:`path-like object` if
*shell* is ``False`` and a sequence containing bytes and path-like objects.
The *executable* parameter now accepts a bytes and :term:`path-like object`.
The *cwd* parameter now accepts a bytes object.
Based on patch by Anders Lorentsen.
Change ThreadPoolExecutor to use existing idle threads before spinning up new ones.
\ No newline at end of file
:meth:`asyncio.AbstractEventLoop.create_datagram_endpoint`:
Do not connect UDP socket when broadcast is allowed.
This allows to receive replies after a UDP broadcast.
The :mod:`shlex` module now exposes :func:`shlex.join`, the inverse of
:func:`shlex.split`. Patch by Bo Bayles.
Fix a bug in :class:`codecs.StreamRecoder` where seeking might leave old data in a
buffer and break subsequent read calls. Patch by Ammar Askar.
Performance of :func:`functools.reduce` is slightly improved. Patch by
Sergey Fedoseev.
Fix serialization of messages containing encoded strings when the
policy.linesep is set to a multi-character string. Patch by Jens Troeger.
dataclasses.InitVar: Exposes the type used to create the init var.
Added AsyncMock to support using unittest to mock asyncio coroutines.
Patch by Lisa Roach.
Add debugging helpers to ssl module. It's now possible to dump key material
and to trace TLS protocol. The default and stdlib contexts also support
SSLKEYLOGFILE env var.
Fixed permission errors in :class:`~tempfile.TemporaryDirectory` clean up.
Previously ``TemporaryDirectory.cleanup()`` failed when non-writeable or
non-searchable files or directories were created inside a temporary
directory.
Implement :func:`math.comb` that returns binomial coefficient, that computes
the number of ways to choose k items from n items without repetition and
without order.
Patch by Yash Aggarwal and Keller Fuchs.
:func:`unittest.mock.mock_open` results now respects the argument of read([size]).
Patch contributed by Rémi Lapeyre.
Fix :meth:`asyncio.SelectorEventLoop.subprocess_exec()` leaks file descriptors
if ``Popen`` fails and called with ``stdin=subprocess.PIPE``.
Patch by Niklas Fiekas.
Asyncio: Remove inner callback on outer cancellation in shield
Enable plistlib to read and write binary plist files that were created as a KeyedArchive file. Specifically, this allows the plistlib to process 0x80 tokens as UID objects.
\ No newline at end of file
Parsing .mo files now ignores comments starting and ending with #-#-#-#-#.
:meth:`csv.DictWriter.writeheader` now returns the return value of the
underlying :meth:`csv.Writer.writerow` method. Patch contributed by Ashish
Nitin Patil.
Fix a bug crashing SharedMemoryManager instances in interactive sessions after
a ctrl-c (KeyboardInterrupt) was sent
enable custom reduction callback registration for functions and classes in
_pickle.c, using the new Pickler's attribute ``reducer_override``
Allow reduction methods to return a 6-item tuple where the 6th item specifies a
custom state-setting method that's called instead of the regular
``__setstate__`` method.
Throw a TypeError instead of an AssertionError when using an invalid type annotation with singledispatch.
Reinitialize logging.Handler locks in forked child processes instead of
attempting to acquire them all in the parent before forking only to be
released in the child process. The acquire/release pattern was leading to
deadlocks in code that has implemented any form of chained logging handlers
that depend upon one another as the lock acquision order cannot be
guaranteed.
The signature of Python functions can now be overridden by specifying the
``__text_signature__`` attribute.
Fix double exceptions in :class:`wsgiref.handlers.BaseHandler` by calling
its :meth:`~wsgiref.handlers.BaseHandler.close` method only when no
exception is raised.
:func:`py_compile.compile` now supports silent mode.
Patch by Joannah Nanjekye
\ No newline at end of file
Don't mark ``wsgiref.simple_server.SimpleServer`` as multi-threaded since
``wsgiref.simple_server.WSGIServer`` is single-threaded.
Optimized write buffering in C implementation of ``TextIOWrapper``. Writing
ASCII string to ``TextIOWrapper`` with ascii, latin1, or utf-8 encoding is
about 20% faster. Patch by Inada Naoki.
Add a :exc:`~gzip.BadGzipFile` exception to the :mod:`gzip` module.
functools.lru_cache() can now be used as a straight decorator in
addition to its existing usage as a function that returns a decorator.
Implement PEP 574 (pickle protocol 5 with out-of-band buffers).
Properly handle SSL connection closing in asyncio StreamWriter.drain() call.
Provide both sync and async calls for StreamWriter.write() and
StreamWriter.close()
Forbid creation of asyncio stream objects like StreamReader, StreamWriter,
Process, and their protocols outside of asyncio package.
Fix :class:`~logging.handlers.QueueListener` to call ``queue.task_done()``
upon stopping. Patch by Bar Harel.
Limit `max_workers` in `ProcessPoolExecutor` to 61 to work around a WaitForMultipleObjects limitation.
\ No newline at end of file
Handle exceptions raised by functions added by concurrent.futures add_done_callback correctly when the Future has already completed.
Fix an issue where os.posix_spawnp() would incorrectly raise a TypeError when file_actions is None.
\ No newline at end of file
Introducing ``zipfile.Path``, a pathlib-compatible wrapper for traversing zip files.
Add new :func:`sys.unraisablehook` function which can be overridden to
control how "unraisable exceptions" are handled. It is called when an
exception has occurred but there is no way for Python to handle it. For
example, when a destructor raises an exception or during garbage collection
(:func:`gc.collect`).
In `shutil.copystat()`, first copy extended file attributes and then file
permissions, since extended attributes can only be set on the destination
while it is still writeable.
The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not
exposed to the user. Patch by Aviv Palivoda.
The multiprocessing.resource_tracker replaces the multiprocessing.semaphore_tracker module. Other than semaphores, resource_tracker also tracks shared_memory segments.
\ No newline at end of file
``cp65001`` encoding (Windows code page 65001) becomes an alias to ``utf_8``
encoding.
When using `type_comments=True` in `ast.parse`, treat `# type: ignore` followed by
a non-alphanumeric character and then arbitrary text as a type ignore, instead of
requiring nothing but whitespace or another comment. This is to permit formations
such as `# type: ignore[E1000]`.
\ No newline at end of file
Introduce the ``importlib.metadata`` module with (provisional) support for reading metadata from third-party packages.
\ No newline at end of file
Add new function :func:`math.isqrt` to compute integer square roots.
Fix asyncio discarding IPv6 scopes when ensuring hostname resolutions
internally
The function ``time.clock()`` was deprecated in 3.3 in favor of
``time.perf_counter()`` and marked for removal in 3.8, it has removed.
Adds a grammar to lib2to3.pygram that contains exec as a function not as
statement.
Fix a bug making a SharedMemoryManager instance and its parent process use two separate resource_tracker processes.
\ No newline at end of file
Added validation of integer prefixes to the construction of IP networks and
interfaces in the ipaddress module.
Introduce :class:`asyncio.Stream` class that merges :class:`asyncio.StreamReader` and :class:`asyncio.StreamWriter` functionality.
:class:`asyncio.Stream` can work in readonly, writeonly and readwrite modes.
Provide :func:`asyncio.connect`, :func:`asyncio.connect_unix`, :func:`asyncio.connect_read_pipe` and :func:`asyncio.connect_write_pipe` factories to open :class:`asyncio.Stream` connections. Provide :class:`asyncio.StreamServer` and :class:`UnixStreamServer` to serve servers with asyncio.Stream API.
Modify :func:`asyncio.create_subprocess_shell` and :func:`asyncio.create_subprocess_exec` to use :class:`asyncio.Stream` instead of deprecated :class:`StreamReader` and :class:`StreamWriter`.
Deprecate :class:`asyncio.StreamReader` and :class:`asyncio.StreamWriter`.
Deprecate usage of private classes, e.g. :class:`asyncio.FlowControlMixing` and :class:`asyncio.StreamReaderProtocol` outside of asyncio package.
Remove a message about an unhandled exception in a task when writer.write()
is used without await and writer.drain() fails with an exception.
Fix bug in ``__rmod__`` of ``UserString`` - by Batuhan Taskaya.
Deprecate ``@coroutine`` for sake of ``async def``.
Python child processes can now access the status of their parent process
using multiprocessing.process.parent_process
:func:`shutil.copystat` now ignores :const:`errno.EINVAL` on :func:`os.setxattr` which may occur when copying files on filesystems without extended attributes support.
Original patch by Giampaolo Rodola, updated by Ying Wang.
Fix the folding of email header when the max_line_length is 0 or None and the
header contains non-ascii characters. Contributed by Licht Takeuchi
(@Licht-T).
Fix :exc:`NameError` in :meth:`urllib.request.URLopener.retrieve`. Patch by
Karthikeyan Singaravelan.
Starting with Python 3.3, importing ABCs from :mod:`collections` is
deprecated, and import should be done from :mod:`collections.abc`. Still
being able to import from :mod:`collections` was marked for removal in 3.8,
but has been delayed to 3.9; documentation and ``DeprecationWarning``
clarified.
:func:`fileinput.input` and :class:`fileinput.FileInput` **bufsize**
argument has been removed (was deprecated and ignored since Python 3.6),
and as a result the **mode** and **openhook** arguments have been made
keyword-only.
Implement ``unittest.AsyncTestCase`` to help testing asyncio-based code.
Add SupportsIndex protocol to the typing module to allow type checking to detect classes that can be passed to `hex()`, `oct()` and `bin()`.
Add missing names to ``typing.__all__``: ``ChainMap``, ``ForwardRef``,
``OrderedDict`` - by Anthony Sottile.
PDB command `args` now display keyword only arguments. Patch contributed by
Rémi Lapeyre.
PDB command `args` now display positional only arguments. Patch contributed
by Rémi Lapeyre.
Allow whitespace only header encoding in ``email.header`` - by Batuhan
Taskaya
Add support for calling :func:`next` with the mock resulting from
:func:`unittest.mock.mock_open`
Handle :func:`unittest.mock.patch` used as a decorator on async functions.
Add a new :func:`threading.excepthook` function which handles uncaught
:meth:`threading.Thread.run` exception. It can be overridden to control how
uncaught :meth:`threading.Thread.run` exceptions are handled.
Make asyncio.CancelledError a BaseException.
This will address the common mistake many asyncio users make: an "except
Exception" clause breaking Tasks cancellation.
In addition to this change, we stop inheriting asyncio.TimeoutError and
asyncio.InvalidStateError from their concurrent.futures.* counterparts.
There's no point for these exceptions to share the inheritance chain.
Return safe to use proxy socket object from
transport.get_extra_info('socket')
:func:`symtable.symtable` now accepts the same input types for source code as the
built-in :func:`compile` function. Patch by Dino Viehland.
Don't log OSError based exceptions if a fatal error has occurred in asyncio
transport. Peer can generate almost any OSError, user cannot avoid these exceptions
by fixing own code.
Errors are still propagated to user code, it's just logging them
is pointless and pollute asyncio logs.
PEP 591: Add ``Final`` qualifier and ``@final`` decorator to the ``typing`` module.
\ No newline at end of file
PEP 586: Add ``Literal`` to the ``typing`` module.
\ No newline at end of file
PEP 589: Add ``TypedDict`` to the ``typing`` module.
\ No newline at end of file
Handle late binding and attribute access in :class:`unittest.mock.AsyncMock`
setup for autospeccing. Document newly implemented async methods in
:class:`unittest.mock.MagicMock`.
The functions ``sys.set_coroutine_wrapper`` and ``sys.get_coroutine_wrapper``
that were deprecated and marked for removal in 3.8 have been removed.
PEP 544: Add ``Protocol`` and ``@runtime_checkable`` to the ``typing`` module.
\ No newline at end of file
Fix destructor :class:`_pyio.BytesIO` and :class:`_pyio.TextIOWrapper`:
initialize their ``_buffer`` attribute as soon as possible (in the class
body), because it's used by ``__del__()`` which calls ``close()``.
On macOS, the :mod:`multiprocessing` module now uses *spawn* start method by
default.
:func:`_thread.start_new_thread` now logs uncaught exception raised by the
function using :func:`sys.unraisablehook`, rather than :func:`sys.excepthook`,
so the hook gets access to the function which raised the exception.
Change default *max_workers* of ``ThreadPoolExecutor`` from ``cpu_count() *
5`` to ``min(32, cpu_count() + 4))``. Previous value was unreasonably
large on many cores machines.
Make :func:`asyncio.create_subprocess_exec` accept path-like arguments.
Add the ``asyncio.Task.get_coro()`` method to publicly expose the tasks's
coroutine object.
:meth:`msilib.Directory.start_component()` no longer fails if *keyfile* is
not ``None``.
Add ``get_origin()`` and ``get_args()`` introspection helpers to ``typing`` module.
\ No newline at end of file
The fcntl module now contains file sealing constants for sealing of memfds.
Fix the error handling in :meth:`msilib.SummaryInformation.GetProperty`. Patch
by Zackery Spytz.
Add SSLContext.num_tickets to control the number of TLSv1.3 session tickets.
Updated blake2 implementation which uses secure memset implementation provided by platform.
Prevent fold function used in email header encoding from entering infinite
loop when there are too many non-ASCII characters in a header.
CVE-2019-9948: Avoid file reading by disallowing ``local-file://`` and
``local_file://`` URL schemes in ``URLopener().open()`` and
``URLopener().retrieve()`` of :mod:`urllib.request`.
Fix test_multiprocessing in test_venv if platform lacks functioning sem_open.
Add tests for several C API functions in the :mod:`datetime` module. Patch by Edison Abahurire.
Skip httplib and nntplib networking tests when they would otherwise fail due to a modern OS or distro with a default OpenSSL policy of rejecting connections to servers with weak certificates.
Update Lib/test/selfsigned_pythontestdotnet.pem to match self-signed.pythontest.net's new TLS certificate.
\ No newline at end of file
"python3 -m test -jN ..." now continues the execution of next tests when a
worker process crash (CHILD_ERROR state). Previously, the test suite stopped
immediately. Use --failfast to stop at the first error.
The main regrtest process now always removes all temporary directories of
worker processes even if they crash or if they are killed on
KeyboardInterrupt (CTRL+c).
Add :func:`test.support.catch_unraisable_exception`: context manager
catching unraisable exception using :func:`sys.unraisablehook`.
Modify test_coroutines, test_cprofile, test_generators, test_raise, test_ssl
and test_yield_from to use :func:`test.support.catch_unraisable_exception`
rather than :func:`test.support.captured_stderr`.
Handle strings like u"bar" correctly in Tools/parser/unparse.py. Patch by Chih-Hsuan Yen.
\ No newline at end of file
The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC.
Add Windows support for UDP transports for the Proactor Event Loop. Patch by
Adam Meily.
include of STATUS_CONTROL_C_EXIT without depending on MSC compiler
Support building Python on macOS without /usr/include installed. As of macOS
10.14, system header files are only available within an SDK provided by
either the Command Line Tools or the Xcode app.
This is Python version 3.8.0 alpha 4
====================================
This is Python version 3.8.0 beta 1
===================================
.. image:: https://travis-ci.org/python/cpython.svg?branch=master
:alt: CPython build status on Travis CI
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment