mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Python 3.9.0a1
This commit is contained in:
parent
24555ce2f9
commit
fd757083df
573 changed files with 6113 additions and 1382 deletions
|
@ -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.
|
||||||
|
|
|
@ -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. 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'
|
'\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 iterator’s 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'
|
||||||
' instance’s "__init__()" method will be invoked like\n'
|
' an instance or subclass of *cls*, then the new '
|
||||||
' "__init__(self[, ...])", where *self* is the new '
|
'instance’s\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 object’s 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 didn’t 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'
|
||||||
' instance’s "__init__()" method will be invoked like\n'
|
' an instance or subclass of *cls*, then the new '
|
||||||
' "__init__(self[, ...])", where *self* is the new instance '
|
'instance’s\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. 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'
|
'\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 iterator’s 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 object’s 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 didn’t 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, '
|
||||||
'otherwise.\n'
|
'"False"\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,32 +10104,45 @@ 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, '
|
||||||
'otherwise.\n'
|
'"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'
|
'\n'
|
||||||
'str.join(iterable)\n'
|
'str.join(iterable)\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
@ -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 function’s documentation '
|
' | "__doc__" | The function’s 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
5772
Misc/NEWS.d/3.9.0a1.rst
Normal file
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…
Add table
Add a link
Reference in a new issue