Python 3.8.0b1
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE4/8oOcBIslwITevpsmmV4xAlBWgFAlz2r2cACgkQsmmV4xAl BWhasQ/9EDLL+KtFUdi3iMr7+C1UN/2u2v3OnOsZQA0WE7TfEebbf5GS4baN/pHk PslVY6kRqRfQIxjemXFpq52mn9+3SUE4m3avkgnUZMu8XEaUczM4IdcizGMO3qNr c1iz6BraJo8gZ1g+dNcRbEc89V9e1SzrBZOR9MXGjxxo0HHEPdjW9ptg1BtHq9To n4iivdQSnnxzP7D7SpItWPL/gFv90GBbXaTRerGUlmj/uwnBhzHB1fi4r+WDn8yR 4AiFVSlUFpTXYOiH5A3MYQtLq8kH9AAmo6Bmj/73NvChxv7GV5v968+tlEWEK+/h UtTUEw8L/oSH74m8wd0q0tQdTe8VJgtwKyR6h5GLL8TLa73nN/jK4Koqirpc8mpK DcHVLpxHQ/yhPtAcQXp81qqJSbhnPOvbRjNQP5bHcNIl8p+OsF7N9z/tu6gmMorO k+f2OCOC0ZsG/EL7DPz6kG6+Cy5NhA+/IJ9I3Ayk6AsSjbzqtgai3bKKVF3s27r8 OIZprMAVKsmsPpEfuSG8rshKxmLH5/n7YuwSuMmWXv06QspfG43zxp1VYq94zBoI wpBy8QxBwef7oDpMI+WgE/g8Prj1NmQuIy7co/pZDsOHeQWr96z90BcpSX8XKHKT 9W829jFKoQEnGnuFgoUxacR8a4bQKVla5mVFvjUtGjb9GS9kJkk= =V2hy -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEE4/8oOcBIslwITevpsmmV4xAlBWgFAlz2zD8QHGx1a2FzekBs YW5nYS5wbAAKCRCyaZXjECUFaIw/EACXkzdCOq5D/itTvFElnNWjlon8ot4toVEf zw4isSYiYS4B3dBI6+VyCZWNxR5F6fwfyhPLHf7CzPn+7Yp5+dX9//x0HqhNLQCY PmwuYG/4nWcww8UhUweGVI1u8Fjrw+LzLJPVyhLQia/TXUBfCFcggS2xo9S6mSsA isJr9RaCDaoit6ZjFIuo+sOn2YTx2eYBe6LlhlSx9zz0ayyy+ADqPeUq/hoEFDPD EXUOwsLJPo/vu7sFqKOhHBWtMCcnvkkbiBLrAmHS2vhKjl22zVez0lUiVxLUlhZT WcmfRkCtoBKu2rYbm85pt08fgF/CnHq9oO57yDBZ4j/Lv0HqQkp+/yZRzWqSSThw vw4z4Ur3l06ZMxsTH+Dd/xjqc41AlpedJNhuAgOf0URrbl4H48y5U6AG1vZWrpAk wUsTF1QGXL1SAam2pjI2cTpjRaCh3RK2wf0KPewxUpcvcRcGtGAbq+EFHHOFg2Lm AcxAuAEUXKcyJQnLtFiIOWJFttaRzAB6zq8sEL0kS1BfAEspqTk+ZdnDY1ajppqu 7sb3/TGrxa+38Th5iVvUehHGQqrQYLORVn0w8PKUXunbUbv6AYoDJHKxiOUO4JsX L5jZEPjTeG0BjntTnvVYdgqPXAVbJr76LmlCPkPcmSruvXrfZP1OOi+ybepwbTpD 8pw88nSTuA== =zOCJ -----END PGP SIGNATURE----- Merge tag 'v3.8.0b1' Python 3.8.0b1
This commit is contained in:
commit
23d7ce7471
|
@ -36,7 +36,7 @@ import suspicious
|
||||||
|
|
||||||
|
|
||||||
ISSUE_URI = 'https://bugs.python.org/issue%s'
|
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
|
# monkey-patch reST parser to disable alphabetic and roman enumerated lists
|
||||||
from docutils.parsers.rst.states import Body
|
from docutils.parsers.rst.states import Body
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
#define PY_MAJOR_VERSION 3
|
#define PY_MAJOR_VERSION 3
|
||||||
#define PY_MINOR_VERSION 8
|
#define PY_MINOR_VERSION 8
|
||||||
#define PY_MICRO_VERSION 0
|
#define PY_MICRO_VERSION 0
|
||||||
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
|
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
|
||||||
#define PY_RELEASE_SERIAL 4
|
#define PY_RELEASE_SERIAL 1
|
||||||
|
|
||||||
/* Version as a string */
|
/* Version as a string */
|
||||||
#define PY_VERSION "3.8.0a4+"
|
#define PY_VERSION "3.8.0b1"
|
||||||
/*--end constants--*/
|
/*--end constants--*/
|
||||||
|
|
||||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- 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'
|
topics = {'assert': 'The "assert" statement\n'
|
||||||
'**********************\n'
|
'**********************\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -357,12 +357,13 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'a variable or attribute annotation and an optional assignment\n'
|
'a variable or attribute annotation and an optional assignment\n'
|
||||||
'statement:\n'
|
'statement:\n'
|
||||||
'\n'
|
'\n'
|
||||||
' annotated_assignment_stmt ::= augtarget ":" expression ["=" '
|
' annotated_assignment_stmt ::= augtarget ":" expression\n'
|
||||||
'expression]\n'
|
' ["=" (starred_expression | '
|
||||||
|
'yield_expression)]\n'
|
||||||
'\n'
|
'\n'
|
||||||
'The difference from normal Assignment statements is that only '
|
'The difference from normal Assignment statements is that only '
|
||||||
'single\n'
|
'single\n'
|
||||||
'target and only single right hand side value is allowed.\n'
|
'target is allowed.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'For simple names as assignment targets, if in class or module '
|
'For simple names as assignment targets, if in class or module '
|
||||||
'scope,\n'
|
'scope,\n'
|
||||||
|
@ -409,7 +410,14 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'standard\n'
|
'standard\n'
|
||||||
' syntax for type annotations that can be used in static '
|
' syntax for type annotations that can be used in static '
|
||||||
'analysis\n'
|
'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'
|
'async': 'Coroutines\n'
|
||||||
'**********\n'
|
'**********\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -2026,21 +2034,22 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
'For user-defined classes which do not define "__contains__()" '
|
'For user-defined classes which do not define "__contains__()" '
|
||||||
'but do\n'
|
'but do\n'
|
||||||
'define "__iter__()", "x in y" is "True" if some value "z" '
|
'define "__iter__()", "x in y" is "True" if some value "z", '
|
||||||
'with "x ==\n'
|
'for which\n'
|
||||||
'z" is produced while iterating over "y". If an exception is '
|
'the expression "x is z or x == z" is true, is produced while '
|
||||||
'raised\n'
|
'iterating\n'
|
||||||
'during the iteration, it is as if "in" raised that '
|
'over "y". If an exception is raised during the iteration, it '
|
||||||
'exception.\n'
|
'is as if\n'
|
||||||
|
'"in" raised that exception.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Lastly, the old-style iteration protocol is tried: if a class '
|
'Lastly, the old-style iteration protocol is tried: if a class '
|
||||||
'defines\n'
|
'defines\n'
|
||||||
'"__getitem__()", "x in y" is "True" if and only if there is a '
|
'"__getitem__()", "x in y" is "True" if and only if there is a '
|
||||||
'non-\n'
|
'non-\n'
|
||||||
'negative integer index *i* such that "x == y[i]", and all '
|
'negative integer index *i* such that "x is y[i] or x == '
|
||||||
'lower\n'
|
'y[i]", and no\n'
|
||||||
'integer indices do not raise "IndexError" exception. (If any '
|
'lower integer index raises the "IndexError" exception. (If '
|
||||||
'other\n'
|
'any other\n'
|
||||||
'exception is raised, it is as if "in" raised that '
|
'exception is raised, it is as if "in" raised that '
|
||||||
'exception).\n'
|
'exception).\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -5081,7 +5090,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Meaning '
|
'Meaning '
|
||||||
'|\n'
|
'|\n'
|
||||||
' '
|
' '
|
||||||
'|===========|============================================================|\n'
|
'+===========+============================================================+\n'
|
||||||
' | "\'<\'" | Forces the field to be left-aligned '
|
' | "\'<\'" | Forces the field to be left-aligned '
|
||||||
'within the available |\n'
|
'within the available |\n'
|
||||||
' | | space (this is the default for most '
|
' | | space (this is the default for most '
|
||||||
|
@ -5130,7 +5139,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Meaning '
|
'Meaning '
|
||||||
'|\n'
|
'|\n'
|
||||||
' '
|
' '
|
||||||
'|===========|============================================================|\n'
|
'+===========+============================================================+\n'
|
||||||
' | "\'+\'" | indicates that a sign should be used for '
|
' | "\'+\'" | indicates that a sign should be used for '
|
||||||
'both positive as |\n'
|
'both positive as |\n'
|
||||||
' | | well as negative '
|
' | | well as negative '
|
||||||
|
@ -5234,7 +5243,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Meaning '
|
'Meaning '
|
||||||
'|\n'
|
'|\n'
|
||||||
' '
|
' '
|
||||||
'|===========|============================================================|\n'
|
'+===========+============================================================+\n'
|
||||||
' | "\'s\'" | String format. This is the default type '
|
' | "\'s\'" | String format. This is the default type '
|
||||||
'for strings and |\n'
|
'for strings and |\n'
|
||||||
' | | may be '
|
' | | may be '
|
||||||
|
@ -5254,7 +5263,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Meaning '
|
'Meaning '
|
||||||
'|\n'
|
'|\n'
|
||||||
' '
|
' '
|
||||||
'|===========|============================================================|\n'
|
'+===========+============================================================+\n'
|
||||||
' | "\'b\'" | Binary format. Outputs the number in '
|
' | "\'b\'" | Binary format. Outputs the number in '
|
||||||
'base 2. |\n'
|
'base 2. |\n'
|
||||||
' '
|
' '
|
||||||
|
@ -5316,7 +5325,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'Meaning '
|
'Meaning '
|
||||||
'|\n'
|
'|\n'
|
||||||
' '
|
' '
|
||||||
'|===========|============================================================|\n'
|
'+===========+============================================================+\n'
|
||||||
' | "\'e\'" | Exponent notation. Prints the number in '
|
' | "\'e\'" | Exponent notation. Prints the number in '
|
||||||
'scientific |\n'
|
'scientific |\n'
|
||||||
' | | notation using the letter ‘e’ to indicate '
|
' | | notation using the letter ‘e’ to indicate '
|
||||||
|
@ -6334,14 +6343,16 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'"False" otherwise.\n'
|
'"False" otherwise.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'For user-defined classes which do not define "__contains__()" but do\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'
|
'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
|
||||||
'z" is produced while iterating over "y". If an exception is raised\n'
|
'the expression "x is z or x == z" is true, is produced while '
|
||||||
'during the iteration, it is as if "in" raised that exception.\n'
|
'iterating\n'
|
||||||
|
'over "y". If an exception is raised during the iteration, it is as if\n'
|
||||||
|
'"in" raised that exception.\n'
|
||||||
'\n'
|
'\n'
|
||||||
'Lastly, the old-style iteration protocol is tried: if a class defines\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'
|
'"__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'
|
'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
|
||||||
'integer indices do not raise "IndexError" exception. (If any other\n'
|
'lower integer index raises the "IndexError" exception. (If any other\n'
|
||||||
'exception is raised, it is as if "in" raised that exception).\n'
|
'exception is raised, it is as if "in" raised that exception).\n'
|
||||||
'\n'
|
'\n'
|
||||||
'The operator "not in" is defined to have the inverse truth value of\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'
|
'numeric\n'
|
||||||
' object is an integer type. Must return an integer.\n'
|
' object is an integer type. Must return an integer.\n'
|
||||||
'\n'
|
'\n'
|
||||||
' Note: In order to have a coherent integer type class, '
|
' If "__int__()", "__float__()" and "__complex__()" are '
|
||||||
'when\n'
|
'not defined\n'
|
||||||
' "__index__()" is defined "__int__()" should also be '
|
' then corresponding built-in functions "int()", "float()" '
|
||||||
'defined, and\n'
|
'and\n'
|
||||||
' both should return the same value.\n'
|
' "complex()" fall back to "__index__()".\n'
|
||||||
'\n'
|
'\n'
|
||||||
'object.__round__(self[, ndigits])\n'
|
'object.__round__(self[, ndigits])\n'
|
||||||
'object.__trunc__(self)\n'
|
'object.__trunc__(self)\n'
|
||||||
|
@ -7025,7 +7036,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
'| Operator | '
|
'| Operator | '
|
||||||
'Description |\n'
|
'Description |\n'
|
||||||
'|=================================================|=======================================|\n'
|
'+=================================================+=======================================+\n'
|
||||||
'| "lambda" | '
|
'| "lambda" | '
|
||||||
'Lambda expression |\n'
|
'Lambda expression |\n'
|
||||||
'+-------------------------------------------------+---------------------------------------+\n'
|
'+-------------------------------------------------+---------------------------------------+\n'
|
||||||
|
@ -8716,7 +8727,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' in:\n'
|
' in:\n'
|
||||||
'\n'
|
'\n'
|
||||||
' class Philosopher:\n'
|
' class Philosopher:\n'
|
||||||
' def __init_subclass__(cls, default_name, '
|
' def __init_subclass__(cls, /, default_name, '
|
||||||
'**kwargs):\n'
|
'**kwargs):\n'
|
||||||
' super().__init_subclass__(**kwargs)\n'
|
' super().__init_subclass__(**kwargs)\n'
|
||||||
' cls.default_name = default_name\n'
|
' cls.default_name = default_name\n'
|
||||||
|
@ -9469,11 +9480,11 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'numeric\n'
|
'numeric\n'
|
||||||
' object is an integer type. Must return an integer.\n'
|
' object is an integer type. Must return an integer.\n'
|
||||||
'\n'
|
'\n'
|
||||||
' Note: In order to have a coherent integer type class, '
|
' If "__int__()", "__float__()" and "__complex__()" are not '
|
||||||
'when\n'
|
'defined\n'
|
||||||
' "__index__()" is defined "__int__()" should also be '
|
' then corresponding built-in functions "int()", "float()" '
|
||||||
'defined, and\n'
|
'and\n'
|
||||||
' both should return the same value.\n'
|
' "complex()" fall back to "__index__()".\n'
|
||||||
'\n'
|
'\n'
|
||||||
'object.__round__(self[, ndigits])\n'
|
'object.__round__(self[, ndigits])\n'
|
||||||
'object.__trunc__(self)\n'
|
'object.__trunc__(self)\n'
|
||||||
|
@ -10269,7 +10280,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' | Representation | '
|
' | Representation | '
|
||||||
'Description |\n'
|
'Description |\n'
|
||||||
' '
|
' '
|
||||||
'|=========================|===============================|\n'
|
'+=========================+===============================+\n'
|
||||||
' | "\\n" | Line '
|
' | "\\n" | Line '
|
||||||
'Feed |\n'
|
'Feed |\n'
|
||||||
' '
|
' '
|
||||||
|
@ -10608,7 +10619,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'+-------------------+-----------------------------------+---------+\n'
|
'+-------------------+-----------------------------------+---------+\n'
|
||||||
'| Escape Sequence | Meaning | Notes '
|
'| Escape Sequence | Meaning | Notes '
|
||||||
'|\n'
|
'|\n'
|
||||||
'|===================|===================================|=========|\n'
|
'+===================+===================================+=========+\n'
|
||||||
'| "\\newline" | Backslash and newline ignored '
|
'| "\\newline" | Backslash and newline ignored '
|
||||||
'| |\n'
|
'| |\n'
|
||||||
'+-------------------+-----------------------------------+---------+\n'
|
'+-------------------+-----------------------------------+---------+\n'
|
||||||
|
@ -10654,7 +10665,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'+-------------------+-----------------------------------+---------+\n'
|
'+-------------------+-----------------------------------+---------+\n'
|
||||||
'| Escape Sequence | Meaning | Notes '
|
'| Escape Sequence | Meaning | Notes '
|
||||||
'|\n'
|
'|\n'
|
||||||
'|===================|===================================|=========|\n'
|
'+===================+===================================+=========+\n'
|
||||||
'| "\\N{name}" | Character named *name* in the | '
|
'| "\\N{name}" | Character named *name* in the | '
|
||||||
'(4) |\n'
|
'(4) |\n'
|
||||||
'| | Unicode database | '
|
'| | Unicode database | '
|
||||||
|
@ -11292,7 +11303,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
' | Attribute | Meaning '
|
' | Attribute | Meaning '
|
||||||
'| |\n'
|
'| |\n'
|
||||||
' '
|
' '
|
||||||
'|===========================|=================================|=============|\n'
|
'+===========================+=================================+=============+\n'
|
||||||
' | "__doc__" | The function’s documentation '
|
' | "__doc__" | The function’s documentation '
|
||||||
'| Writable |\n'
|
'| Writable |\n'
|
||||||
' | | string, or "None" if '
|
' | | string, or "None" if '
|
||||||
|
@ -11769,33 +11780,36 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'\n'
|
'\n'
|
||||||
' Special read-only attributes: "co_name" gives the function '
|
' Special read-only attributes: "co_name" gives the function '
|
||||||
'name;\n'
|
'name;\n'
|
||||||
' "co_argcount" is the number of positional arguments '
|
' "co_argcount" is the total number of positional arguments\n'
|
||||||
'(including\n'
|
' (including positional-only arguments and arguments with '
|
||||||
' arguments with default values); "co_nlocals" is the number '
|
'default\n'
|
||||||
'of\n'
|
' values); "co_posonlyargcount" is the number of '
|
||||||
' local variables used by the function (including arguments);\n'
|
'positional-only\n'
|
||||||
' "co_varnames" is a tuple containing the names of the local\n'
|
' arguments (including arguments with default values);\n'
|
||||||
' variables (starting with the argument names); "co_cellvars" '
|
' "co_kwonlyargcount" is the number of keyword-only arguments\n'
|
||||||
'is a\n'
|
' (including arguments with default values); "co_nlocals" is '
|
||||||
' 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 '
|
|
||||||
'the\n'
|
'the\n'
|
||||||
' interpreter); "co_stacksize" is the required stack size\n'
|
' number of local variables used by the function (including\n'
|
||||||
' (including local variables); "co_flags" is an integer '
|
' arguments); "co_varnames" is a tuple containing the names of '
|
||||||
'encoding a\n'
|
'the\n'
|
||||||
' number of flags for the interpreter.\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'
|
||||||
|
' 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'
|
'\n'
|
||||||
' The following flag bits are defined for "co_flags": bit '
|
' The following flag bits are defined for "co_flags": bit '
|
||||||
'"0x04"\n'
|
'"0x04"\n'
|
||||||
|
@ -12563,7 +12577,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'+----------------------------+----------------------------------+------------+\n'
|
'+----------------------------+----------------------------------+------------+\n'
|
||||||
'| Operation | Result '
|
'| Operation | Result '
|
||||||
'| Notes |\n'
|
'| Notes |\n'
|
||||||
'|============================|==================================|============|\n'
|
'+============================+==================================+============+\n'
|
||||||
'| "x in s" | "True" if an item of *s* is '
|
'| "x in s" | "True" if an item of *s* is '
|
||||||
'| (1) |\n'
|
'| (1) |\n'
|
||||||
'| | equal to *x*, else "False" '
|
'| | equal to *x*, else "False" '
|
||||||
|
@ -12792,7 +12806,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'+--------------------------------+----------------------------------+-----------------------+\n'
|
'+--------------------------------+----------------------------------+-----------------------+\n'
|
||||||
'| Operation | '
|
'| Operation | '
|
||||||
'Result | Notes |\n'
|
'Result | Notes |\n'
|
||||||
'|================================|==================================|=======================|\n'
|
'+================================+==================================+=======================+\n'
|
||||||
'| "s[i] = x" | item *i* of *s* is replaced '
|
'| "s[i] = x" | item *i* of *s* is replaced '
|
||||||
'by | |\n'
|
'by | |\n'
|
||||||
'| | '
|
'| | '
|
||||||
|
@ -13254,7 +13268,7 @@ topics = {'assert': 'The "assert" statement\n'
|
||||||
'| Operation | '
|
'| Operation | '
|
||||||
'Result | Notes '
|
'Result | Notes '
|
||||||
'|\n'
|
'|\n'
|
||||||
'|================================|==================================|=======================|\n'
|
'+================================+==================================+=======================+\n'
|
||||||
'| "s[i] = x" | item *i* of *s* is '
|
'| "s[i] = x" | item *i* of *s* is '
|
||||||
'replaced by | |\n'
|
'replaced by | |\n'
|
||||||
'| | '
|
'| | '
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
||||||
"make install" now runs compileall in parallel.
|
|
|
@ -1,16 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
``Py_Main()`` now returns the exitcode rather than calling
|
|
||||||
``Py_Exit(exitcode)`` when calling ``PyErr_Print()`` if the current
|
|
||||||
exception type is ``SystemExit``.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Implement :pep:`590`: Vectorcall: a fast calling protocol for CPython.
|
|
||||||
This is a new protocol to optimize calls of custom callable objects.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix crashes when attempting to use the *modulo* parameter when ``__ipow__``
|
|
||||||
is implemented in C.
|
|
|
@ -1 +0,0 @@
|
||||||
Implement the :pep:`587` "Python Initialization Configuration".
|
|
|
@ -1,2 +0,0 @@
|
||||||
Port binascii to PEP 489 multiphase initialization.
|
|
||||||
Patch by Marcel Plch.
|
|
|
@ -1 +0,0 @@
|
||||||
Remove cross-version binary compatibility requirement in tp_flags.
|
|
|
@ -1 +0,0 @@
|
||||||
Expose :func:`copy_file_range` as a low level API in the :mod:`os` module.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown.
|
|
||||||
Patch by Zackery Spytz.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Added fix for broken symlinks in combination with pathlib
|
|
|
@ -1 +0,0 @@
|
||||||
Add native thread ID (TID) to threading.Thread objects (supported platforms: Windows, FreeBSD, Linux, macOS)
|
|
|
@ -1 +0,0 @@
|
||||||
builtins.help() now prefixes `async` for async functions
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix incorrect use of ``%p`` in format strings.
|
|
||||||
Patch by Zackery Spytz.
|
|
|
@ -1,2 +0,0 @@
|
||||||
A long-since-meaningless check for ``getpid() == main_pid`` was removed
|
|
||||||
from Python's internal C signal handler.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Save the live exception during import.c's ``remove_module()``.
|
|
|
@ -1,7 +0,0 @@
|
||||||
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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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`.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Move PyRuntimeState.warnings into per-interpreter state (via "module
|
|
||||||
state").
|
|
|
@ -1,2 +0,0 @@
|
||||||
Correct return type for UserList slicing operations. Patch by Michael Blahay,
|
|
||||||
Erick Cervantes, and vaultah
|
|
|
@ -1 +0,0 @@
|
||||||
Implement PEP 578, adding sys.audit, io.open_code and related APIs.
|
|
|
@ -1 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
The ``FrameType`` stack is now correctly cleaned up if the execution ends
|
|
||||||
with a return and the stack is not empty.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Avoid caching attributes of classes which type defines mro() to avoid a hard
|
|
||||||
cache invalidation problem.
|
|
|
@ -1 +0,0 @@
|
||||||
Update the Unicode database to version 12.1.0.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Add NamedExpression kind support to ast_unparse.c
|
|
|
@ -1 +0,0 @@
|
||||||
Fix possible signed integer overflow when handling slices.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix a crash when calling a C function with a keyword dict (``f(**kwargs)``)
|
|
||||||
and changing the dict ``kwargs`` while that function is running.
|
|
|
@ -1 +0,0 @@
|
||||||
Treat line continuation at EOF as a ``SyntaxError`` by Anthony Sottile.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Only accept text after `# type: ignore` if the first character is ASCII.
|
|
||||||
This is to disallow things like `# type: ignoreé`.
|
|
|
@ -1,4 +0,0 @@
|
||||||
: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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Implement :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`, and
|
|
||||||
:func:`socket.if_indextoname()` on Windows.
|
|
|
@ -1 +0,0 @@
|
||||||
Added new ``replace()`` method to the code type (:class:`types.CodeType`).
|
|
|
@ -1 +0,0 @@
|
||||||
Add :func:`os.memfd_create`.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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).
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix possible overflow in ``wrap_lenfunc()`` when
|
|
||||||
``sizeof(long) < sizeof(Py_ssize_t)`` (e.g., 64-bit Windows).
|
|
|
@ -1 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix crash in PyAST_FromNodeObject() when flags is NULL.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Add native thread ID (TID) support to OpenBSD.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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.
|
|
|
@ -1,5 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
All structseq objects are now tracked by the garbage collector. Patch by
|
|
||||||
Pablo Galindo.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Allow unpacking in the right hand side of annotated assignments. In
|
|
||||||
particular, ``t: Tuple[int, ...] = x, y, *z`` is now allowed.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.)
|
|
|
@ -1 +0,0 @@
|
||||||
Added documentation for func factorial to indicate that returns integer values
|
|
|
@ -1 +0,0 @@
|
||||||
Make `codecs.StreamRecoder.writelines` take a list of bytes.
|
|
|
@ -1 +0,0 @@
|
||||||
Clarify that `copy()` is not part of the `MutableSequence` ABC.
|
|
|
@ -1 +0,0 @@
|
||||||
Added the context variable in glossary.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Remove deprecation and document urllib.parse.unwrap(). Patch contributed by
|
|
||||||
Rémi Lapeyre.
|
|
|
@ -1 +0,0 @@
|
||||||
Add detail to the documentation on the `pty.spawn` function.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Added C API Documentation for Time_FromTimeAndFold and PyDateTime_FromDateAndTimeAndFold as per PEP 495.
|
|
||||||
Patch by Edison Abahurire.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Add a note to the ``curses.addstr()`` documentation to warn that multiline
|
|
||||||
strings can cause segfaults because of an ncurses bug.
|
|
|
@ -1,2 +0,0 @@
|
||||||
What's new now mentions SSLContext.hostname_checks_common_name instead of
|
|
||||||
SSLContext.host_flags.
|
|
|
@ -1 +0,0 @@
|
||||||
Improve version added references in ``typing`` module - by Anthony Sottile.
|
|
|
@ -1,6 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Clarify that some types have unstable constructor signature between Python
|
|
||||||
versions.
|
|
|
@ -1,2 +0,0 @@
|
||||||
In browser.py, remove extraneous sorting by line number since dictionary was
|
|
||||||
created in line number order.
|
|
|
@ -1 +0,0 @@
|
||||||
When saving a file, call os.fsync() so bits are flushed to e.g. USB drive.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Print any argument other than None or int passed to SystemExit or
|
|
||||||
sys.exit().
|
|
|
@ -1 +0,0 @@
|
||||||
Make idlelib.run runnable; add test clause.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Replace now redundant .context_use_ps1 with .prompt_last_line. This finishes
|
|
||||||
change started in bpo-31858.
|
|
|
@ -1,2 +0,0 @@
|
||||||
``_thread.interrupt_main()`` now avoids setting the Python error status
|
|
||||||
if the ``SIGINT`` signal is ignored or not handled by Python.
|
|
|
@ -1,3 +0,0 @@
|
||||||
``\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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Added a ``__copy__()`` to ``collections.UserList`` and
|
|
||||||
``collections.UserDict`` in order to correctly implement shallow copying of
|
|
||||||
the objects. Patch by Bar Harel.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Changed :func:`unittest.mock.patch.dict` to return the patched
|
|
||||||
dictionary when used as context manager. Patch by Vadim Tsander.
|
|
|
@ -1 +0,0 @@
|
||||||
trace.py can now run modules via python3 -m trace -t --module module_name
|
|
|
@ -1,2 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Allow :class:`mmap.mmap` objects to access the madvise() system call
|
|
||||||
(through :meth:`mmap.mmap.madvise`).
|
|
|
@ -1,2 +0,0 @@
|
||||||
:class:`pathlib.Path.unlink` now accepts a *missing_ok* parameter to avoid a
|
|
||||||
:exc:`FileNotFoundError` from being raised. Patch by Robert Buchholz.
|
|
|
@ -1,6 +0,0 @@
|
||||||
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.
|
|
|
@ -1 +0,0 @@
|
||||||
Change ThreadPoolExecutor to use existing idle threads before spinning up new ones.
|
|
|
@ -1,3 +0,0 @@
|
||||||
:meth:`asyncio.AbstractEventLoop.create_datagram_endpoint`:
|
|
||||||
Do not connect UDP socket when broadcast is allowed.
|
|
||||||
This allows to receive replies after a UDP broadcast.
|
|
|
@ -1,2 +0,0 @@
|
||||||
The :mod:`shlex` module now exposes :func:`shlex.join`, the inverse of
|
|
||||||
:func:`shlex.split`. Patch by Bo Bayles.
|
|
|
@ -1,2 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Performance of :func:`functools.reduce` is slightly improved. Patch by
|
|
||||||
Sergey Fedoseev.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix serialization of messages containing encoded strings when the
|
|
||||||
policy.linesep is set to a multi-character string. Patch by Jens Troeger.
|
|
|
@ -1 +0,0 @@
|
||||||
dataclasses.InitVar: Exposes the type used to create the init var.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Added AsyncMock to support using unittest to mock asyncio coroutines.
|
|
||||||
Patch by Lisa Roach.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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.
|
|
|
@ -1,4 +0,0 @@
|
||||||
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.
|
|
|
@ -1,2 +0,0 @@
|
||||||
:func:`unittest.mock.mock_open` results now respects the argument of read([size]).
|
|
||||||
Patch contributed by Rémi Lapeyre.
|
|
|
@ -1,3 +0,0 @@
|
||||||
Fix :meth:`asyncio.SelectorEventLoop.subprocess_exec()` leaks file descriptors
|
|
||||||
if ``Popen`` fails and called with ``stdin=subprocess.PIPE``.
|
|
||||||
Patch by Niklas Fiekas.
|
|
|
@ -1 +0,0 @@
|
||||||
Asyncio: Remove inner callback on outer cancellation in shield
|
|
|
@ -1 +0,0 @@
|
||||||
Add posix module support for VxWorks.
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue