Python 3.9.0a1

This commit is contained in:
Łukasz Langa 2019-11-19 12:17:21 +01:00
parent 24555ce2f9
commit fd757083df
No known key found for this signature in database
GPG key ID: B26995E310250568
573 changed files with 6113 additions and 1382 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 9 #define PY_MINOR_VERSION 9
#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_ALPHA
#define PY_RELEASE_SERIAL 0 #define PY_RELEASE_SERIAL 1
/* Version as a string */ /* Version as a string */
#define PY_VERSION "3.9.0a0" #define PY_VERSION "3.9.0a1"
/*--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.

View file

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Jun 4 19:40:37 2019 # Autogenerated by Sphinx on Tue Nov 19 11:42:25 2019
topics = {'assert': 'The "assert" statement\n' topics = {'assert': 'The "assert" statement\n'
'**********************\n' '**********************\n'
'\n' '\n'
@ -744,10 +744,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n' 'returned.\n'
'\n' '\n'
'The "__dir__" function should accept no arguments, and ' 'The "__dir__" function should accept no arguments, and '
'return a list\n' 'return a\n'
'of strings that represents the names accessible on ' 'sequence of strings that represents the names accessible '
'module. If present,\n' 'on module. If\n'
'this function overrides the standard "dir()" search on a ' 'present, this function overrides the standard "dir()" '
'search on a\n'
'module.\n' 'module.\n'
'\n' '\n'
'For a more fine grained customization of the module ' 'For a more fine grained customization of the module '
@ -808,21 +809,34 @@ topics = {'assert': 'The "assert" statement\n'
'whose name is\n' 'whose name is\n'
'the key of the property in the owner class "__dict__".\n' 'the key of the property in the owner class "__dict__".\n'
'\n' '\n'
'object.__get__(self, instance, owner)\n' 'object.__get__(self, instance, owner=None)\n'
'\n' '\n'
' Called to get the attribute of the owner class (class ' ' Called to get the attribute of the owner class (class '
'attribute\n' 'attribute\n'
' access) or of an instance of that class (instance ' ' access) or of an instance of that class (instance '
'attribute\n' 'attribute\n'
' access). *owner* is always the owner class, while ' ' access). The optional *owner* argument is the owner '
'*instance* is the\n' 'class, while\n'
' instance that the attribute was accessed through, or ' ' *instance* is the instance that the attribute was '
'"None" when\n' 'accessed through,\n'
' the attribute is accessed through the *owner*. This ' ' or "None" when the attribute is accessed through the '
'method should\n' '*owner*.\n'
' return the (computed) attribute value or raise an ' '\n'
'"AttributeError"\n' ' This method should return the computed attribute '
' exception.\n' 'value or raise an\n'
' "AttributeError" exception.\n'
'\n'
' **PEP 252** specifies that "__get__()" is callable '
'with one or two\n'
' arguments. Pythons own built-in descriptors support '
'this\n'
' specification; however, it is likely that some '
'third-party tools\n'
' have descriptors that require both arguments. '
'Pythons own\n'
' "__getattribute__()" implementation always passes in '
'both arguments\n'
' whether they are required or not.\n'
'\n' '\n'
'object.__set__(self, instance, value)\n' 'object.__set__(self, instance, value)\n'
'\n' '\n'
@ -830,6 +844,12 @@ topics = {'assert': 'The "assert" statement\n'
'of the owner\n' 'of the owner\n'
' class to a new value, *value*.\n' ' class to a new value, *value*.\n'
'\n' '\n'
' Note, adding "__set__()" or "__delete__()" changes '
'the kind of\n'
' descriptor to a “data descriptor”. See Invoking '
'Descriptors for\n'
' more details.\n'
'\n'
'object.__delete__(self, instance)\n' 'object.__delete__(self, instance)\n'
'\n' '\n'
' Called to delete the attribute on an instance ' ' Called to delete the attribute on an instance '
@ -938,12 +958,13 @@ topics = {'assert': 'The "assert" statement\n'
'define both\n' 'define both\n'
'"__get__()" and "__set__()", while non-data descriptors ' '"__get__()" and "__set__()", while non-data descriptors '
'have just the\n' 'have just the\n'
'"__get__()" method. Data descriptors with "__set__()" ' '"__get__()" method. Data descriptors with "__get__()" '
'and "__get__()"\n' 'and "__set__()"\n'
'defined always override a redefinition in an instance ' '(and/or "__delete__()") defined always override a '
'dictionary. In\n' 'redefinition in an\n'
'contrast, non-data descriptors can be overridden by ' 'instance dictionary. In contrast, non-data descriptors '
'instances.\n' 'can be\n'
'overridden by instances.\n'
'\n' '\n'
'Python methods (including "staticmethod()" and ' 'Python methods (including "staticmethod()" and '
'"classmethod()") are\n' '"classmethod()") are\n'
@ -1070,7 +1091,13 @@ topics = {'assert': 'The "assert" statement\n'
'attributes created by\n' 'attributes created by\n'
' slots (the other bases must have empty slot layouts) - ' ' slots (the other bases must have empty slot layouts) - '
'violations\n' 'violations\n'
' raise "TypeError".\n', ' raise "TypeError".\n'
'\n'
'* If an iterator is used for *__slots__* then a '
'descriptor is\n'
' created for each of the iterators values. However, '
'the *__slots__*\n'
' attribute will be an empty iterator.\n',
'attribute-references': 'Attribute references\n' 'attribute-references': 'Attribute references\n'
'********************\n' '********************\n'
'\n' '\n'
@ -1829,6 +1856,12 @@ topics = {'assert': 'The "assert" statement\n'
'all false.\n' 'all false.\n'
' This behavior is compliant with IEEE 754.\n' ' This behavior is compliant with IEEE 754.\n'
'\n' '\n'
'* "None" and "NotImplemented" are singletons. **PEP 8** '
'advises\n'
' that comparisons for singletons should always be done with '
'"is" or\n'
' "is not", never the equality operators.\n'
'\n'
'* Binary sequences (instances of "bytes" or "bytearray") can ' '* Binary sequences (instances of "bytes" or "bytearray") can '
'be\n' 'be\n'
' compared within and across their types. They compare\n' ' compared within and across their types. They compare\n'
@ -1854,38 +1887,13 @@ topics = {'assert': 'The "assert" statement\n'
' these types raises "TypeError".\n' ' these types raises "TypeError".\n'
'\n' '\n'
' Sequences compare lexicographically using comparison of\n' ' Sequences compare lexicographically using comparison of\n'
' corresponding elements, whereby reflexivity of the elements ' ' corresponding elements. The built-in containers typically '
'is\n' 'assume\n'
' enforced.\n' ' identical objects are equal to themselves. That lets them '
'\n' 'bypass\n'
' In enforcing reflexivity of elements, the comparison of ' ' equality tests for identical objects to improve performance '
'collections\n' 'and to\n'
' assumes that for a collection element "x", "x == x" is ' ' maintain their internal invariants.\n'
'always true.\n'
' Based on that assumption, element identity is compared '
'first, and\n'
' element comparison is performed only for distinct '
'elements. This\n'
' approach yields the same result as a strict element '
'comparison\n'
' would, if the compared elements are reflexive. For '
'non-reflexive\n'
' elements, the result is different than for strict element\n'
' comparison, and may be surprising: The non-reflexive '
'not-a-number\n'
' values for example result in the following comparison '
'behavior when\n'
' used in a list:\n'
'\n'
" >>> nan = float('NaN')\n"
' >>> nan is nan\n'
' True\n'
' >>> nan == nan\n'
' False <-- the defined non-reflexive '
'behavior of NaN\n'
' >>> [nan] == [nan]\n'
' True <-- list enforces reflexivity and '
'tests identity first\n'
'\n' '\n'
' Lexicographical comparison between built-in collections ' ' Lexicographical comparison between built-in collections '
'works as\n' 'works as\n'
@ -3126,13 +3134,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n' 'returning\n'
' it.\n' ' it.\n'
'\n' '\n'
' If "__new__()" returns an instance of *cls*, then the ' ' If "__new__()" is invoked during object construction and '
'new\n' 'it returns\n'
' instances "__init__()" method will be invoked like\n' ' an instance or subclass of *cls*, then the new '
' "__init__(self[, ...])", where *self* is the new ' 'instances\n'
'instance and the\n' ' "__init__()" method will be invoked like '
' remaining arguments are the same as were passed to ' '"__init__(self[, ...])",\n'
'"__new__()".\n' ' where *self* is the new instance and the remaining '
'arguments are\n'
' the same as were passed to the object constructor.\n'
'\n' '\n'
' If "__new__()" does not return an instance of *cls*, ' ' If "__new__()" does not return an instance of *cls*, '
'then the new\n' 'then the new\n'
@ -3500,10 +3510,10 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, ' ' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n' 'collections.abc.Hashable)" call.\n'
'\n' '\n'
' Note: By default, the "__hash__()" values of str, bytes ' ' Note: By default, the "__hash__()" values of str and '
'and\n' 'bytes\n'
' datetime objects are “salted” with an unpredictable ' ' objects are “salted” with an unpredictable random '
'random value.\n' 'value.\n'
' Although they remain constant within an individual ' ' Although they remain constant within an individual '
'Python\n' 'Python\n'
' process, they are not predictable between repeated ' ' process, they are not predictable between repeated '
@ -3758,6 +3768,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
" import pdb; pdb.Pdb(skip=['django.*']).set_trace()\n" " import pdb; pdb.Pdb(skip=['django.*']).set_trace()\n"
'\n' '\n'
' Raises an auditing event "pdb.Pdb" with no arguments.\n'
'\n'
' New in version 3.1: The *skip* argument.\n' ' New in version 3.1: The *skip* argument.\n'
'\n' '\n'
' New in version 3.2: The *nosigint* argument. Previously, a ' ' New in version 3.2: The *nosigint* argument. Previously, a '
@ -4289,7 +4301,14 @@ topics = {'assert': 'The "assert" statement\n'
'section The standard type hierarchy. (To summarize, the key type\n' 'section The standard type hierarchy. (To summarize, the key type\n'
'should be *hashable*, which excludes all mutable objects.) Clashes\n' 'should be *hashable*, which excludes all mutable objects.) Clashes\n'
'between duplicate keys are not detected; the last datum (textually\n' 'between duplicate keys are not detected; the last datum (textually\n'
'rightmost in the display) stored for a given key value prevails.\n', 'rightmost in the display) stored for a given key value prevails.\n'
'\n'
'Changed in version 3.8: Prior to Python 3.8, in dict '
'comprehensions,\n'
'the evaluation order of key and value was not well-defined. In\n'
'CPython, the value was evaluated before the key. Starting with '
'3.8,\n'
'the key is evaluated before the value, as proposed by **PEP 572**.\n',
'dynamic-features': 'Interaction with dynamic features\n' 'dynamic-features': 'Interaction with dynamic features\n'
'*********************************\n' '*********************************\n'
'\n' '\n'
@ -4430,9 +4449,13 @@ topics = {'assert': 'The "assert" statement\n'
'(a\n' '(a\n'
'command specified on the interpreter command line with the ' 'command specified on the interpreter command line with the '
'"-c"\n' '"-c"\n'
'option) is a code block. The string argument passed to the ' 'option) is a code block. A module run as a top level script (as '
'built-in\n' 'module\n'
'functions "eval()" and "exec()" is a code block.\n' '"__main__") from the command line using a "-m" argument is also '
'a code\n'
'block. The string argument passed to the built-in functions '
'"eval()"\n'
'and "exec()" is a code block.\n'
'\n' '\n'
'A code block is executed in an *execution frame*. A frame ' 'A code block is executed in an *execution frame*. A frame '
'contains\n' 'contains\n'
@ -5090,7 +5113,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 '
@ -5139,7 +5162,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 '
@ -5243,7 +5266,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 '
@ -5263,7 +5286,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'
' ' ' '
@ -5325,7 +5348,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 '
@ -5364,29 +5387,33 @@ topics = {'assert': 'The "assert" statement\n'
'the result |\n' 'the result |\n'
' | | formatted with presentation type "\'e\'" ' ' | | formatted with presentation type "\'e\'" '
'and precision "p-1" |\n' 'and precision "p-1" |\n'
' | | would have exponent "exp". Then if "-4 <= ' ' | | would have exponent "exp". Then, if "m <= '
'exp < p", the |\n' 'exp < p", where |\n'
' | | number is formatted with presentation type ' ' | | "m" is -4 for floats and -6 for '
'"\'f\'" and |\n' '"Decimals", the number is |\n'
' | | precision "p-1-exp". Otherwise, the ' ' | | formatted with presentation type "\'f\'" '
'number is formatted |\n' 'and precision |\n'
' | | with presentation type "\'e\'" and ' ' | | "p-1-exp". Otherwise, the number is '
'precision "p-1". In both |\n' 'formatted with |\n'
' | | cases insignificant trailing zeros are ' ' | | presentation type "\'e\'" and precision '
'removed from the |\n' '"p-1". In both cases |\n'
' | | insignificant trailing zeros are removed '
'from the |\n'
' | | significand, and the decimal point is also ' ' | | significand, and the decimal point is also '
'removed if |\n' 'removed if |\n'
' | | there are no remaining digits following ' ' | | there are no remaining digits following '
'it. Positive and |\n' 'it, unless the |\n'
' | | negative infinity, positive and negative ' ' | | "\'#\'" option is used. Positive and '
'zero, and nans, |\n' 'negative infinity, |\n'
' | | are formatted as "inf", "-inf", "0", "-0" ' ' | | positive and negative zero, and nans, are '
'and "nan" |\n' 'formatted as |\n'
' | | respectively, regardless of the ' ' | | "inf", "-inf", "0", "-0" and "nan" '
'precision. A precision of |\n' 'respectively, |\n'
' | | "0" is treated as equivalent to a ' ' | | regardless of the precision. A precision '
'precision of "1". The |\n' 'of "0" is |\n'
' | | default precision is ' ' | | treated as equivalent to a precision of '
'"1". The default |\n'
' | | precision is '
'"6". |\n' '"6". |\n'
' ' ' '
'+-----------+------------------------------------------------------------+\n' '+-----------+------------------------------------------------------------+\n'
@ -6212,6 +6239,10 @@ topics = {'assert': 'The "assert" statement\n'
'that\n' 'that\n'
'determine dynamically the modules to be loaded.\n' 'determine dynamically the modules to be loaded.\n'
'\n' '\n'
'Raises an auditing event "import" with arguments "module", '
'"filename",\n'
'"sys.path", "sys.meta_path", "sys.path_hooks".\n'
'\n'
'\n' '\n'
'Future statements\n' 'Future statements\n'
'=================\n' '=================\n'
@ -7036,7 +7067,10 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------------------------------------+---------------------------------------+\n' '+-------------------------------------------------+---------------------------------------+\n'
'| Operator | ' '| Operator | '
'Description |\n' 'Description |\n'
'+=================================================+=======================================+\n' '|=================================================|=======================================|\n'
'| ":=" | '
'Assignment expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
'| "lambda" | ' '| "lambda" | '
'Lambda expression |\n' 'Lambda expression |\n'
'+-------------------------------------------------+---------------------------------------+\n' '+-------------------------------------------------+---------------------------------------+\n'
@ -7094,8 +7128,8 @@ topics = {'assert': 'The "assert" statement\n'
'attribute reference |\n' 'attribute reference |\n'
'+-------------------------------------------------+---------------------------------------+\n' '+-------------------------------------------------+---------------------------------------+\n'
'| "(expressions...)", "[expressions...]", "{key: | ' '| "(expressions...)", "[expressions...]", "{key: | '
'Binding or tuple display, list |\n' 'Binding or parenthesized expression, |\n'
'| value...}", "{expressions...}" | ' '| value...}", "{expressions...}" | list '
'display, dictionary display, set |\n' 'display, dictionary display, set |\n'
'| | ' '| | '
'display |\n' 'display |\n'
@ -7432,9 +7466,9 @@ topics = {'assert': 'The "assert" statement\n'
'to allow\n' 'to allow\n'
'efficient iteration through the container; for mappings, ' 'efficient iteration through the container; for mappings, '
'"__iter__()"\n' '"__iter__()"\n'
'should be the same as "keys()"; for sequences, it should ' 'should iterate through the objects keys; for sequences, '
'iterate\n' 'it should\n'
'through the values.\n' 'iterate through the values.\n'
'\n' '\n'
'object.__len__(self)\n' 'object.__len__(self)\n'
'\n' '\n'
@ -7464,7 +7498,11 @@ topics = {'assert': 'The "assert" statement\n'
' estimated length for the object (which may be greater ' ' estimated length for the object (which may be greater '
'or less than\n' 'or less than\n'
' the actual length). The length must be an integer ">=" ' ' the actual length). The length must be an integer ">=" '
'0. This\n' '0. The\n'
' return value may also be "NotImplemented", which is '
'treated the\n'
' same as if the "__length_hint__" method didnt exist at '
'all. This\n'
' method is purely an optimization and is never required ' ' method is purely an optimization and is never required '
'for\n' 'for\n'
' correctness.\n' ' correctness.\n'
@ -7582,12 +7620,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'The membership test operators ("in" and "not in") are ' 'The membership test operators ("in" and "not in") are '
'normally\n' 'normally\n'
'implemented as an iteration through a sequence. However, ' 'implemented as an iteration through a container. However, '
'container\n' 'container\n'
'objects can supply the following special method with a ' 'objects can supply the following special method with a '
'more efficient\n' 'more efficient\n'
'implementation, which also does not require the object be ' 'implementation, which also does not require the object be '
'a sequence.\n' 'iterable.\n'
'\n' '\n'
'object.__contains__(self, item)\n' 'object.__contains__(self, item)\n'
'\n' '\n'
@ -7832,13 +7870,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n' 'returning\n'
' it.\n' ' it.\n'
'\n' '\n'
' If "__new__()" returns an instance of *cls*, then the ' ' If "__new__()" is invoked during object construction and '
'new\n' 'it returns\n'
' instances "__init__()" method will be invoked like\n' ' an instance or subclass of *cls*, then the new '
' "__init__(self[, ...])", where *self* is the new instance ' 'instances\n'
'and the\n' ' "__init__()" method will be invoked like "__init__(self[, '
' remaining arguments are the same as were passed to ' '...])",\n'
'"__new__()".\n' ' where *self* is the new instance and the remaining '
'arguments are\n'
' the same as were passed to the object constructor.\n'
'\n' '\n'
' If "__new__()" does not return an instance of *cls*, then ' ' If "__new__()" does not return an instance of *cls*, then '
'the new\n' 'the new\n'
@ -8203,10 +8243,10 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, ' ' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n' 'collections.abc.Hashable)" call.\n'
'\n' '\n'
' Note: By default, the "__hash__()" values of str, bytes ' ' Note: By default, the "__hash__()" values of str and '
'and\n' 'bytes\n'
' datetime objects are “salted” with an unpredictable ' ' objects are “salted” with an unpredictable random '
'random value.\n' 'value.\n'
' Although they remain constant within an individual ' ' Although they remain constant within an individual '
'Python\n' 'Python\n'
' process, they are not predictable between repeated ' ' process, they are not predictable between repeated '
@ -8367,10 +8407,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n' 'returned.\n'
'\n' '\n'
'The "__dir__" function should accept no arguments, and ' 'The "__dir__" function should accept no arguments, and '
'return a list\n' 'return a\n'
'of strings that represents the names accessible on module. ' 'sequence of strings that represents the names accessible on '
'If present,\n' 'module. If\n'
'this function overrides the standard "dir()" search on a ' 'present, this function overrides the standard "dir()" search '
'on a\n'
'module.\n' 'module.\n'
'\n' '\n'
'For a more fine grained customization of the module behavior ' 'For a more fine grained customization of the module behavior '
@ -8431,21 +8472,34 @@ topics = {'assert': 'The "assert" statement\n'
'whose name is\n' 'whose name is\n'
'the key of the property in the owner class "__dict__".\n' 'the key of the property in the owner class "__dict__".\n'
'\n' '\n'
'object.__get__(self, instance, owner)\n' 'object.__get__(self, instance, owner=None)\n'
'\n' '\n'
' Called to get the attribute of the owner class (class ' ' Called to get the attribute of the owner class (class '
'attribute\n' 'attribute\n'
' access) or of an instance of that class (instance ' ' access) or of an instance of that class (instance '
'attribute\n' 'attribute\n'
' access). *owner* is always the owner class, while ' ' access). The optional *owner* argument is the owner '
'*instance* is the\n' 'class, while\n'
' instance that the attribute was accessed through, or ' ' *instance* is the instance that the attribute was '
'"None" when\n' 'accessed through,\n'
' the attribute is accessed through the *owner*. This ' ' or "None" when the attribute is accessed through the '
'method should\n' '*owner*.\n'
' return the (computed) attribute value or raise an ' '\n'
'"AttributeError"\n' ' This method should return the computed attribute value or '
' exception.\n' 'raise an\n'
' "AttributeError" exception.\n'
'\n'
' **PEP 252** specifies that "__get__()" is callable with '
'one or two\n'
' arguments. Pythons own built-in descriptors support '
'this\n'
' specification; however, it is likely that some '
'third-party tools\n'
' have descriptors that require both arguments. Pythons '
'own\n'
' "__getattribute__()" implementation always passes in both '
'arguments\n'
' whether they are required or not.\n'
'\n' '\n'
'object.__set__(self, instance, value)\n' 'object.__set__(self, instance, value)\n'
'\n' '\n'
@ -8453,6 +8507,12 @@ topics = {'assert': 'The "assert" statement\n'
'the owner\n' 'the owner\n'
' class to a new value, *value*.\n' ' class to a new value, *value*.\n'
'\n' '\n'
' Note, adding "__set__()" or "__delete__()" changes the '
'kind of\n'
' descriptor to a “data descriptor”. See Invoking '
'Descriptors for\n'
' more details.\n'
'\n'
'object.__delete__(self, instance)\n' 'object.__delete__(self, instance)\n'
'\n' '\n'
' Called to delete the attribute on an instance *instance* ' ' Called to delete the attribute on an instance *instance* '
@ -8559,12 +8619,13 @@ topics = {'assert': 'The "assert" statement\n'
'both\n' 'both\n'
'"__get__()" and "__set__()", while non-data descriptors have ' '"__get__()" and "__set__()", while non-data descriptors have '
'just the\n' 'just the\n'
'"__get__()" method. Data descriptors with "__set__()" and ' '"__get__()" method. Data descriptors with "__get__()" and '
'"__get__()"\n' '"__set__()"\n'
'defined always override a redefinition in an instance ' '(and/or "__delete__()") defined always override a '
'dictionary. In\n' 'redefinition in an\n'
'contrast, non-data descriptors can be overridden by ' 'instance dictionary. In contrast, non-data descriptors can '
'instances.\n' 'be\n'
'overridden by instances.\n'
'\n' '\n'
'Python methods (including "staticmethod()" and ' 'Python methods (including "staticmethod()" and '
'"classmethod()") are\n' '"classmethod()") are\n'
@ -8691,6 +8752,12 @@ topics = {'assert': 'The "assert" statement\n'
'violations\n' 'violations\n'
' raise "TypeError".\n' ' raise "TypeError".\n'
'\n' '\n'
'* If an iterator is used for *__slots__* then a descriptor '
'is\n'
' created for each of the iterators values. However, the '
'*__slots__*\n'
' attribute will be an empty iterator.\n'
'\n'
'\n' '\n'
'Customizing class creation\n' 'Customizing class creation\n'
'==========================\n' '==========================\n'
@ -9136,9 +9203,9 @@ topics = {'assert': 'The "assert" statement\n'
'allow\n' 'allow\n'
'efficient iteration through the container; for mappings, ' 'efficient iteration through the container; for mappings, '
'"__iter__()"\n' '"__iter__()"\n'
'should be the same as "keys()"; for sequences, it should ' 'should iterate through the objects keys; for sequences, it '
'iterate\n' 'should\n'
'through the values.\n' 'iterate through the values.\n'
'\n' '\n'
'object.__len__(self)\n' 'object.__len__(self)\n'
'\n' '\n'
@ -9167,7 +9234,11 @@ topics = {'assert': 'The "assert" statement\n'
' estimated length for the object (which may be greater or ' ' estimated length for the object (which may be greater or '
'less than\n' 'less than\n'
' the actual length). The length must be an integer ">=" 0. ' ' the actual length). The length must be an integer ">=" 0. '
'This\n' 'The\n'
' return value may also be "NotImplemented", which is '
'treated the\n'
' same as if the "__length_hint__" method didnt exist at '
'all. This\n'
' method is purely an optimization and is never required ' ' method is purely an optimization and is never required '
'for\n' 'for\n'
' correctness.\n' ' correctness.\n'
@ -9285,12 +9356,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'The membership test operators ("in" and "not in") are ' 'The membership test operators ("in" and "not in") are '
'normally\n' 'normally\n'
'implemented as an iteration through a sequence. However, ' 'implemented as an iteration through a container. However, '
'container\n' 'container\n'
'objects can supply the following special method with a more ' 'objects can supply the following special method with a more '
'efficient\n' 'efficient\n'
'implementation, which also does not require the object be a ' 'implementation, which also does not require the object be '
'sequence.\n' 'iterable.\n'
'\n' '\n'
'object.__contains__(self, item)\n' 'object.__contains__(self, item)\n'
'\n' '\n'
@ -9756,9 +9827,21 @@ topics = {'assert': 'The "assert" statement\n'
'For a list\n' 'For a list\n'
' of possible encodings, see section Standard Encodings.\n' ' of possible encodings, see section Standard Encodings.\n'
'\n' '\n'
' By default, the *errors* argument is not checked for '
'best\n'
' performances, but only used at the first encoding '
'error. Enable the\n'
' development mode ("-X" "dev" option), or use a debug '
'build, to\n'
' check *errors*.\n'
'\n'
' Changed in version 3.1: Support for keyword arguments ' ' Changed in version 3.1: Support for keyword arguments '
'added.\n' 'added.\n'
'\n' '\n'
' Changed in version 3.9: The *errors* is now checked in '
'development\n'
' mode and in debug mode.\n'
'\n'
'str.endswith(suffix[, start[, end]])\n' 'str.endswith(suffix[, start[, end]])\n'
'\n' '\n'
' Return "True" if the string ends with the specified ' ' Return "True" if the string ends with the specified '
@ -9894,20 +9977,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'str.isalnum()\n' 'str.isalnum()\n'
'\n' '\n'
' Return true if all characters in the string are ' ' Return "True" if all characters in the string are '
'alphanumeric and\n' 'alphanumeric and\n'
' there is at least one character, false otherwise. A ' ' there is at least one character, "False" otherwise. A '
'character "c"\n' 'character\n'
' is alphanumeric if one of the following returns ' ' "c" is alphanumeric if one of the following returns '
'"True":\n' '"True":\n'
' "c.isalpha()", "c.isdecimal()", "c.isdigit()", or ' ' "c.isalpha()", "c.isdecimal()", "c.isdigit()", or '
'"c.isnumeric()".\n' '"c.isnumeric()".\n'
'\n' '\n'
'str.isalpha()\n' 'str.isalpha()\n'
'\n' '\n'
' Return true if all characters in the string are ' ' Return "True" if all characters in the string are '
'alphabetic and\n' 'alphabetic and\n'
' there is at least one character, false otherwise. ' ' there is at least one character, "False" otherwise. '
'Alphabetic\n' 'Alphabetic\n'
' characters are those characters defined in the Unicode ' ' characters are those characters defined in the Unicode '
'character\n' 'character\n'
@ -9921,45 +10004,46 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'str.isascii()\n' 'str.isascii()\n'
'\n' '\n'
' Return true if the string is empty or all characters in ' ' Return "True" if the string is empty or all characters '
'the string\n' 'in the\n'
' are ASCII, false otherwise. ASCII characters have code ' ' string are ASCII, "False" otherwise. ASCII characters '
'points in\n' 'have code\n'
' the range U+0000-U+007F.\n' ' points in the range U+0000-U+007F.\n'
'\n' '\n'
' New in version 3.7.\n' ' New in version 3.7.\n'
'\n' '\n'
'str.isdecimal()\n' 'str.isdecimal()\n'
'\n' '\n'
' Return true if all characters in the string are decimal ' ' Return "True" if all characters in the string are '
'characters\n' 'decimal\n'
' and there is at least one character, false otherwise. ' ' characters and there is at least one character, "False" '
'Decimal\n' 'otherwise.\n'
' characters are those that can be used to form numbers ' ' Decimal characters are those that can be used to form '
'in base 10,\n' 'numbers in\n'
' e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a ' ' base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. '
'decimal character\n' 'Formally a decimal\n'
' is a character in the Unicode General Category “Nd”.\n' ' character is a character in the Unicode General '
'Category “Nd”.\n'
'\n' '\n'
'str.isdigit()\n' 'str.isdigit()\n'
'\n' '\n'
' Return true if all characters in the string are digits ' ' Return "True" if all characters in the string are '
'and there is\n' 'digits and there\n'
' at least one character, false otherwise. Digits ' ' is at least one character, "False" otherwise. Digits '
'include decimal\n' 'include\n'
' characters and digits that need special handling, such ' ' decimal characters and digits that need special '
'as the\n' 'handling, such as\n'
' compatibility superscript digits. This covers digits ' ' the compatibility superscript digits. This covers '
'which cannot\n' 'digits which\n'
' be used to form numbers in base 10, like the Kharosthi ' ' cannot be used to form numbers in base 10, like the '
'numbers.\n' 'Kharosthi\n'
' Formally, a digit is a character that has the property ' ' numbers. Formally, a digit is a character that has the '
'value\n' 'property\n'
' Numeric_Type=Digit or Numeric_Type=Decimal.\n' ' value Numeric_Type=Digit or Numeric_Type=Decimal.\n'
'\n' '\n'
'str.isidentifier()\n' 'str.isidentifier()\n'
'\n' '\n'
' Return true if the string is a valid identifier ' ' Return "True" if the string is a valid identifier '
'according to the\n' 'according to the\n'
' language definition, section Identifiers and keywords.\n' ' language definition, section Identifiers and keywords.\n'
'\n' '\n'
@ -9978,32 +10062,33 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'str.islower()\n' 'str.islower()\n'
'\n' '\n'
' Return true if all cased characters [4] in the string ' ' Return "True" if all cased characters [4] in the string '
'are lowercase\n' 'are\n'
' and there is at least one cased character, false ' ' lowercase and there is at least one cased character, '
'"False"\n'
' otherwise.\n' ' otherwise.\n'
'\n' '\n'
'str.isnumeric()\n' 'str.isnumeric()\n'
'\n' '\n'
' Return true if all characters in the string are numeric ' ' Return "True" if all characters in the string are '
'characters,\n' 'numeric\n'
' and there is at least one character, false otherwise. ' ' characters, and there is at least one character, '
'Numeric\n' '"False" otherwise.\n'
' characters include digit characters, and all characters ' ' Numeric characters include digit characters, and all '
'that have\n' 'characters\n'
' the Unicode numeric value property, e.g. U+2155, VULGAR ' ' that have the Unicode numeric value property, e.g. '
'FRACTION\n' 'U+2155, VULGAR\n'
' ONE FIFTH. Formally, numeric characters are those with ' ' FRACTION ONE FIFTH. Formally, numeric characters are '
'the\n' 'those with\n'
' property value Numeric_Type=Digit, Numeric_Type=Decimal ' ' the property value Numeric_Type=Digit, '
'or\n' 'Numeric_Type=Decimal or\n'
' Numeric_Type=Numeric.\n' ' Numeric_Type=Numeric.\n'
'\n' '\n'
'str.isprintable()\n' 'str.isprintable()\n'
'\n' '\n'
' Return true if all characters in the string are ' ' Return "True" if all characters in the string are '
'printable or the\n' 'printable or the\n'
' string is empty, false otherwise. Nonprintable ' ' string is empty, "False" otherwise. Nonprintable '
'characters are\n' 'characters are\n'
' those characters defined in the Unicode character ' ' those characters defined in the Unicode character '
'database as\n' 'database as\n'
@ -10019,33 +10104,46 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'str.isspace()\n' 'str.isspace()\n'
'\n' '\n'
' Return true if there are only whitespace characters in ' ' Return "True" if there are only whitespace characters '
'the string\n' 'in the string\n'
' and there is at least one character, false otherwise. ' ' and there is at least one character, "False" '
'Whitespace\n' 'otherwise.\n'
' characters are those characters defined in the Unicode ' '\n'
'character\n' ' A character is *whitespace* if in the Unicode character '
' database as “Other” or “Separator” and those with ' 'database\n'
'bidirectional\n' ' (see "unicodedata"), either its general category is '
' property being one of “WS”, “B”, or “S”.\n' '"Zs"\n'
' (“Separator, space”), or its bidirectional class is one '
'of "WS",\n'
' "B", or "S".\n'
'\n' '\n'
'str.istitle()\n' 'str.istitle()\n'
'\n' '\n'
' Return true if the string is a titlecased string and ' ' Return "True" if the string is a titlecased string and '
'there is at\n' 'there is at\n'
' least one character, for example uppercase characters ' ' least one character, for example uppercase characters '
'may only\n' 'may only\n'
' follow uncased characters and lowercase characters only ' ' follow uncased characters and lowercase characters only '
'cased ones.\n' 'cased ones.\n'
' Return false otherwise.\n' ' Return "False" otherwise.\n'
'\n' '\n'
'str.isupper()\n' 'str.isupper()\n'
'\n' '\n'
' Return true if all cased characters [4] in the string ' ' Return "True" if all cased characters [4] in the string '
'are uppercase\n' 'are\n'
' and there is at least one cased character, false ' ' uppercase and there is at least one cased character, '
'"False"\n'
' otherwise.\n' ' otherwise.\n'
'\n' '\n'
" >>> 'BANANA'.isupper()\n"
' True\n'
" >>> 'banana'.isupper()\n"
' False\n'
" >>> 'baNana'.isupper()\n"
' False\n'
" >>> ' '.isupper()\n"
' False\n'
'\n'
'str.join(iterable)\n' 'str.join(iterable)\n'
'\n' '\n'
' Return a string which is the concatenation of the ' ' Return a string which is the concatenation of the '
@ -10280,7 +10378,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Representation | ' ' | Representation | '
'Description |\n' 'Description |\n'
' ' ' '
'+=========================+===============================+\n' '|=========================|===============================|\n'
' | "\\n" | Line ' ' | "\\n" | Line '
'Feed |\n' 'Feed |\n'
' ' ' '
@ -10619,7 +10717,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'
@ -10665,7 +10763,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 | '
@ -10716,13 +10814,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' Changed in version 3.6: Unrecognized escape sequences produce ' ' Changed in version 3.6: Unrecognized escape sequences produce '
'a\n' 'a\n'
' "DeprecationWarning".\n' ' "DeprecationWarning". In a future Python version they will be '
'\n'
' Changed in version 3.8: Unrecognized escape sequences produce '
'a\n' 'a\n'
' "SyntaxWarning". In some future version of Python they will ' ' "SyntaxWarning" and eventually a "SyntaxError".\n'
'be a\n'
' "SyntaxError".\n'
'\n' '\n'
'Even in a raw literal, quotes can be escaped with a backslash, ' 'Even in a raw literal, quotes can be escaped with a backslash, '
'but the\n' 'but the\n'
@ -11303,7 +11397,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Attribute | Meaning ' ' | Attribute | Meaning '
'| |\n' '| |\n'
' ' ' '
'+===========================+=================================+=============+\n' '|===========================|=================================|=============|\n'
' | "__doc__" | The functions documentation ' ' | "__doc__" | The functions documentation '
'| Writable |\n' '| Writable |\n'
' | | string, or "None" if ' ' | | string, or "None" if '
@ -12106,7 +12200,8 @@ topics = {'assert': 'The "assert" statement\n'
" >>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))\n" " >>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))\n"
" >>> d = dict([('two', 2), ('one', 1), ('three', 3)])\n" " >>> d = dict([('two', 2), ('one', 1), ('three', 3)])\n"
" >>> e = dict({'three': 3, 'one': 1, 'two': 2})\n" " >>> e = dict({'three': 3, 'one': 1, 'two': 2})\n"
' >>> a == b == c == d == e\n' " >>> f = dict({'one': 1, 'three': 3}, two=2)\n"
' >>> a == b == c == d == e == f\n'
' True\n' ' True\n'
'\n' '\n'
' Providing keyword arguments as in the first example only ' ' Providing keyword arguments as in the first example only '
@ -12119,6 +12214,11 @@ topics = {'assert': 'The "assert" statement\n'
'therefore,\n' 'therefore,\n'
' custom mapping types should support too):\n' ' custom mapping types should support too):\n'
'\n' '\n'
' list(d)\n'
'\n'
' Return a list of all the keys used in the dictionary '
'*d*.\n'
'\n'
' len(d)\n' ' len(d)\n'
'\n' '\n'
' Return the number of items in the dictionary *d*.\n' ' Return the number of items in the dictionary *d*.\n'
@ -12287,11 +12387,21 @@ topics = {'assert': 'The "assert" statement\n'
'the\n' 'the\n'
' documentation of view objects.\n' ' documentation of view objects.\n'
'\n' '\n'
' An equality comparison between one "dict.values()" '
'view and\n'
' another will always return "False". This also applies '
'when\n'
' comparing "dict.values()" to itself:\n'
'\n'
" >>> d = {'a': 1}\n"
' >>> d.values() == d.values()\n'
' False\n'
'\n'
' Dictionaries compare equal if and only if they have the ' ' Dictionaries compare equal if and only if they have the '
'same "(key,\n' 'same "(key,\n'
' value)" pairs. Order comparisons (<, <=, >=, >) ' ' value)" pairs (regardless of ordering). Order comparisons '
'raise\n' '(<,\n'
' "TypeError".\n' ' <=, >=, >) raise "TypeError".\n'
'\n' '\n'
' Dictionaries preserve insertion order. Note that ' ' Dictionaries preserve insertion order. Note that '
'updating a key\n' 'updating a key\n'
@ -12577,7 +12687,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" '
@ -12806,7 +12916,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'
'| | ' '| | '
@ -13268,7 +13378,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'
'| | ' '| | '

5772
Misc/NEWS.d/3.9.0a1.rst Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,9 +0,0 @@
Update optional extension module detection for AIX.
ossaudiodev and spwd are not applicable for AIX, and
are no longer reported as missing.
3rd-party packaging of ncurses (with ASIS support)
conflicts with officially supported AIX curses library,
so configure AIX to use libcurses.a. However, skip
trying to build _curses_panel.
patch by M Felt

View file

@ -1 +0,0 @@
Enables use of SSE2 instructions in Windows 32-bit build.

View file

@ -1,3 +0,0 @@
Many ``PyRun_XXX()`` functions like :c:func:`PyRun_String` were no longer
exported in ``libpython38.dll`` by mistake. Export them again to fix the ABI
compatibility.

View file

@ -1,2 +0,0 @@
``make install`` no longer installs ``wininst-*.exe`` files used by
distutils bdist_wininst: bdist_wininst only works on Windows.

View file

@ -1,9 +0,0 @@
Reduce the number of unit tests run for the PGO generation task. This
speeds up the task by a factor of about 15x. Running the full unit test
suite is slow. This change may result in a slightly less optimized build
since not as many code branches will be executed. If you are willing to
wait for the much slower build, the old behavior can be restored using
'./configure [..] PROFILE_TASK="-m test --pgo-extended"'. We make no
guarantees as to which PGO task set produces a faster build. Users who
care should run their own relevant benchmarks as results can depend on
the environment, workload, and compiler tool chain.

View file

@ -1,3 +0,0 @@
Mark some individual tests to skip when --pgo is used. The tests marked
increase the PGO task time significantly and likely don't help improve
optimization of the final executable.

View file

@ -1,3 +0,0 @@
Change "clean" makefile target to also clean the program guided optimization
(PGO) data. Previously you would have to use "make clean" and "make
profile-removal", or "make clobber".

View file

@ -1,2 +0,0 @@
The :file:`.gitignore` file no longer applies to any files that are in fact
tracked in the Git repository. Patch by Greg Price.

View file

@ -1,6 +0,0 @@
The :file:`Tools/unicode/makeunicodedata.py` script, which is used for
converting information from the Unicode Character Database into generated
code and data used by the methods of :class:`str` and by the
:mod:`unicodedata` module, now handles each character's data as a
``dataclass`` with named attributes, rather than a length-18 list of
different fields.

View file

@ -1,5 +0,0 @@
The :file:`.gitignore` file systematically keeps "rooted", with a
non-trailing slash, all the rules that are meant to apply to files in a
specific place in the repo. Previously, when the intended file to ignore
happened to be at the root of the repo, we'd most often accidentally also
ignore files and directories with the same name anywhere in the tree.

View file

@ -1,2 +0,0 @@
Locate ``llvm-profdata`` and ``llvm-ar`` binaries using ``AC_PATH_TOOL``
rather than ``AC_PATH_TARGET_TOOL``.

View file

@ -1,2 +0,0 @@
In Solaris family, we must be sure to use ``-D_REENTRANT``.
Patch by Jesús Cea Avión.

View file

@ -1,2 +0,0 @@
Fix stdatomic.h header check for ICC compiler: the ICC implementation lacks
atomic_uintptr_t type which is needed by Python.

View file

@ -1,2 +0,0 @@
Misc/python-config.in now uses `getvar()` for all still existing `sysconfig.get_config_var()` calls.
Patch by Joannah Nanjekye.

View file

@ -1 +0,0 @@
Fix _hashlib build when Blake2 is disabled, but OpenSSL supports it.

View file

@ -1,2 +0,0 @@
On Windows, build scripts will now recognize and use python.exe from an
active virtual env.

View file

@ -1,2 +0,0 @@
Use singular/plural noun in error message when instantiating an abstract
class with non-overriden abstract method(s).

View file

@ -1,2 +0,0 @@
Convert posixmodule.c statically allocated types ``DirEntryType`` and
``ScandirIteratorType`` to heap-allocated types.

View file

@ -1 +0,0 @@
Fix the cast on error in :c:func:`PyLong_AsUnsignedLongLongMask()`.

View file

@ -1,6 +0,0 @@
Add a new public :c:func:`PyObject_CallNoArgs` function to the C API: call a
callable Python object without any arguments. It is the most efficient way to
call a callback without any argument. On x86-64, for example,
``PyObject_CallFunctionObjArgs(func, NULL)`` allocates 960 bytes on the stack
per call, whereas ``PyObject_CallNoArgs(func)`` only allocates 624 bytes per
call.

View file

@ -1 +0,0 @@
Fix dtrace issue introduce by bpo-36842

View file

@ -1,3 +0,0 @@
The new function :c:func:`PyCode_NewWithPosOnlyArgs` allows to create
code objects like :c:func:`PyCode_New`, but with an extra *posonlyargcount*
parameter for indicating the number of positonal-only arguments.

View file

@ -1 +0,0 @@
The :const:`METH_FASTCALL` calling convention has been documented.

View file

@ -1,2 +0,0 @@
Add fast functions for calling methods: :c:func:`_PyObject_VectorcallMethod`,
:c:func:`_PyObject_CallMethodNoArgs` and :c:func:`_PyObject_CallMethodOneArg`.

View file

@ -1 +0,0 @@
Add :func:`PyConfig_SetWideStringList` function.

View file

@ -1,2 +0,0 @@
Add new function ``_PyObject_CallOneArg`` for calling an object with one
positional argument.

View file

@ -1 +0,0 @@
Exclude Python-ast.h, ast.h and asdl.h from the limited API.

View file

@ -1,3 +0,0 @@
The vectorcall protocol is now enabled for ``type`` objects: set
``tp_vectorcall`` to a vectorcall function to be used instead of ``tp_new``
and ``tp_init`` when calling the class itself.

View file

@ -1,2 +0,0 @@
The vectorcall protocol now requires that the caller passes only strings as
keyword names.

View file

@ -1 +0,0 @@
``PyCFunction_Call`` is now a deprecated alias of :c:func:`PyObject_Call`.

View file

@ -1,3 +0,0 @@
The functions ``PyEval_CallObject``, ``PyEval_CallFunction``,
``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated.
Use :c:func:`PyObject_Call` and its variants instead.

View file

@ -1,2 +0,0 @@
Add :c:func:`_PyObject_FunctionStr` to get a user-friendly string representation
of a function-like object. Patch by Jeroen Demeyer.

View file

@ -1,2 +0,0 @@
Fix subtype_dealloc to suppress the type decref when the base type is a C
heap type

View file

@ -1 +0,0 @@
Fix a crash in ``PySys_SetArgvEx(0, NULL, 0)``.

View file

@ -1,2 +0,0 @@
Options added by ``PySys_AddXOption()`` are now handled the same way than
``PyConfig.xoptions`` and command line ``-X`` options.

View file

@ -1,4 +0,0 @@
The C function ``PyGen_NeedsFinalizing`` has been removed. It was not
documented, tested or used anywhere within CPython after the implementation
of :pep:`442`. Patch by Joannah Nanjekye.
(Patch by Joannah Nanjekye)

View file

@ -1,2 +0,0 @@
Make dict and weakref offsets opaque for C heap types by passing the offsets
through PyMemberDef

View file

@ -1 +0,0 @@
The :c:func:`Py_UNREACHABLE` macro now calls :c:func:`Py_FatalError`.

View file

@ -1,3 +0,0 @@
Python ignored arguments passed to :c:func:`Py_SetPath`,
:c:func:`Py_SetPythonHome` and :c:func:`Py_SetProgramName`: fix Python
initialization to use specified arguments.

View file

@ -1,3 +0,0 @@
:c:func:`Py_SetPath` now sets :data:`sys.executable` to the program full
path (:c:func:`Py_GetProgramFullPath`) rather than to the program name
(:c:func:`Py_GetProgramName`).

View file

@ -1 +0,0 @@
Update audioop extension module to use the stable ABI (PEP-384). Patch by Tyler Kieft.

View file

@ -1 +0,0 @@
Revert the removal of PyThreadState_DeleteCurrent() with documentation.

View file

@ -1,3 +0,0 @@
The ``_PyObject_CheckConsistency()`` function is now also available in release
mode. For example, it can be used to debug a crash in the ``visit_decref()``
function of the GC.

View file

@ -1,3 +0,0 @@
Fix a crash in :class:`weakref.proxy` objects due to incorrect lifetime
management when calling some associated methods that may delete the last
reference to object being referenced by the proxy. Patch by Pablo Galindo.

View file

@ -1,3 +0,0 @@
Fixed possible leak in :c:func:`PyArg_Parse` and similar functions for
format units ``"es#"`` and ``"et#"`` when the macro
:c:macro:`PY_SSIZE_T_CLEAN` is not defined.

View file

@ -1,2 +0,0 @@
The global variable :c:data:`PyStructSequence_UnnamedField` is now a
constant and refers to a constant string.

View file

@ -1,5 +0,0 @@
Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall`
as regular functions for the limited API. Previously, there were defined as
macros, but these macros didn't work with the limited API which cannot access
``PyThreadState.recursion_depth`` field. Remove ``_Py_CheckRecursionLimit``
from the stable ABI.

View file

@ -1 +0,0 @@
Reëxport some function compatibility wrappers for macros in ``pythonrun.h``.

View file

@ -1,2 +0,0 @@
Prohibit parallel running of aclose() / asend() / athrow(). Fix ag_running
to reflect the actual running status of the AG.

View file

@ -1,2 +0,0 @@
Improve speed of dictview intersection by directly using set intersection
logic. Patch by David Su.

View file

@ -1,3 +0,0 @@
The :class:`classmethod` decorator can now wrap other descriptors
such as property objects. Adapted from a patch written by Graham
Dumpleton.

View file

@ -1,3 +0,0 @@
Updated encodings:
- Removed the "tis260" encoding, which was an alias for the nonexistent "tactis" codec.
- Added "mac_centeuro" as an alias for the mac_latin2 encoding.

View file

@ -1,2 +0,0 @@
``pdb.Pdb`` supports ~/.pdbrc in Windows 7. Patch by Tim Hopper and Dan
Lidral-Porter.

View file

@ -1 +0,0 @@
Add ``--upgrade-deps`` to venv module. Patch by Cooper Ry Lees

View file

@ -1 +0,0 @@
:func:`sum` has been optimized for boolean values.

View file

@ -1,2 +0,0 @@
Add :func:`threading.get_native_id` support for AIX.
Patch by M. Felt

View file

@ -1 +0,0 @@
:func:`threading.get_native_id` now also supports NetBSD.

View file

@ -1,2 +0,0 @@
The slot ``tp_vectorcall_offset`` is inherited unconditionally to support
``super().__call__()`` when the base class uses vectorcall.

View file

@ -1 +0,0 @@
Slot functions optimize any callable with ``Py_TPFLAGS_METHOD_DESCRIPTOR`` instead of only instances of ``function``.

View file

@ -1,3 +0,0 @@
Implement :c:func:`PyBuffer_SizeFromFormat()` function (previously
documented but not implemented): call :func:`struct.calcsize`.
Patch by Joannah Nanjekye.

View file

@ -1 +0,0 @@
Remove erroneous optimization for empty set differences.

View file

@ -1,2 +0,0 @@
Handle correctly negative line offsets in the peephole optimizer. Patch by
Pablo Galindo.

View file

@ -1,2 +0,0 @@
Implemented separate vectorcall functions for every calling convention of
builtin functions and methods. This improves performance for calls.

View file

@ -1,2 +0,0 @@
The dispatching of type slots to special methods (for example calling
``__mul__`` when doing ``x * y``) has been made faster.

View file

@ -1 +0,0 @@
Python's small object allocator (``obmalloc.c``) now allows (no more than) one empty arena to remain available for immediate reuse, without returning it to the OS. This prevents thrashing in simple loops where an arena could be created and destroyed anew on each iteration.

View file

@ -1,3 +0,0 @@
Python now gets the absolute path of the script filename specified on the
command line (ex: "python3 script.py"): the __file__ attribute of the __main__
module and sys.path[0] become an absolute path, rather than a relative path.

View file

@ -1,2 +0,0 @@
Fix a bug in the peephole optimizer that was not treating correctly constant
conditions with binary operators. Patch by Pablo Galindo.

View file

@ -1 +0,0 @@
Remove an unnecssary Py_XINCREF in classobject.c.

View file

@ -1 +0,0 @@
Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`.

View file

@ -1,2 +0,0 @@
Reverse evaluation order of key: value in dict comprehensions as proposed in PEP 572.
I.e. in ``{k: v for ...}``, ``k`` will be evaluated before ``v``.

View file

@ -1,3 +0,0 @@
:func:`open`, :func:`io.open`, :func:`codecs.open` and
:class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline") in
the file mode. This flag was deprecated since Python 3.3.

View file

@ -1,2 +0,0 @@
Improved support of the surrogatepass error handler in the UTF-8 and UTF-16
incremental decoders.

View file

@ -1,2 +0,0 @@
Optimized decoding short ASCII string with UTF-8 and ascii codecs.
``b"foo".decode()`` is about 15% faster. Patch by Inada Naoki.

View file

@ -1,7 +0,0 @@
In development mode and in debug build, *encoding* and *errors* arguments are
now checked on string encoding and decoding operations. Examples: :func:`open`,
:meth:`str.encode` and :meth:`bytes.decode`.
By default, for best performances, the *errors* argument is only checked at the
first encoding/decoding error, and the *encoding* argument is sometimes ignored
for empty strings.

View file

@ -1,4 +0,0 @@
Remove ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions.
They were deprecated since Python 3.2. Use :func:`sys.getswitchinterval` and
:func:`sys.setswitchinterval` instead. Remove also ``check_interval`` field of
the ``PyInterpreterState`` structure.

View file

@ -1,3 +0,0 @@
The undocumented ``sys.callstats()`` function has been removed. Since Python
3.7, it was deprecated and always returned ``None``. It required a special
build option ``CALL_PROFILE`` which was already removed in Python 3.7.

View file

@ -1,2 +0,0 @@
:meth:`bytearray.extend` now correctly handles errors that arise during iteration.
Patch by Brandt Bucher.

View file

@ -1 +0,0 @@
Fix ``SyntaxError`` indicator printing too many spaces for multi-line strings - by Anthony Sottile.

View file

@ -1,3 +0,0 @@
Fix :func:`sys.excepthook` and :c:func:`PyErr_Display` if a filename is a
bytes string. For example, for a SyntaxError exception where the filename
attribute is a bytes string.

View file

@ -1,3 +0,0 @@
Compute allocated pymalloc blocks inside _Py_GetAllocatedBlocks(). This
slows down _Py_GetAllocatedBlocks() but gives a small speedup to
_PyObject_Malloc() and _PyObject_Free().

View file

@ -1 +0,0 @@
Optimized pymalloc for non PGO build.

View file

@ -1,2 +0,0 @@
Swap the positions of the *posonlyargs* and *args* parameters in the
constructor of :class:`ast.parameters` nodes.

View file

@ -1,3 +0,0 @@
When adding a wrapper descriptor from one class to a different class
(for example, setting ``__add__ = str.__add__`` on an ``int`` subclass),
an exception is correctly raised when the operator is called.

View file

@ -1 +0,0 @@
Update differing exception between :meth:`builtins.__import__` and :meth:`importlib.__import__`.

View file

@ -1,3 +0,0 @@
Fixed minor inconsistency in :meth:`list.__contains__`,
:meth:`tuple.__contains__` and a few other places. The collection's item is
now always at the left and the needle is on the right of ``==``.

View file

@ -1,3 +0,0 @@
Removed object cache (``free_list``) for bound method objects. Temporary
bound method objects are less used than before thanks to the ``LOAD_METHOD``
opcode and the ``_PyObject_VectorcallMethod`` C API.

View file

@ -1,3 +0,0 @@
The :keyword:`assert` statement now works properly if the
:exc:`AssertionError` exception is being shadowed.
Patch by Zackery Spytz.

View file

@ -1,2 +0,0 @@
Decoding bytes objects larger than 2GiB is faster and no longer fails when a
multibyte characters spans a chunk boundary.

View file

@ -1 +0,0 @@
Fix potential use of uninitialized memory in :func:`os.wait3`.

View file

@ -1,7 +0,0 @@
:pep:`572`: As described in the PEP, assignment expressions now raise
:exc:`SyntaxError` when their interaction with comprehension scoping results
in an ambiguous target scope.
The ``TargetScopeError`` subclass originally proposed by the PEP has been
removed in favour of just raising regular syntax errors for the disallowed
cases.

View file

@ -1,3 +0,0 @@
Reverted :issue:`32912`: emitting :exc:`SyntaxWarning` instead of
:exc:`DeprecationWarning` for invalid escape sequences in string and bytes
literals.

View file

@ -1,2 +0,0 @@
Ensure explicit relative imports from interactive sessions and scripts (having no parent package) always raise ImportError, rather than treating the current module as the package.
Patch by Ben Lewis.

View file

@ -1,3 +0,0 @@
Slightly improve performance of :c:func:`PyLong_FromUnsignedLong`,
:c:func:`PyLong_FromUnsignedLongLong` and :c:func:`PyLong_FromSize_t`.
Patch by Sergey Fedoseev.

View file

@ -1,2 +0,0 @@
Fix handling of negative indices in :c:member:`~PySequenceMethods.sq_item`
of :class:`bytearray`. Patch by Sergey Fedoseev.

View file

@ -1,2 +0,0 @@
Improve import error message for partially initialized module on circular
``from`` imports - by Anthony Sottile.

View file

@ -1,3 +0,0 @@
Fixed compilation of :keyword:`break` and :keyword:`continue` in the
:keyword:`finally` block when the corresponding :keyword:`try` block
contains :keyword:`return` with a non-constant value.

View file

@ -1 +0,0 @@
Fix :func:`codecs.lookup` to normalize the encoding name the same way than :func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` also converts the name to lower case.

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