Merge tag 'v3.9.0a1'
This commit is contained in:
commit
1c5a71a7dd
|
@ -20,10 +20,10 @@
|
|||
#define PY_MINOR_VERSION 9
|
||||
#define PY_MICRO_VERSION 0
|
||||
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
|
||||
#define PY_RELEASE_SERIAL 0
|
||||
#define PY_RELEASE_SERIAL 1
|
||||
|
||||
/* Version as a string */
|
||||
#define PY_VERSION "3.9.0a0"
|
||||
#define PY_VERSION "3.9.0a1"
|
||||
/*--end constants--*/
|
||||
|
||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Autogenerated by Sphinx on Tue Jun 4 19:40:37 2019
|
||||
# Autogenerated by Sphinx on Tue Nov 19 11:42:25 2019
|
||||
topics = {'assert': 'The "assert" statement\n'
|
||||
'**********************\n'
|
||||
'\n'
|
||||
|
@ -744,10 +744,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'returned.\n'
|
||||
'\n'
|
||||
'The "__dir__" function should accept no arguments, and '
|
||||
'return a list\n'
|
||||
'of strings that represents the names accessible on '
|
||||
'module. If present,\n'
|
||||
'this function overrides the standard "dir()" search on a '
|
||||
'return a\n'
|
||||
'sequence of strings that represents the names accessible '
|
||||
'on module. If\n'
|
||||
'present, this function overrides the standard "dir()" '
|
||||
'search on a\n'
|
||||
'module.\n'
|
||||
'\n'
|
||||
'For a more fine grained customization of the module '
|
||||
|
@ -808,21 +809,34 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'whose name is\n'
|
||||
'the key of the property in the owner class’ "__dict__".\n'
|
||||
'\n'
|
||||
'object.__get__(self, instance, owner)\n'
|
||||
'object.__get__(self, instance, owner=None)\n'
|
||||
'\n'
|
||||
' Called to get the attribute of the owner class (class '
|
||||
'attribute\n'
|
||||
' access) or of an instance of that class (instance '
|
||||
'attribute\n'
|
||||
' access). *owner* is always the owner class, while '
|
||||
'*instance* is the\n'
|
||||
' instance that the attribute was accessed through, or '
|
||||
'"None" when\n'
|
||||
' the attribute is accessed through the *owner*. This '
|
||||
'method should\n'
|
||||
' return the (computed) attribute value or raise an '
|
||||
'"AttributeError"\n'
|
||||
' exception.\n'
|
||||
' access). The optional *owner* argument is the owner '
|
||||
'class, while\n'
|
||||
' *instance* is the instance that the attribute was '
|
||||
'accessed through,\n'
|
||||
' or "None" when the attribute is accessed through the '
|
||||
'*owner*.\n'
|
||||
'\n'
|
||||
' This method should return the computed attribute '
|
||||
'value or raise an\n'
|
||||
' "AttributeError" exception.\n'
|
||||
'\n'
|
||||
' **PEP 252** specifies that "__get__()" is callable '
|
||||
'with one or two\n'
|
||||
' arguments. Python’s own built-in descriptors support '
|
||||
'this\n'
|
||||
' specification; however, it is likely that some '
|
||||
'third-party tools\n'
|
||||
' have descriptors that require both arguments. '
|
||||
'Python’s own\n'
|
||||
' "__getattribute__()" implementation always passes in '
|
||||
'both arguments\n'
|
||||
' whether they are required or not.\n'
|
||||
'\n'
|
||||
'object.__set__(self, instance, value)\n'
|
||||
'\n'
|
||||
|
@ -830,6 +844,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'of the owner\n'
|
||||
' class to a new value, *value*.\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'
|
||||
'\n'
|
||||
' Called to delete the attribute on an instance '
|
||||
|
@ -938,12 +958,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'define both\n'
|
||||
'"__get__()" and "__set__()", while non-data descriptors '
|
||||
'have just the\n'
|
||||
'"__get__()" method. Data descriptors with "__set__()" '
|
||||
'and "__get__()"\n'
|
||||
'defined always override a redefinition in an instance '
|
||||
'dictionary. In\n'
|
||||
'contrast, non-data descriptors can be overridden by '
|
||||
'instances.\n'
|
||||
'"__get__()" method. Data descriptors with "__get__()" '
|
||||
'and "__set__()"\n'
|
||||
'(and/or "__delete__()") defined always override a '
|
||||
'redefinition in an\n'
|
||||
'instance dictionary. In contrast, non-data descriptors '
|
||||
'can be\n'
|
||||
'overridden by instances.\n'
|
||||
'\n'
|
||||
'Python methods (including "staticmethod()" and '
|
||||
'"classmethod()") are\n'
|
||||
|
@ -1070,7 +1091,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'attributes created by\n'
|
||||
' slots (the other bases must have empty slot layouts) - '
|
||||
'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 iterator’s values. However, '
|
||||
'the *__slots__*\n'
|
||||
' attribute will be an empty iterator.\n',
|
||||
'attribute-references': 'Attribute references\n'
|
||||
'********************\n'
|
||||
'\n'
|
||||
|
@ -1829,6 +1856,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'all false.\n'
|
||||
' This behavior is compliant with IEEE 754.\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 '
|
||||
'be\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'
|
||||
'\n'
|
||||
' Sequences compare lexicographically using comparison of\n'
|
||||
' corresponding elements, whereby reflexivity of the elements '
|
||||
'is\n'
|
||||
' enforced.\n'
|
||||
'\n'
|
||||
' In enforcing reflexivity of elements, the comparison of '
|
||||
'collections\n'
|
||||
' assumes that for a collection element "x", "x == x" is '
|
||||
'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'
|
||||
' corresponding elements. The built-in containers typically '
|
||||
'assume\n'
|
||||
' identical objects are equal to themselves. That lets them '
|
||||
'bypass\n'
|
||||
' equality tests for identical objects to improve performance '
|
||||
'and to\n'
|
||||
' maintain their internal invariants.\n'
|
||||
'\n'
|
||||
' Lexicographical comparison between built-in collections '
|
||||
'works as\n'
|
||||
|
@ -3126,13 +3134,15 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'returning\n'
|
||||
' it.\n'
|
||||
'\n'
|
||||
' If "__new__()" returns an instance of *cls*, then the '
|
||||
'new\n'
|
||||
' instance’s "__init__()" method will be invoked like\n'
|
||||
' "__init__(self[, ...])", where *self* is the new '
|
||||
'instance and the\n'
|
||||
' remaining arguments are the same as were passed to '
|
||||
'"__new__()".\n'
|
||||
' If "__new__()" is invoked during object construction and '
|
||||
'it returns\n'
|
||||
' an instance or subclass of *cls*, then the new '
|
||||
'instance’s\n'
|
||||
' "__init__()" method will be invoked like '
|
||||
'"__init__(self[, ...])",\n'
|
||||
' where *self* is the new instance and the remaining '
|
||||
'arguments are\n'
|
||||
' the same as were passed to the object constructor.\n'
|
||||
'\n'
|
||||
' If "__new__()" does not return an instance of *cls*, '
|
||||
'then the new\n'
|
||||
|
@ -3500,10 +3510,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' hashable by an "isinstance(obj, '
|
||||
'collections.abc.Hashable)" call.\n'
|
||||
'\n'
|
||||
' Note: By default, the "__hash__()" values of str, bytes '
|
||||
'and\n'
|
||||
' datetime objects are “salted” with an unpredictable '
|
||||
'random value.\n'
|
||||
' Note: By default, the "__hash__()" values of str and '
|
||||
'bytes\n'
|
||||
' objects are “salted” with an unpredictable random '
|
||||
'value.\n'
|
||||
' Although they remain constant within an individual '
|
||||
'Python\n'
|
||||
' process, they are not predictable between repeated '
|
||||
|
@ -3758,6 +3768,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
" import pdb; pdb.Pdb(skip=['django.*']).set_trace()\n"
|
||||
'\n'
|
||||
' Raises an auditing event "pdb.Pdb" with no arguments.\n'
|
||||
'\n'
|
||||
' New in version 3.1: The *skip* argument.\n'
|
||||
'\n'
|
||||
' 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'
|
||||
'should be *hashable*, which excludes all mutable objects.) Clashes\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'
|
||||
'*********************************\n'
|
||||
'\n'
|
||||
|
@ -4430,9 +4449,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'(a\n'
|
||||
'command specified on the interpreter command line with the '
|
||||
'"-c"\n'
|
||||
'option) is a code block. The string argument passed to the '
|
||||
'built-in\n'
|
||||
'functions "eval()" and "exec()" is a code block.\n'
|
||||
'option) is a code block. A module run as a top level script (as '
|
||||
'module\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'
|
||||
'A code block is executed in an *execution frame*. A frame '
|
||||
'contains\n'
|
||||
|
@ -5090,7 +5113,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Meaning '
|
||||
'|\n'
|
||||
' '
|
||||
'+===========+============================================================+\n'
|
||||
'|===========|============================================================|\n'
|
||||
' | "\'<\'" | Forces the field to be left-aligned '
|
||||
'within the available |\n'
|
||||
' | | space (this is the default for most '
|
||||
|
@ -5139,7 +5162,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Meaning '
|
||||
'|\n'
|
||||
' '
|
||||
'+===========+============================================================+\n'
|
||||
'|===========|============================================================|\n'
|
||||
' | "\'+\'" | indicates that a sign should be used for '
|
||||
'both positive as |\n'
|
||||
' | | well as negative '
|
||||
|
@ -5243,7 +5266,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Meaning '
|
||||
'|\n'
|
||||
' '
|
||||
'+===========+============================================================+\n'
|
||||
'|===========|============================================================|\n'
|
||||
' | "\'s\'" | String format. This is the default type '
|
||||
'for strings and |\n'
|
||||
' | | may be '
|
||||
|
@ -5263,7 +5286,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Meaning '
|
||||
'|\n'
|
||||
' '
|
||||
'+===========+============================================================+\n'
|
||||
'|===========|============================================================|\n'
|
||||
' | "\'b\'" | Binary format. Outputs the number in '
|
||||
'base 2. |\n'
|
||||
' '
|
||||
|
@ -5325,7 +5348,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Meaning '
|
||||
'|\n'
|
||||
' '
|
||||
'+===========+============================================================+\n'
|
||||
'|===========|============================================================|\n'
|
||||
' | "\'e\'" | Exponent notation. Prints the number in '
|
||||
'scientific |\n'
|
||||
' | | notation using the letter ‘e’ to indicate '
|
||||
|
@ -5364,30 +5387,34 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'the result |\n'
|
||||
' | | formatted with presentation type "\'e\'" '
|
||||
'and precision "p-1" |\n'
|
||||
' | | would have exponent "exp". Then if "-4 <= '
|
||||
'exp < p", the |\n'
|
||||
' | | number is formatted with presentation type '
|
||||
'"\'f\'" and |\n'
|
||||
' | | precision "p-1-exp". Otherwise, the '
|
||||
'number is formatted |\n'
|
||||
' | | with presentation type "\'e\'" and '
|
||||
'precision "p-1". In both |\n'
|
||||
' | | cases insignificant trailing zeros are '
|
||||
'removed from the |\n'
|
||||
' | | would have exponent "exp". Then, if "m <= '
|
||||
'exp < p", where |\n'
|
||||
' | | "m" is -4 for floats and -6 for '
|
||||
'"Decimals", the number is |\n'
|
||||
' | | formatted with presentation type "\'f\'" '
|
||||
'and precision |\n'
|
||||
' | | "p-1-exp". Otherwise, the number is '
|
||||
'formatted with |\n'
|
||||
' | | presentation type "\'e\'" and precision '
|
||||
'"p-1". In both cases |\n'
|
||||
' | | insignificant trailing zeros are removed '
|
||||
'from the |\n'
|
||||
' | | significand, and the decimal point is also '
|
||||
'removed if |\n'
|
||||
' | | there are no remaining digits following '
|
||||
'it. Positive and |\n'
|
||||
' | | negative infinity, positive and negative '
|
||||
'zero, and nans, |\n'
|
||||
' | | are formatted as "inf", "-inf", "0", "-0" '
|
||||
'and "nan" |\n'
|
||||
' | | respectively, regardless of the '
|
||||
'precision. A precision of |\n'
|
||||
' | | "0" is treated as equivalent to a '
|
||||
'precision of "1". The |\n'
|
||||
' | | default precision is '
|
||||
'"6". |\n'
|
||||
'it, unless the |\n'
|
||||
' | | "\'#\'" option is used. Positive and '
|
||||
'negative infinity, |\n'
|
||||
' | | positive and negative zero, and nans, are '
|
||||
'formatted as |\n'
|
||||
' | | "inf", "-inf", "0", "-0" and "nan" '
|
||||
'respectively, |\n'
|
||||
' | | regardless of the precision. A precision '
|
||||
'of "0" is |\n'
|
||||
' | | treated as equivalent to a precision of '
|
||||
'"1". The default |\n'
|
||||
' | | precision is '
|
||||
'"6". |\n'
|
||||
' '
|
||||
'+-----------+------------------------------------------------------------+\n'
|
||||
' | "\'G\'" | General format. Same as "\'g\'" except '
|
||||
|
@ -6212,6 +6239,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'that\n'
|
||||
'determine dynamically the modules to be loaded.\n'
|
||||
'\n'
|
||||
'Raises an auditing event "import" with arguments "module", '
|
||||
'"filename",\n'
|
||||
'"sys.path", "sys.meta_path", "sys.path_hooks".\n'
|
||||
'\n'
|
||||
'\n'
|
||||
'Future statements\n'
|
||||
'=================\n'
|
||||
|
@ -7036,7 +7067,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| Operator | '
|
||||
'Description |\n'
|
||||
'+=================================================+=======================================+\n'
|
||||
'|=================================================|=======================================|\n'
|
||||
'| ":=" | '
|
||||
'Assignment expression |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "lambda" | '
|
||||
'Lambda expression |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
|
@ -7093,10 +7127,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| "x(arguments...)", "x.attribute" | '
|
||||
'attribute reference |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "(expressions...)", "[expressions...]", "{key: | '
|
||||
'Binding or tuple display, list |\n'
|
||||
'| value...}", "{expressions...}" | '
|
||||
'display, dictionary display, set |\n'
|
||||
'| "(expressions...)", "[expressions...]", "{key: | '
|
||||
'Binding or parenthesized expression, |\n'
|
||||
'| value...}", "{expressions...}" | list '
|
||||
'display, dictionary display, set |\n'
|
||||
'| | '
|
||||
'display |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
|
@ -7432,9 +7466,9 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'to allow\n'
|
||||
'efficient iteration through the container; for mappings, '
|
||||
'"__iter__()"\n'
|
||||
'should be the same as "keys()"; for sequences, it should '
|
||||
'iterate\n'
|
||||
'through the values.\n'
|
||||
'should iterate through the object’s keys; for sequences, '
|
||||
'it should\n'
|
||||
'iterate through the values.\n'
|
||||
'\n'
|
||||
'object.__len__(self)\n'
|
||||
'\n'
|
||||
|
@ -7464,7 +7498,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' estimated length for the object (which may be greater '
|
||||
'or less than\n'
|
||||
' 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 didn’t exist at '
|
||||
'all. This\n'
|
||||
' method is purely an optimization and is never required '
|
||||
'for\n'
|
||||
' correctness.\n'
|
||||
|
@ -7582,12 +7620,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'The membership test operators ("in" and "not in") are '
|
||||
'normally\n'
|
||||
'implemented as an iteration through a sequence. However, '
|
||||
'implemented as an iteration through a container. However, '
|
||||
'container\n'
|
||||
'objects can supply the following special method with a '
|
||||
'more efficient\n'
|
||||
'implementation, which also does not require the object be '
|
||||
'a sequence.\n'
|
||||
'iterable.\n'
|
||||
'\n'
|
||||
'object.__contains__(self, item)\n'
|
||||
'\n'
|
||||
|
@ -7832,13 +7870,15 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'returning\n'
|
||||
' it.\n'
|
||||
'\n'
|
||||
' If "__new__()" returns an instance of *cls*, then the '
|
||||
'new\n'
|
||||
' instance’s "__init__()" method will be invoked like\n'
|
||||
' "__init__(self[, ...])", where *self* is the new instance '
|
||||
'and the\n'
|
||||
' remaining arguments are the same as were passed to '
|
||||
'"__new__()".\n'
|
||||
' If "__new__()" is invoked during object construction and '
|
||||
'it returns\n'
|
||||
' an instance or subclass of *cls*, then the new '
|
||||
'instance’s\n'
|
||||
' "__init__()" method will be invoked like "__init__(self[, '
|
||||
'...])",\n'
|
||||
' where *self* is the new instance and the remaining '
|
||||
'arguments are\n'
|
||||
' the same as were passed to the object constructor.\n'
|
||||
'\n'
|
||||
' If "__new__()" does not return an instance of *cls*, then '
|
||||
'the new\n'
|
||||
|
@ -8203,10 +8243,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' hashable by an "isinstance(obj, '
|
||||
'collections.abc.Hashable)" call.\n'
|
||||
'\n'
|
||||
' Note: By default, the "__hash__()" values of str, bytes '
|
||||
'and\n'
|
||||
' datetime objects are “salted” with an unpredictable '
|
||||
'random value.\n'
|
||||
' Note: By default, the "__hash__()" values of str and '
|
||||
'bytes\n'
|
||||
' objects are “salted” with an unpredictable random '
|
||||
'value.\n'
|
||||
' Although they remain constant within an individual '
|
||||
'Python\n'
|
||||
' process, they are not predictable between repeated '
|
||||
|
@ -8367,10 +8407,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'returned.\n'
|
||||
'\n'
|
||||
'The "__dir__" function should accept no arguments, and '
|
||||
'return a list\n'
|
||||
'of strings that represents the names accessible on module. '
|
||||
'If present,\n'
|
||||
'this function overrides the standard "dir()" search on a '
|
||||
'return a\n'
|
||||
'sequence of strings that represents the names accessible on '
|
||||
'module. If\n'
|
||||
'present, this function overrides the standard "dir()" search '
|
||||
'on a\n'
|
||||
'module.\n'
|
||||
'\n'
|
||||
'For a more fine grained customization of the module behavior '
|
||||
|
@ -8431,21 +8472,34 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'whose name is\n'
|
||||
'the key of the property in the owner class’ "__dict__".\n'
|
||||
'\n'
|
||||
'object.__get__(self, instance, owner)\n'
|
||||
'object.__get__(self, instance, owner=None)\n'
|
||||
'\n'
|
||||
' Called to get the attribute of the owner class (class '
|
||||
'attribute\n'
|
||||
' access) or of an instance of that class (instance '
|
||||
'attribute\n'
|
||||
' access). *owner* is always the owner class, while '
|
||||
'*instance* is the\n'
|
||||
' instance that the attribute was accessed through, or '
|
||||
'"None" when\n'
|
||||
' the attribute is accessed through the *owner*. This '
|
||||
'method should\n'
|
||||
' return the (computed) attribute value or raise an '
|
||||
'"AttributeError"\n'
|
||||
' exception.\n'
|
||||
' access). The optional *owner* argument is the owner '
|
||||
'class, while\n'
|
||||
' *instance* is the instance that the attribute was '
|
||||
'accessed through,\n'
|
||||
' or "None" when the attribute is accessed through the '
|
||||
'*owner*.\n'
|
||||
'\n'
|
||||
' This method should return the computed attribute value or '
|
||||
'raise an\n'
|
||||
' "AttributeError" exception.\n'
|
||||
'\n'
|
||||
' **PEP 252** specifies that "__get__()" is callable with '
|
||||
'one or two\n'
|
||||
' arguments. Python’s own built-in descriptors support '
|
||||
'this\n'
|
||||
' specification; however, it is likely that some '
|
||||
'third-party tools\n'
|
||||
' have descriptors that require both arguments. Python’s '
|
||||
'own\n'
|
||||
' "__getattribute__()" implementation always passes in both '
|
||||
'arguments\n'
|
||||
' whether they are required or not.\n'
|
||||
'\n'
|
||||
'object.__set__(self, instance, value)\n'
|
||||
'\n'
|
||||
|
@ -8453,6 +8507,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'the owner\n'
|
||||
' class to a new value, *value*.\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'
|
||||
'\n'
|
||||
' Called to delete the attribute on an instance *instance* '
|
||||
|
@ -8559,12 +8619,13 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'both\n'
|
||||
'"__get__()" and "__set__()", while non-data descriptors have '
|
||||
'just the\n'
|
||||
'"__get__()" method. Data descriptors with "__set__()" and '
|
||||
'"__get__()"\n'
|
||||
'defined always override a redefinition in an instance '
|
||||
'dictionary. In\n'
|
||||
'contrast, non-data descriptors can be overridden by '
|
||||
'instances.\n'
|
||||
'"__get__()" method. Data descriptors with "__get__()" and '
|
||||
'"__set__()"\n'
|
||||
'(and/or "__delete__()") defined always override a '
|
||||
'redefinition in an\n'
|
||||
'instance dictionary. In contrast, non-data descriptors can '
|
||||
'be\n'
|
||||
'overridden by instances.\n'
|
||||
'\n'
|
||||
'Python methods (including "staticmethod()" and '
|
||||
'"classmethod()") are\n'
|
||||
|
@ -8691,6 +8752,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'violations\n'
|
||||
' raise "TypeError".\n'
|
||||
'\n'
|
||||
'* If an iterator is used for *__slots__* then a descriptor '
|
||||
'is\n'
|
||||
' created for each of the iterator’s values. However, the '
|
||||
'*__slots__*\n'
|
||||
' attribute will be an empty iterator.\n'
|
||||
'\n'
|
||||
'\n'
|
||||
'Customizing class creation\n'
|
||||
'==========================\n'
|
||||
|
@ -9136,9 +9203,9 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'allow\n'
|
||||
'efficient iteration through the container; for mappings, '
|
||||
'"__iter__()"\n'
|
||||
'should be the same as "keys()"; for sequences, it should '
|
||||
'iterate\n'
|
||||
'through the values.\n'
|
||||
'should iterate through the object’s keys; for sequences, it '
|
||||
'should\n'
|
||||
'iterate through the values.\n'
|
||||
'\n'
|
||||
'object.__len__(self)\n'
|
||||
'\n'
|
||||
|
@ -9167,7 +9234,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' estimated length for the object (which may be greater or '
|
||||
'less than\n'
|
||||
' 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 didn’t exist at '
|
||||
'all. This\n'
|
||||
' method is purely an optimization and is never required '
|
||||
'for\n'
|
||||
' correctness.\n'
|
||||
|
@ -9285,12 +9356,12 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'The membership test operators ("in" and "not in") are '
|
||||
'normally\n'
|
||||
'implemented as an iteration through a sequence. However, '
|
||||
'implemented as an iteration through a container. However, '
|
||||
'container\n'
|
||||
'objects can supply the following special method with a more '
|
||||
'efficient\n'
|
||||
'implementation, which also does not require the object be a '
|
||||
'sequence.\n'
|
||||
'implementation, which also does not require the object be '
|
||||
'iterable.\n'
|
||||
'\n'
|
||||
'object.__contains__(self, item)\n'
|
||||
'\n'
|
||||
|
@ -9756,9 +9827,21 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'For a list\n'
|
||||
' of possible encodings, see section Standard Encodings.\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 '
|
||||
'added.\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'
|
||||
'\n'
|
||||
' Return "True" if the string ends with the specified '
|
||||
|
@ -9894,20 +9977,20 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'str.isalnum()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are '
|
||||
' Return "True" if all characters in the string are '
|
||||
'alphanumeric and\n'
|
||||
' there is at least one character, false otherwise. A '
|
||||
'character "c"\n'
|
||||
' is alphanumeric if one of the following returns '
|
||||
' there is at least one character, "False" otherwise. A '
|
||||
'character\n'
|
||||
' "c" is alphanumeric if one of the following returns '
|
||||
'"True":\n'
|
||||
' "c.isalpha()", "c.isdecimal()", "c.isdigit()", or '
|
||||
'"c.isnumeric()".\n'
|
||||
'\n'
|
||||
'str.isalpha()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are '
|
||||
' Return "True" if all characters in the string are '
|
||||
'alphabetic and\n'
|
||||
' there is at least one character, false otherwise. '
|
||||
' there is at least one character, "False" otherwise. '
|
||||
'Alphabetic\n'
|
||||
' characters are those characters defined in the Unicode '
|
||||
'character\n'
|
||||
|
@ -9921,45 +10004,46 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'str.isascii()\n'
|
||||
'\n'
|
||||
' Return true if the string is empty or all characters in '
|
||||
'the string\n'
|
||||
' are ASCII, false otherwise. ASCII characters have code '
|
||||
'points in\n'
|
||||
' the range U+0000-U+007F.\n'
|
||||
' Return "True" if the string is empty or all characters '
|
||||
'in the\n'
|
||||
' string are ASCII, "False" otherwise. ASCII characters '
|
||||
'have code\n'
|
||||
' points in the range U+0000-U+007F.\n'
|
||||
'\n'
|
||||
' New in version 3.7.\n'
|
||||
'\n'
|
||||
'str.isdecimal()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are decimal '
|
||||
'characters\n'
|
||||
' and there is at least one character, false otherwise. '
|
||||
'Decimal\n'
|
||||
' characters are those that can be used to form numbers '
|
||||
'in base 10,\n'
|
||||
' e.g. U+0660, ARABIC-INDIC DIGIT ZERO. Formally a '
|
||||
'decimal character\n'
|
||||
' is a character in the Unicode General Category “Nd”.\n'
|
||||
' Return "True" if all characters in the string are '
|
||||
'decimal\n'
|
||||
' characters and there is at least one character, "False" '
|
||||
'otherwise.\n'
|
||||
' Decimal characters are those that can be used to form '
|
||||
'numbers in\n'
|
||||
' base 10, e.g. U+0660, ARABIC-INDIC DIGIT ZERO. '
|
||||
'Formally a decimal\n'
|
||||
' character is a character in the Unicode General '
|
||||
'Category “Nd”.\n'
|
||||
'\n'
|
||||
'str.isdigit()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are digits '
|
||||
'and there is\n'
|
||||
' at least one character, false otherwise. Digits '
|
||||
'include decimal\n'
|
||||
' characters and digits that need special handling, such '
|
||||
'as the\n'
|
||||
' compatibility superscript digits. This covers digits '
|
||||
'which cannot\n'
|
||||
' be used to form numbers in base 10, like the Kharosthi '
|
||||
'numbers.\n'
|
||||
' Formally, a digit is a character that has the property '
|
||||
'value\n'
|
||||
' Numeric_Type=Digit or Numeric_Type=Decimal.\n'
|
||||
' Return "True" if all characters in the string are '
|
||||
'digits and there\n'
|
||||
' is at least one character, "False" otherwise. Digits '
|
||||
'include\n'
|
||||
' decimal characters and digits that need special '
|
||||
'handling, such as\n'
|
||||
' the compatibility superscript digits. This covers '
|
||||
'digits which\n'
|
||||
' cannot be used to form numbers in base 10, like the '
|
||||
'Kharosthi\n'
|
||||
' numbers. Formally, a digit is a character that has the '
|
||||
'property\n'
|
||||
' value Numeric_Type=Digit or Numeric_Type=Decimal.\n'
|
||||
'\n'
|
||||
'str.isidentifier()\n'
|
||||
'\n'
|
||||
' Return true if the string is a valid identifier '
|
||||
' Return "True" if the string is a valid identifier '
|
||||
'according to the\n'
|
||||
' language definition, section Identifiers and keywords.\n'
|
||||
'\n'
|
||||
|
@ -9978,32 +10062,33 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'str.islower()\n'
|
||||
'\n'
|
||||
' Return true if all cased characters [4] in the string '
|
||||
'are lowercase\n'
|
||||
' and there is at least one cased character, false '
|
||||
'otherwise.\n'
|
||||
' Return "True" if all cased characters [4] in the string '
|
||||
'are\n'
|
||||
' lowercase and there is at least one cased character, '
|
||||
'"False"\n'
|
||||
' otherwise.\n'
|
||||
'\n'
|
||||
'str.isnumeric()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are numeric '
|
||||
'characters,\n'
|
||||
' and there is at least one character, false otherwise. '
|
||||
'Numeric\n'
|
||||
' characters include digit characters, and all characters '
|
||||
'that have\n'
|
||||
' the Unicode numeric value property, e.g. U+2155, VULGAR '
|
||||
'FRACTION\n'
|
||||
' ONE FIFTH. Formally, numeric characters are those with '
|
||||
'the\n'
|
||||
' property value Numeric_Type=Digit, Numeric_Type=Decimal '
|
||||
'or\n'
|
||||
' Return "True" if all characters in the string are '
|
||||
'numeric\n'
|
||||
' characters, and there is at least one character, '
|
||||
'"False" otherwise.\n'
|
||||
' Numeric characters include digit characters, and all '
|
||||
'characters\n'
|
||||
' that have the Unicode numeric value property, e.g. '
|
||||
'U+2155, VULGAR\n'
|
||||
' FRACTION ONE FIFTH. Formally, numeric characters are '
|
||||
'those with\n'
|
||||
' the property value Numeric_Type=Digit, '
|
||||
'Numeric_Type=Decimal or\n'
|
||||
' Numeric_Type=Numeric.\n'
|
||||
'\n'
|
||||
'str.isprintable()\n'
|
||||
'\n'
|
||||
' Return true if all characters in the string are '
|
||||
' Return "True" if all characters in the string are '
|
||||
'printable or the\n'
|
||||
' string is empty, false otherwise. Nonprintable '
|
||||
' string is empty, "False" otherwise. Nonprintable '
|
||||
'characters are\n'
|
||||
' those characters defined in the Unicode character '
|
||||
'database as\n'
|
||||
|
@ -10019,32 +10104,45 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'str.isspace()\n'
|
||||
'\n'
|
||||
' Return true if there are only whitespace characters in '
|
||||
'the string\n'
|
||||
' and there is at least one character, false otherwise. '
|
||||
'Whitespace\n'
|
||||
' characters are those characters defined in the Unicode '
|
||||
'character\n'
|
||||
' database as “Other” or “Separator” and those with '
|
||||
'bidirectional\n'
|
||||
' property being one of “WS”, “B”, or “S”.\n'
|
||||
' Return "True" if there are only whitespace characters '
|
||||
'in the string\n'
|
||||
' and there is at least one character, "False" '
|
||||
'otherwise.\n'
|
||||
'\n'
|
||||
' A character is *whitespace* if in the Unicode character '
|
||||
'database\n'
|
||||
' (see "unicodedata"), either its general category is '
|
||||
'"Zs"\n'
|
||||
' (“Separator, space”), or its bidirectional class is one '
|
||||
'of "WS",\n'
|
||||
' "B", or "S".\n'
|
||||
'\n'
|
||||
'str.istitle()\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'
|
||||
' least one character, for example uppercase characters '
|
||||
'may only\n'
|
||||
' follow uncased characters and lowercase characters only '
|
||||
'cased ones.\n'
|
||||
' Return false otherwise.\n'
|
||||
' Return "False" otherwise.\n'
|
||||
'\n'
|
||||
'str.isupper()\n'
|
||||
'\n'
|
||||
' Return true if all cased characters [4] in the string '
|
||||
'are uppercase\n'
|
||||
' and there is at least one cased character, false '
|
||||
'otherwise.\n'
|
||||
' Return "True" if all cased characters [4] in the string '
|
||||
'are\n'
|
||||
' uppercase and there is at least one cased character, '
|
||||
'"False"\n'
|
||||
' otherwise.\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'
|
||||
'\n'
|
||||
|
@ -10280,7 +10378,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' | Representation | '
|
||||
'Description |\n'
|
||||
' '
|
||||
'+=========================+===============================+\n'
|
||||
'|=========================|===============================|\n'
|
||||
' | "\\n" | Line '
|
||||
'Feed |\n'
|
||||
' '
|
||||
|
@ -10619,7 +10717,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| Escape Sequence | Meaning | Notes '
|
||||
'|\n'
|
||||
'+===================+===================================+=========+\n'
|
||||
'|===================|===================================|=========|\n'
|
||||
'| "\\newline" | Backslash and newline ignored '
|
||||
'| |\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
|
@ -10665,7 +10763,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| Escape Sequence | Meaning | Notes '
|
||||
'|\n'
|
||||
'+===================+===================================+=========+\n'
|
||||
'|===================|===================================|=========|\n'
|
||||
'| "\\N{name}" | Character named *name* in the | '
|
||||
'(4) |\n'
|
||||
'| | Unicode database | '
|
||||
|
@ -10716,13 +10814,9 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
' Changed in version 3.6: Unrecognized escape sequences produce '
|
||||
'a\n'
|
||||
' "DeprecationWarning".\n'
|
||||
'\n'
|
||||
' Changed in version 3.8: Unrecognized escape sequences produce '
|
||||
' "DeprecationWarning". In a future Python version they will be '
|
||||
'a\n'
|
||||
' "SyntaxWarning". In some future version of Python they will '
|
||||
'be a\n'
|
||||
' "SyntaxError".\n'
|
||||
' "SyntaxWarning" and eventually a "SyntaxError".\n'
|
||||
'\n'
|
||||
'Even in a raw literal, quotes can be escaped with a backslash, '
|
||||
'but the\n'
|
||||
|
@ -11303,7 +11397,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' | Attribute | Meaning '
|
||||
'| |\n'
|
||||
' '
|
||||
'+===========================+=================================+=============+\n'
|
||||
'|===========================|=================================|=============|\n'
|
||||
' | "__doc__" | The function’s documentation '
|
||||
'| Writable |\n'
|
||||
' | | string, or "None" if '
|
||||
|
@ -12106,7 +12200,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
" >>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))\n"
|
||||
" >>> d = dict([('two', 2), ('one', 1), ('three', 3)])\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'
|
||||
'\n'
|
||||
' Providing keyword arguments as in the first example only '
|
||||
|
@ -12119,6 +12214,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'therefore,\n'
|
||||
' custom mapping types should support too):\n'
|
||||
'\n'
|
||||
' list(d)\n'
|
||||
'\n'
|
||||
' Return a list of all the keys used in the dictionary '
|
||||
'*d*.\n'
|
||||
'\n'
|
||||
' len(d)\n'
|
||||
'\n'
|
||||
' Return the number of items in the dictionary *d*.\n'
|
||||
|
@ -12287,11 +12387,21 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'the\n'
|
||||
' documentation of view objects.\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 '
|
||||
'same "(key,\n'
|
||||
' value)" pairs. Order comparisons (‘<’, ‘<=’, ‘>=’, ‘>’) '
|
||||
'raise\n'
|
||||
' "TypeError".\n'
|
||||
' value)" pairs (regardless of ordering). Order comparisons '
|
||||
'(‘<’,\n'
|
||||
' ‘<=’, ‘>=’, ‘>’) raise "TypeError".\n'
|
||||
'\n'
|
||||
' Dictionaries preserve insertion order. Note that '
|
||||
'updating a key\n'
|
||||
|
@ -12577,7 +12687,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'+----------------------------+----------------------------------+------------+\n'
|
||||
'| Operation | Result '
|
||||
'| Notes |\n'
|
||||
'+============================+==================================+============+\n'
|
||||
'|============================|==================================|============|\n'
|
||||
'| "x in s" | "True" if an item of *s* is '
|
||||
'| (1) |\n'
|
||||
'| | equal to *x*, else "False" '
|
||||
|
@ -12806,7 +12916,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'+--------------------------------+----------------------------------+-----------------------+\n'
|
||||
'| Operation | '
|
||||
'Result | Notes |\n'
|
||||
'+================================+==================================+=======================+\n'
|
||||
'|================================|==================================|=======================|\n'
|
||||
'| "s[i] = x" | item *i* of *s* is replaced '
|
||||
'by | |\n'
|
||||
'| | '
|
||||
|
@ -13268,7 +13378,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| Operation | '
|
||||
'Result | Notes '
|
||||
'|\n'
|
||||
'+================================+==================================+=======================+\n'
|
||||
'|================================|==================================|=======================|\n'
|
||||
'| "s[i] = x" | item *i* of *s* is '
|
||||
'replaced by | |\n'
|
||||
'| | '
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Enables use of SSE2 instructions in Windows 32-bit build.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
``make install`` no longer installs ``wininst-*.exe`` files used by
|
||||
distutils bdist_wininst: bdist_wininst only works on Windows.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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".
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Locate ``llvm-profdata`` and ``llvm-ar`` binaries using ``AC_PATH_TOOL``
|
||||
rather than ``AC_PATH_TARGET_TOOL``.
|
|
@ -1,2 +0,0 @@
|
|||
In Solaris family, we must be sure to use ``-D_REENTRANT``.
|
||||
Patch by Jesús Cea Avión.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Misc/python-config.in now uses `getvar()` for all still existing `sysconfig.get_config_var()` calls.
|
||||
Patch by Joannah Nanjekye.
|
|
@ -1 +0,0 @@
|
|||
Fix _hashlib build when Blake2 is disabled, but OpenSSL supports it.
|
|
@ -1,2 +0,0 @@
|
|||
On Windows, build scripts will now recognize and use python.exe from an
|
||||
active virtual env.
|
|
@ -1,2 +0,0 @@
|
|||
Use singular/plural noun in error message when instantiating an abstract
|
||||
class with non-overriden abstract method(s).
|
|
@ -1,2 +0,0 @@
|
|||
Convert posixmodule.c statically allocated types ``DirEntryType`` and
|
||||
``ScandirIteratorType`` to heap-allocated types.
|
|
@ -1 +0,0 @@
|
|||
Fix the cast on error in :c:func:`PyLong_AsUnsignedLongLongMask()`.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Fix dtrace issue introduce by bpo-36842
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
The :const:`METH_FASTCALL` calling convention has been documented.
|
|
@ -1,2 +0,0 @@
|
|||
Add fast functions for calling methods: :c:func:`_PyObject_VectorcallMethod`,
|
||||
:c:func:`_PyObject_CallMethodNoArgs` and :c:func:`_PyObject_CallMethodOneArg`.
|
|
@ -1 +0,0 @@
|
|||
Add :func:`PyConfig_SetWideStringList` function.
|
|
@ -1,2 +0,0 @@
|
|||
Add new function ``_PyObject_CallOneArg`` for calling an object with one
|
||||
positional argument.
|
|
@ -1 +0,0 @@
|
|||
Exclude Python-ast.h, ast.h and asdl.h from the limited API.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
The vectorcall protocol now requires that the caller passes only strings as
|
||||
keyword names.
|
|
@ -1 +0,0 @@
|
|||
``PyCFunction_Call`` is now a deprecated alias of :c:func:`PyObject_Call`.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Fix subtype_dealloc to suppress the type decref when the base type is a C
|
||||
heap type
|
|
@ -1 +0,0 @@
|
|||
Fix a crash in ``PySys_SetArgvEx(0, NULL, 0)``.
|
|
@ -1,2 +0,0 @@
|
|||
Options added by ``PySys_AddXOption()`` are now handled the same way than
|
||||
``PyConfig.xoptions`` and command line ``-X`` options.
|
|
@ -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)
|
|
@ -1,2 +0,0 @@
|
|||
Make dict and weakref offsets opaque for C heap types by passing the offsets
|
||||
through PyMemberDef
|
|
@ -1 +0,0 @@
|
|||
The :c:func:`Py_UNREACHABLE` macro now calls :c:func:`Py_FatalError`.
|
|
@ -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.
|
|
@ -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`).
|
|
@ -1 +0,0 @@
|
|||
Update audioop extension module to use the stable ABI (PEP-384). Patch by Tyler Kieft.
|
|
@ -1 +0,0 @@
|
|||
Revert the removal of PyThreadState_DeleteCurrent() with documentation.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
The global variable :c:data:`PyStructSequence_UnnamedField` is now a
|
||||
constant and refers to a constant string.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Reëxport some function compatibility wrappers for macros in ``pythonrun.h``.
|
|
@ -1,2 +0,0 @@
|
|||
Prohibit parallel running of aclose() / asend() / athrow(). Fix ag_running
|
||||
to reflect the actual running status of the AG.
|
|
@ -1,2 +0,0 @@
|
|||
Improve speed of dictview intersection by directly using set intersection
|
||||
logic. Patch by David Su.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
``pdb.Pdb`` supports ~/.pdbrc in Windows 7. Patch by Tim Hopper and Dan
|
||||
Lidral-Porter.
|
|
@ -1 +0,0 @@
|
|||
Add ``--upgrade-deps`` to venv module. Patch by Cooper Ry Lees
|
|
@ -1 +0,0 @@
|
|||
:func:`sum` has been optimized for boolean values.
|
|
@ -1,2 +0,0 @@
|
|||
Add :func:`threading.get_native_id` support for AIX.
|
||||
Patch by M. Felt
|
|
@ -1 +0,0 @@
|
|||
:func:`threading.get_native_id` now also supports NetBSD.
|
|
@ -1,2 +0,0 @@
|
|||
The slot ``tp_vectorcall_offset`` is inherited unconditionally to support
|
||||
``super().__call__()`` when the base class uses vectorcall.
|
|
@ -1 +0,0 @@
|
|||
Slot functions optimize any callable with ``Py_TPFLAGS_METHOD_DESCRIPTOR`` instead of only instances of ``function``.
|
|
@ -1,3 +0,0 @@
|
|||
Implement :c:func:`PyBuffer_SizeFromFormat()` function (previously
|
||||
documented but not implemented): call :func:`struct.calcsize`.
|
||||
Patch by Joannah Nanjekye.
|
|
@ -1 +0,0 @@
|
|||
Remove erroneous optimization for empty set differences.
|
|
@ -1,2 +0,0 @@
|
|||
Handle correctly negative line offsets in the peephole optimizer. Patch by
|
||||
Pablo Galindo.
|
|
@ -1,2 +0,0 @@
|
|||
Implemented separate vectorcall functions for every calling convention of
|
||||
builtin functions and methods. This improves performance for calls.
|
|
@ -1,2 +0,0 @@
|
|||
The dispatching of type slots to special methods (for example calling
|
||||
``__mul__`` when doing ``x * y``) has been made faster.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Remove an unnecssary Py_XINCREF in classobject.c.
|
|
@ -1 +0,0 @@
|
|||
Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`.
|
|
@ -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``.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Improved support of the surrogatepass error handler in the UTF-8 and UTF-16
|
||||
incremental decoders.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
:meth:`bytearray.extend` now correctly handles errors that arise during iteration.
|
||||
Patch by Brandt Bucher.
|
|
@ -1 +0,0 @@
|
|||
Fix ``SyntaxError`` indicator printing too many spaces for multi-line strings - by Anthony Sottile.
|
|
@ -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.
|
|
@ -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().
|
|
@ -1 +0,0 @@
|
|||
Optimized pymalloc for non PGO build.
|
|
@ -1,2 +0,0 @@
|
|||
Swap the positions of the *posonlyargs* and *args* parameters in the
|
||||
constructor of :class:`ast.parameters` nodes.
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Update differing exception between :meth:`builtins.__import__` and :meth:`importlib.__import__`.
|
|
@ -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 ``==``.
|
|
@ -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.
|
|
@ -1,3 +0,0 @@
|
|||
The :keyword:`assert` statement now works properly if the
|
||||
:exc:`AssertionError` exception is being shadowed.
|
||||
Patch by Zackery Spytz.
|
|
@ -1,2 +0,0 @@
|
|||
Decoding bytes objects larger than 2GiB is faster and no longer fails when a
|
||||
multibyte characters spans a chunk boundary.
|
|
@ -1 +0,0 @@
|
|||
Fix potential use of uninitialized memory in :func:`os.wait3`.
|
|
@ -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.
|
|
@ -1,3 +0,0 @@
|
|||
Reverted :issue:`32912`: emitting :exc:`SyntaxWarning` instead of
|
||||
:exc:`DeprecationWarning` for invalid escape sequences in string and bytes
|
||||
literals.
|
|
@ -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.
|
|
@ -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.
|
|
@ -1,2 +0,0 @@
|
|||
Fix handling of negative indices in :c:member:`~PySequenceMethods.sq_item`
|
||||
of :class:`bytearray`. Patch by Sergey Fedoseev.
|
|
@ -1,2 +0,0 @@
|
|||
Improve import error message for partially initialized module on circular
|
||||
``from`` imports - by Anthony Sottile.
|
|
@ -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.
|
|
@ -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
Loading…
Reference in New Issue