aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/src/Lib/pydoc_data/topics.py
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:30 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:30 +0300
commit2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch)
tree012bb94d777798f1f56ac1cec429509766d05181 /contrib/tools/python3/src/Lib/pydoc_data/topics.py
parent6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff)
downloadydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/python3/src/Lib/pydoc_data/topics.py')
-rw-r--r--contrib/tools/python3/src/Lib/pydoc_data/topics.py4518
1 files changed, 2259 insertions, 2259 deletions
diff --git a/contrib/tools/python3/src/Lib/pydoc_data/topics.py b/contrib/tools/python3/src/Lib/pydoc_data/topics.py
index 67a51977cf..929833791f 100644
--- a/contrib/tools/python3/src/Lib/pydoc_data/topics.py
+++ b/contrib/tools/python3/src/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Thu Jan 13 21:46:32 2022
+# Autogenerated by Sphinx on Thu Jan 13 21:46:32 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -99,26 +99,26 @@ topics = {'assert': 'The "assert" statement\n'
'assigned,\n'
' from left to right, to the corresponding targets.\n'
'\n'
- ' * If the target list contains one target prefixed with an '
- 'asterisk,\n'
- ' called a “starred” target: The object must be an iterable '
- 'with at\n'
- ' least as many items as there are targets in the target '
- 'list, minus\n'
- ' one. The first items of the iterable are assigned, from '
- 'left to\n'
- ' right, to the targets before the starred target. The '
- 'final items\n'
- ' of the iterable are assigned to the targets after the '
+ ' * If the target list contains one target prefixed with an '
+ 'asterisk,\n'
+ ' called a “starred” target: The object must be an iterable '
+ 'with at\n'
+ ' least as many items as there are targets in the target '
+ 'list, minus\n'
+ ' one. The first items of the iterable are assigned, from '
+ 'left to\n'
+ ' right, to the targets before the starred target. The '
+ 'final items\n'
+ ' of the iterable are assigned to the targets after the '
'starred\n'
- ' target. A list of the remaining items in the iterable is '
- 'then\n'
- ' assigned to the starred target (the list can be empty).\n'
+ ' target. A list of the remaining items in the iterable is '
+ 'then\n'
+ ' assigned to the starred target (the list can be empty).\n'
'\n'
' * Else: The object must be an iterable with the same number '
- 'of items\n'
- ' as there are targets in the target list, and the items '
- 'are\n'
+ 'of items\n'
+ ' as there are targets in the target list, and the items '
+ 'are\n'
' assigned, from left to right, to the corresponding '
'targets.\n'
'\n'
@@ -134,10 +134,10 @@ topics = {'assert': 'The "assert" statement\n'
'in the\n'
' current local namespace.\n'
'\n'
- ' * Otherwise: the name is bound to the object in the global '
- 'namespace\n'
- ' or the outer namespace determined by "nonlocal", '
- 'respectively.\n'
+ ' * Otherwise: the name is bound to the object in the global '
+ 'namespace\n'
+ ' or the outer namespace determined by "nonlocal", '
+ 'respectively.\n'
'\n'
' The name is rebound if it was already bound. This may cause '
'the\n'
@@ -161,21 +161,21 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Note: If the object is a class instance and the attribute '
'reference\n'
- ' occurs on both sides of the assignment operator, the '
- 'right-hand side\n'
- ' expression, "a.x" can access either an instance attribute or '
- '(if no\n'
- ' instance attribute exists) a class attribute. The left-hand '
- 'side\n'
- ' target "a.x" is always set as an instance attribute, '
- 'creating it if\n'
- ' necessary. Thus, the two occurrences of "a.x" do not '
- 'necessarily\n'
- ' refer to the same attribute: if the right-hand side '
- 'expression\n'
- ' refers to a class attribute, the left-hand side creates a '
- 'new\n'
- ' instance attribute as the target of the assignment:\n'
+ ' occurs on both sides of the assignment operator, the '
+ 'right-hand side\n'
+ ' expression, "a.x" can access either an instance attribute or '
+ '(if no\n'
+ ' instance attribute exists) a class attribute. The left-hand '
+ 'side\n'
+ ' target "a.x" is always set as an instance attribute, '
+ 'creating it if\n'
+ ' necessary. Thus, the two occurrences of "a.x" do not '
+ 'necessarily\n'
+ ' refer to the same attribute: if the right-hand side '
+ 'expression\n'
+ ' refers to a class attribute, the left-hand side creates a '
+ 'new\n'
+ ' instance attribute as the target of the assignment:\n'
'\n'
' class Cls:\n'
' x = 3 # class variable\n'
@@ -224,27 +224,27 @@ topics = {'assert': 'The "assert" statement\n'
'called with\n'
' appropriate arguments.\n'
'\n'
- '* If the target is a slicing: The primary expression in the '
- 'reference\n'
- ' is evaluated. It should yield a mutable sequence object '
- '(such as a\n'
- ' list). The assigned object should be a sequence object of '
- 'the same\n'
- ' type. Next, the lower and upper bound expressions are '
- 'evaluated,\n'
- ' insofar they are present; defaults are zero and the '
- 'sequence’s\n'
- ' length. The bounds should evaluate to integers. If either '
- 'bound is\n'
- ' negative, the sequence’s length is added to it. The '
- 'resulting\n'
- ' bounds are clipped to lie between zero and the sequence’s '
- 'length,\n'
- ' inclusive. Finally, the sequence object is asked to replace '
+ '* If the target is a slicing: The primary expression in the '
+ 'reference\n'
+ ' is evaluated. It should yield a mutable sequence object '
+ '(such as a\n'
+ ' list). The assigned object should be a sequence object of '
+ 'the same\n'
+ ' type. Next, the lower and upper bound expressions are '
+ 'evaluated,\n'
+ ' insofar they are present; defaults are zero and the '
+ 'sequence’s\n'
+ ' length. The bounds should evaluate to integers. If either '
+ 'bound is\n'
+ ' negative, the sequence’s length is added to it. The '
+ 'resulting\n'
+ ' bounds are clipped to lie between zero and the sequence’s '
+ 'length,\n'
+ ' inclusive. Finally, the sequence object is asked to replace '
'the\n'
- ' slice with the items of the assigned sequence. The length '
- 'of the\n'
- ' slice may be different from the length of the assigned '
+ ' slice with the items of the assigned sequence. The length '
+ 'of the\n'
+ ' slice may be different from the length of the assigned '
'sequence,\n'
' thus changing the length of the target sequence, if the '
'target\n'
@@ -357,13 +357,13 @@ topics = {'assert': 'The "assert" statement\n'
'a variable or attribute annotation and an optional assignment\n'
'statement:\n'
'\n'
- ' annotated_assignment_stmt ::= augtarget ":" expression\n'
- ' ["=" (starred_expression | '
- 'yield_expression)]\n'
+ ' annotated_assignment_stmt ::= augtarget ":" expression\n'
+ ' ["=" (starred_expression | '
+ 'yield_expression)]\n'
'\n'
'The difference from normal Assignment statements is that only '
'single\n'
- 'target is allowed.\n'
+ 'target is allowed.\n'
'\n'
'For simple names as assignment targets, if in class or module '
'scope,\n'
@@ -410,14 +410,14 @@ topics = {'assert': 'The "assert" statement\n'
'standard\n'
' syntax for type annotations that can be used in static '
'analysis\n'
- ' tools and IDEs.\n'
- '\n'
- 'Changed in version 3.8: Now annotated assignments allow same\n'
- 'expressions in the right hand side as the regular '
- 'assignments.\n'
- 'Previously, some expressions (like un-parenthesized tuple '
- 'expressions)\n'
- 'caused a syntax error.\n',
+ ' tools and IDEs.\n'
+ '\n'
+ 'Changed in version 3.8: Now annotated assignments allow same\n'
+ 'expressions in the right hand side as the regular '
+ 'assignments.\n'
+ 'Previously, some expressions (like un-parenthesized tuple '
+ 'expressions)\n'
+ 'caused a syntax error.\n',
'async': 'Coroutines\n'
'**********\n'
'\n'
@@ -459,35 +459,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' async_for_stmt ::= "async" for_stmt\n'
'\n'
- 'An *asynchronous iterable* provides an "__aiter__" method that\n'
- 'directly returns an *asynchronous iterator*, which can call\n'
- 'asynchronous code in its "__anext__" method.\n'
+ 'An *asynchronous iterable* provides an "__aiter__" method that\n'
+ 'directly returns an *asynchronous iterator*, which can call\n'
+ 'asynchronous code in its "__anext__" method.\n'
'\n'
'The "async for" statement allows convenient iteration over\n'
- 'asynchronous iterables.\n'
+ 'asynchronous iterables.\n'
'\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
- '\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -507,27 +507,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPRESSION as TARGET:\n'
- ' SUITE\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' manager = (EXPRESSION)\n'
- ' aenter = type(manager).__aenter__\n'
- ' aexit = type(manager).__aexit__\n'
- ' value = await aenter(manager)\n'
- ' hit_except = False\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' hit_except = True\n'
- ' if not await aexit(manager, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' await aexit(manager, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -543,17 +543,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] The exception is propagated to the invocation stack unless '
- 'there\n'
- ' is a "finally" clause which happens to raise another '
- 'exception.\n'
- ' That new exception causes the old one to be lost.\n'
+ '[1] The exception is propagated to the invocation stack unless '
+ 'there\n'
+ ' is a "finally" clause which happens to raise another '
+ 'exception.\n'
+ ' That new exception causes the old one to be lost.\n'
'\n'
- '[2] A string literal appearing as the first statement in the '
- 'function\n'
- ' body is transformed into the function’s "__doc__" attribute '
- 'and\n'
- ' therefore the function’s *docstring*.\n'
+ '[2] A string literal appearing as the first statement in the '
+ 'function\n'
+ ' body is transformed into the function’s "__doc__" attribute '
+ 'and\n'
+ ' therefore the function’s *docstring*.\n'
'\n'
'[3] A string literal appearing as the first statement in the class\n'
' body is transformed into the namespace’s "__doc__" item and\n'
@@ -691,19 +691,19 @@ topics = {'assert': 'The "assert" statement\n'
'needs, for\n'
' example, "object.__getattribute__(self, name)".\n'
'\n'
- ' Note:\n'
- '\n'
- ' This method may still be bypassed when looking up '
- 'special methods\n'
- ' as the result of implicit invocation via language '
- 'syntax or\n'
- ' built-in functions. See Special method lookup.\n'
- '\n'
- ' For certain sensitive attribute accesses, raises an '
- 'auditing event\n'
- ' "object.__getattr__" with arguments "obj" and '
- '"name".\n'
+ ' Note:\n'
'\n'
+ ' This method may still be bypassed when looking up '
+ 'special methods\n'
+ ' as the result of implicit invocation via language '
+ 'syntax or\n'
+ ' built-in functions. See Special method lookup.\n'
+ '\n'
+ ' For certain sensitive attribute accesses, raises an '
+ 'auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and '
+ '"name".\n'
+ '\n'
'object.__setattr__(self, name, value)\n'
'\n'
' Called when an attribute assignment is attempted. '
@@ -720,11 +720,11 @@ topics = {'assert': 'The "assert" statement\n'
'for example,\n'
' "object.__setattr__(self, name, value)".\n'
'\n'
- ' For certain sensitive attribute assignments, raises '
- 'an auditing\n'
- ' event "object.__setattr__" with arguments "obj", '
- '"name", "value".\n'
- '\n'
+ ' For certain sensitive attribute assignments, raises '
+ 'an auditing\n'
+ ' event "object.__setattr__" with arguments "obj", '
+ '"name", "value".\n'
+ '\n'
'object.__delattr__(self, name)\n'
'\n'
' Like "__setattr__()" but for attribute deletion '
@@ -733,11 +733,11 @@ topics = {'assert': 'The "assert" statement\n'
'obj.name" is\n'
' meaningful for the object.\n'
'\n'
- ' For certain sensitive attribute deletions, raises an '
- 'auditing event\n'
- ' "object.__delattr__" with arguments "obj" and '
- '"name".\n'
- '\n'
+ ' For certain sensitive attribute deletions, raises an '
+ 'auditing event\n'
+ ' "object.__delattr__" with arguments "obj" and '
+ '"name".\n'
+ '\n'
'object.__dir__(self)\n'
'\n'
' Called when "dir()" is called on the object. A '
@@ -769,11 +769,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n'
'\n'
'The "__dir__" function should accept no arguments, and '
- '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'
+ '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 '
@@ -796,17 +796,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' sys.modules[__name__].__class__ = VerboseModule\n'
'\n'
- 'Note:\n'
- '\n'
- ' Defining module "__getattr__" and setting module '
- '"__class__" only\n'
- ' affect lookups made using the attribute access syntax '
- '– directly\n'
- ' accessing the module globals (whether by code within '
- 'the module, or\n'
- ' via a reference to the module’s globals dictionary) is '
- 'unaffected.\n'
+ 'Note:\n'
'\n'
+ ' Defining module "__getattr__" and setting module '
+ '"__class__" only\n'
+ ' affect lookups made using the attribute access syntax '
+ '– directly\n'
+ ' accessing the module globals (whether by code within '
+ 'the module, or\n'
+ ' via a reference to the module’s globals dictionary) is '
+ 'unaffected.\n'
+ '\n'
'Changed in version 3.5: "__class__" module attribute is '
'now writable.\n'
'\n'
@@ -835,47 +835,47 @@ 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=None)\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). 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'
+ ' 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'
' Called to set the attribute on an instance *instance* '
'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'
+ ' 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 '
@@ -888,24 +888,24 @@ topics = {'assert': 'The "assert" statement\n'
'created. The\n'
' descriptor has been assigned to *name*.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "__set_name__()" is only called implicitly as part '
- 'of the "type"\n'
- ' constructor, so it will need to be called '
- 'explicitly with the\n'
- ' appropriate parameters when a descriptor is added '
- 'to a class\n'
- ' after initial creation:\n'
- '\n'
- ' class A:\n'
- ' pass\n'
- ' descr = custom_descriptor()\n'
- ' A.attr = descr\n'
- " descr.__set_name__(A, 'attr')\n"
- '\n'
- ' See Creating the class object for more details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "__set_name__()" is only called implicitly as part '
+ 'of the "type"\n'
+ ' constructor, so it will need to be called '
+ 'explicitly with the\n'
+ ' appropriate parameters when a descriptor is added '
+ 'to a class\n'
+ ' after initial creation:\n'
+ '\n'
+ ' class A:\n'
+ ' pass\n'
+ ' descr = custom_descriptor()\n'
+ ' A.attr = descr\n'
+ " descr.__set_name__(A, 'attr')\n"
+ '\n'
+ ' See Creating the class object for more details.\n'
+ '\n'
' New in version 3.6.\n'
'\n'
'The attribute "__objclass__" is interpreted by the '
@@ -979,16 +979,16 @@ topics = {'assert': 'The "assert" statement\n'
'"super(B,\n'
' obj).m()" searches "obj.__class__.__mro__" for the '
'base class "A"\n'
- ' immediately following "B" and then invokes the '
+ ' immediately following "B" and then invokes the '
'descriptor with the\n'
' call: "A.__dict__[\'m\'].__get__(obj, '
'obj.__class__)".\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
- 'on which descriptor methods are defined. A descriptor '
- 'can define any\n'
- 'combination of "__get__()", "__set__()" and '
+ 'on which descriptor methods are defined. A descriptor '
+ 'can define any\n'
+ 'combination of "__get__()", "__set__()" and '
'"__delete__()". If it\n'
'does not define "__get__()", then accessing the '
'attribute will return\n'
@@ -1002,23 +1002,23 @@ 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 "__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'
+ '"__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 those decorated with '
- '"@staticmethod" and\n'
- '"@classmethod") are implemented as non-data '
- 'descriptors. Accordingly,\n'
- 'instances can redefine and override methods. This '
- 'allows individual\n'
- 'instances to acquire behaviors that differ from other '
- 'instances of the\n'
- 'same class.\n'
+ 'Python methods (including those decorated with '
+ '"@staticmethod" and\n'
+ '"@classmethod") are implemented as non-data '
+ 'descriptors. Accordingly,\n'
+ 'instances can redefine and override methods. This '
+ 'allows individual\n'
+ 'instances to acquire behaviors that differ from other '
+ 'instances of the\n'
+ 'same class.\n'
'\n'
'The "property()" function is implemented as a data '
'descriptor.\n'
@@ -1031,12 +1031,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'*__slots__* allow us to explicitly declare data members '
'(like\n'
- 'properties) and deny the creation of "__dict__" and '
+ 'properties) and deny the creation of "__dict__" and '
'*__weakref__*\n'
'(unless explicitly declared in *__slots__* or available '
'in a parent.)\n'
'\n'
- 'The space saved over using "__dict__" can be '
+ 'The space saved over using "__dict__" can be '
'significant. Attribute\n'
'lookup speed can be significantly improved as well.\n'
'\n'
@@ -1048,7 +1048,7 @@ topics = {'assert': 'The "assert" statement\n'
'*__slots__*\n'
' reserves space for the declared variables and '
'prevents the\n'
- ' automatic creation of "__dict__" and *__weakref__* '
+ ' automatic creation of "__dict__" and *__weakref__* '
'for each\n'
' instance.\n'
'\n'
@@ -1057,11 +1057,11 @@ topics = {'assert': 'The "assert" statement\n'
'--------------------------\n'
'\n'
'* When inheriting from a class without *__slots__*, the '
- '"__dict__" and\n'
- ' *__weakref__* attribute of the instances will always '
- 'be accessible.\n'
+ '"__dict__" and\n'
+ ' *__weakref__* attribute of the instances will always '
+ 'be accessible.\n'
'\n'
- '* Without a "__dict__" variable, instances cannot be '
+ '* Without a "__dict__" variable, instances cannot be '
'assigned new\n'
' variables not listed in the *__slots__* definition. '
'Attempts to\n'
@@ -1074,41 +1074,41 @@ topics = {'assert': 'The "assert" statement\n'
' declaration.\n'
'\n'
'* Without a *__weakref__* variable for each instance, '
- 'classes defining\n'
- ' *__slots__* do not support "weak references" to its '
- 'instances. If\n'
- ' weak reference support is needed, then add '
- '"\'__weakref__\'" to the\n'
- ' sequence of strings in the *__slots__* declaration.\n'
+ 'classes defining\n'
+ ' *__slots__* do not support "weak references" to its '
+ 'instances. If\n'
+ ' weak reference support is needed, then add '
+ '"\'__weakref__\'" to the\n'
+ ' sequence of strings in the *__slots__* declaration.\n'
'\n'
'* *__slots__* are implemented at the class level by '
'creating\n'
- ' descriptors for each variable name. As a result, '
- 'class attributes\n'
- ' cannot be used to set default values for instance '
- 'variables defined\n'
- ' by *__slots__*; otherwise, the class attribute would '
- 'overwrite the\n'
- ' descriptor assignment.\n'
+ ' descriptors for each variable name. As a result, '
+ 'class attributes\n'
+ ' cannot be used to set default values for instance '
+ 'variables defined\n'
+ ' by *__slots__*; otherwise, the class attribute would '
+ 'overwrite the\n'
+ ' descriptor assignment.\n'
'\n'
'* The action of a *__slots__* declaration is not limited '
- 'to the class\n'
- ' where it is defined. *__slots__* declared in parents '
- 'are available\n'
- ' in child classes. However, child subclasses will get a '
- '"__dict__"\n'
- ' and *__weakref__* unless they also define *__slots__* '
- '(which should\n'
- ' only contain names of any *additional* slots).\n'
+ 'to the class\n'
+ ' where it is defined. *__slots__* declared in parents '
+ 'are available\n'
+ ' in child classes. However, child subclasses will get a '
+ '"__dict__"\n'
+ ' and *__weakref__* unless they also define *__slots__* '
+ '(which should\n'
+ ' only contain names of any *additional* slots).\n'
'\n'
'* If a class defines a slot also defined in a base '
- 'class, the instance\n'
- ' variable defined by the base class slot is '
- 'inaccessible (except by\n'
- ' retrieving its descriptor directly from the base '
- 'class). This\n'
- ' renders the meaning of the program undefined. In the '
- 'future, a\n'
+ 'class, the instance\n'
+ ' variable defined by the base class slot is '
+ 'inaccessible (except by\n'
+ ' retrieving its descriptor directly from the base '
+ 'class). This\n'
+ ' renders the meaning of the program undefined. In the '
+ 'future, a\n'
' check may be added to prevent this.\n'
'\n'
'* Nonempty *__slots__* does not work for classes derived '
@@ -1116,19 +1116,19 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", '
'"bytes" and "tuple".\n'
'\n'
- '* Any non-string *iterable* may be assigned to '
- '*__slots__*.\n'
- '\n'
- '* If a "dictionary" is used to assign *__slots__*, the '
- 'dictionary keys\n'
- ' will be used as the slot names. The values of the '
- 'dictionary can be\n'
- ' used to provide per-attribute docstrings that will be '
- 'recognised by\n'
- ' "inspect.getdoc()" and displayed in the output of '
- '"help()".\n'
+ '* Any non-string *iterable* may be assigned to '
+ '*__slots__*.\n'
'\n'
- '* "__class__" assignment works only if both classes have '
+ '* If a "dictionary" is used to assign *__slots__*, the '
+ 'dictionary keys\n'
+ ' will be used as the slot names. The values of the '
+ 'dictionary can be\n'
+ ' used to provide per-attribute docstrings that will be '
+ 'recognised by\n'
+ ' "inspect.getdoc()" and displayed in the output of '
+ '"help()".\n'
+ '\n'
+ '* "__class__" assignment works only if both classes have '
'the same\n'
' *__slots__*.\n'
'\n'
@@ -1138,13 +1138,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'
- '\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',
+ ' 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'
@@ -1266,10 +1266,10 @@ topics = {'assert': 'The "assert" statement\n'
'In the latter case, sequence repetition is performed; a negative\n'
'repetition factor yields an empty sequence.\n'
'\n'
- 'This operation can be customized using the special "__mul__()" '
- 'and\n'
- '"__rmul__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__mul__()" '
+ 'and\n'
+ '"__rmul__()" methods.\n'
+ '\n'
'The "@" (at) operator is intended to be used for matrix\n'
'multiplication. No builtin Python types implement this operator.\n'
'\n'
@@ -1285,10 +1285,10 @@ topics = {'assert': 'The "assert" statement\n'
'result. Division by zero raises the "ZeroDivisionError" '
'exception.\n'
'\n'
- 'This operation can be customized using the special "__truediv__()" '
- 'and\n'
- '"__floordiv__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__truediv__()" '
+ 'and\n'
+ '"__floordiv__()" methods.\n'
+ '\n'
'The "%" (modulo) operator yields the remainder from the division '
'of\n'
'the first argument by the second. The numeric arguments are '
@@ -1320,10 +1320,10 @@ topics = {'assert': 'The "assert" statement\n'
'string formatting is described in the Python Library Reference,\n'
'section printf-style String Formatting.\n'
'\n'
- 'The *modulo* operation can be customized using the special '
- '"__mod__()"\n'
- 'method.\n'
- '\n'
+ 'The *modulo* operation can be customized using the special '
+ '"__mod__()"\n'
+ 'method.\n'
+ '\n'
'The floor division operator, the modulo operator, and the '
'"divmod()"\n'
'function are not defined for complex numbers. Instead, convert to '
@@ -1338,16 +1338,16 @@ topics = {'assert': 'The "assert" statement\n'
'and then added together. In the latter case, the sequences are\n'
'concatenated.\n'
'\n'
- 'This operation can be customized using the special "__add__()" '
- 'and\n'
- '"__radd__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special "__add__()" '
+ 'and\n'
+ '"__radd__()" methods.\n'
+ '\n'
'The "-" (subtraction) operator yields the difference of its '
'arguments.\n'
- 'The numeric arguments are first converted to a common type.\n'
- '\n'
- 'This operation can be customized using the special "__sub__()" '
- 'method.\n',
+ 'The numeric arguments are first converted to a common type.\n'
+ '\n'
+ 'This operation can be customized using the special "__sub__()" '
+ 'method.\n',
'bitwise': 'Binary bitwise operations\n'
'*************************\n'
'\n'
@@ -1360,18 +1360,18 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "&" operator yields the bitwise AND of its arguments, which '
'must\n'
- 'be integers or one of them must be a custom object overriding\n'
- '"__and__()" or "__rand__()" special methods.\n'
+ 'be integers or one of them must be a custom object overriding\n'
+ '"__and__()" or "__rand__()" special methods.\n'
'\n'
'The "^" operator yields the bitwise XOR (exclusive OR) of its\n'
- 'arguments, which must be integers or one of them must be a '
- 'custom\n'
- 'object overriding "__xor__()" or "__rxor__()" special methods.\n'
+ 'arguments, which must be integers or one of them must be a '
+ 'custom\n'
+ 'object overriding "__xor__()" or "__rxor__()" special methods.\n'
'\n'
'The "|" operator yields the bitwise (inclusive) OR of its '
'arguments,\n'
- 'which must be integers or one of them must be a custom object\n'
- 'overriding "__or__()" or "__ror__()" special methods.\n',
+ 'which must be integers or one of them must be a custom object\n'
+ 'overriding "__or__()" or "__ror__()" special methods.\n',
'bltin-code-objects': 'Code Objects\n'
'************\n'
'\n'
@@ -1388,10 +1388,10 @@ topics = {'assert': 'The "assert" statement\n'
'through their "__code__" attribute. See also the '
'"code" module.\n'
'\n'
- 'Accessing "__code__" raises an auditing event '
- '"object.__getattr__"\n'
- 'with arguments "obj" and ""__code__"".\n'
- '\n'
+ 'Accessing "__code__" raises an auditing event '
+ '"object.__getattr__"\n'
+ 'with arguments "obj" and ""__code__"".\n'
+ '\n'
'A code object can be executed or evaluated by passing '
'it (instead of a\n'
'source string) to the "exec()" or "eval()" built-in '
@@ -1512,8 +1512,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called when the instance is “called” as a function; if '
'this method\n'
- ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
- ' "type(x).__call__(x, arg1, ...)".\n',
+ ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
+ ' "type(x).__call__(x, arg1, ...)".\n',
'calls': 'Calls\n'
'*****\n'
'\n'
@@ -1529,8 +1529,8 @@ topics = {'assert': 'The "assert" statement\n'
' | starred_and_keywords ["," '
'keywords_arguments]\n'
' | keywords_arguments\n'
- ' positional_arguments ::= positional_item ("," positional_item)*\n'
- ' positional_item ::= assignment_expression | "*" expression\n'
+ ' positional_arguments ::= positional_item ("," positional_item)*\n'
+ ' positional_item ::= assignment_expression | "*" expression\n'
' starred_and_keywords ::= ("*" expression | keyword_item)\n'
' ("," "*" expression | "," '
'keyword_item)*\n'
@@ -1770,10 +1770,10 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
'function decorators. The result is then bound to the class name.\n'
'\n'
- 'Changed in version 3.9: Classes may be decorated with any valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Classes may be decorated with any valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'**Programmer’s note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@@ -1817,11 +1817,11 @@ topics = {'assert': 'The "assert" statement\n'
' comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!="\n'
' | "is" ["not"] | ["not"] "in"\n'
'\n'
- 'Comparisons yield boolean values: "True" or "False". Custom '
- '*rich\n'
- 'comparison methods* may return non-boolean values. In this '
- 'case Python\n'
- 'will call "bool()" on such value in boolean contexts.\n'
+ 'Comparisons yield boolean values: "True" or "False". Custom '
+ '*rich\n'
+ 'comparison methods* may return non-boolean values. In this '
+ 'case Python\n'
+ 'will call "bool()" on such value in boolean contexts.\n'
'\n'
'Comparisons can be chained arbitrarily, e.g., "x < y <= z" '
'is\n'
@@ -1934,16 +1934,16 @@ topics = {'assert': 'The "assert" statement\n'
' value is false. A counter-intuitive implication is that '
'not-a-number\n'
' values are not equal to themselves. For example, if "x =\n'
- ' float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
- 'false, while "x\n'
- ' != x" is true. This behavior is compliant with IEEE 754.\n'
- '\n'
- '* "None" and "NotImplemented" are singletons. **PEP 8** '
- 'advises that\n'
- ' comparisons for singletons should always be done with "is" '
- 'or "is\n'
- ' not", never the equality operators.\n'
+ ' float(\'NaN\')", "3 < x", "x < 3" and "x == x" are all '
+ 'false, while "x\n'
+ ' != x" is true. This behavior is compliant with IEEE 754.\n'
'\n'
+ '* "None" and "NotImplemented" are singletons. **PEP 8** '
+ 'advises that\n'
+ ' comparisons for singletons should always be done with "is" '
+ 'or "is\n'
+ ' 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'
@@ -1958,24 +1958,24 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Strings and binary sequences cannot be directly compared.\n'
'\n'
- '* Sequences (instances of "tuple", "list", or "range") can be '
- 'compared\n'
- ' only within each of their types, with the restriction that '
- 'ranges do\n'
- ' not support order comparison. Equality comparison across '
- 'these\n'
- ' types results in inequality, and ordering comparison across '
- 'these\n'
- ' types raises "TypeError".\n'
+ '* Sequences (instances of "tuple", "list", or "range") can be '
+ 'compared\n'
+ ' only within each of their types, with the restriction that '
+ 'ranges do\n'
+ ' not support order comparison. Equality comparison across '
+ 'these\n'
+ ' types results in inequality, and ordering comparison across '
+ 'these\n'
+ ' types raises "TypeError".\n'
'\n'
' Sequences compare lexicographically using comparison of\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'
+ ' 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'
@@ -1990,8 +1990,8 @@ topics = {'assert': 'The "assert" statement\n'
' false because the type is not the same).\n'
'\n'
' * Collections that support order comparison are ordered the '
- 'same as\n'
- ' their first unequal elements (for example, "[1,2,x] <= '
+ 'same as\n'
+ ' their first unequal elements (for example, "[1,2,x] <= '
'[1,2,y]"\n'
' has the same value as "x <= y"). If a corresponding '
'element does\n'
@@ -2009,8 +2009,8 @@ topics = {'assert': 'The "assert" statement\n'
'"TypeError".\n'
'\n'
'* Sets (instances of "set" or "frozenset") can be compared '
- 'within and\n'
- ' across their types.\n'
+ 'within and\n'
+ ' across their types.\n'
'\n'
' They define order comparison operators to mean subset and '
'superset\n'
@@ -2029,8 +2029,8 @@ topics = {'assert': 'The "assert" statement\n'
' Comparison of sets enforces reflexivity of its elements.\n'
'\n'
'* Most other built-in types have no comparison methods '
- 'implemented, so\n'
- ' they inherit the default comparison behavior.\n'
+ 'implemented, so\n'
+ ' they inherit the default comparison behavior.\n'
'\n'
'User-defined classes that customize their comparison behavior '
'should\n'
@@ -2079,10 +2079,10 @@ topics = {'assert': 'The "assert" statement\n'
' "total_ordering()" decorator.\n'
'\n'
'* The "hash()" result should be consistent with equality. '
- 'Objects that\n'
- ' are equal should either have the same hash value, or be '
- 'marked as\n'
- ' unhashable.\n'
+ 'Objects that\n'
+ ' are equal should either have the same hash value, or be '
+ 'marked as\n'
+ ' unhashable.\n'
'\n'
'Python does not enforce these consistency rules. In fact, '
'the\n'
@@ -2124,26 +2124,26 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For user-defined classes which do not define "__contains__()" '
'but do\n'
- 'define "__iter__()", "x in y" is "True" if some value "z", '
- 'for which\n'
- 'the expression "x is z or x == z" is true, is produced while '
- 'iterating\n'
- 'over "y". If an exception is raised during the iteration, it '
- 'is as if\n'
- '"in" raised that exception.\n'
+ 'define "__iter__()", "x in y" is "True" if some value "z", '
+ 'for which\n'
+ 'the expression "x is z or x == z" is true, is produced while '
+ 'iterating\n'
+ 'over "y". If an exception is raised during the iteration, it '
+ 'is as if\n'
+ '"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class '
'defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a '
'non-\n'
- 'negative integer index *i* such that "x is y[i] or x == '
- 'y[i]", and no\n'
- 'lower integer index raises the "IndexError" exception. (If '
- 'any other\n'
+ 'negative integer index *i* such that "x is y[i] or x == '
+ 'y[i]", and no\n'
+ 'lower integer index raises the "IndexError" exception. (If '
+ 'any other\n'
'exception is raised, it is as if "in" raised that '
'exception).\n'
'\n'
- 'The operator "not in" is defined to have the inverse truth '
+ 'The operator "not in" is defined to have the inverse truth '
'value of\n'
'"in".\n'
'\n'
@@ -2151,13 +2151,13 @@ topics = {'assert': 'The "assert" statement\n'
'Identity comparisons\n'
'====================\n'
'\n'
- 'The operators "is" and "is not" test for an object’s '
- 'identity: "x is\n'
- 'y" is true if and only if *x* and *y* are the same object. '
- 'An\n'
- 'Object’s identity is determined using the "id()" function. '
- '"x is not\n'
- 'y" yields the inverse truth value. [4]\n',
+ 'The operators "is" and "is not" test for an object’s '
+ 'identity: "x is\n'
+ 'y" is true if and only if *x* and *y* are the same object. '
+ 'An\n'
+ 'Object’s identity is determined using the "id()" function. '
+ '"x is not\n'
+ 'y" yields the inverse truth value. [4]\n',
'compound': 'Compound statements\n'
'*******************\n'
'\n'
@@ -2248,8 +2248,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the '
@@ -2272,7 +2272,7 @@ topics = {'assert': 'The "assert" statement\n'
'an\n'
'expression is true:\n'
'\n'
- ' while_stmt ::= "while" assignment_expression ":" suite\n'
+ ' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, '
@@ -2332,7 +2332,7 @@ topics = {'assert': 'The "assert" statement\n'
'next\n'
'item.\n'
'\n'
- 'The for-loop makes assignments to the variables in the target '
+ 'The for-loop makes assignments to the variables in the target '
'list.\n'
'This overwrites all previous assignments to those variables '
'including\n'
@@ -2356,11 +2356,11 @@ topics = {'assert': 'The "assert" statement\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, '
'2]".\n'
'\n'
- 'Note:\n'
- '\n'
- ' There is a subtlety when the sequence is being modified by the '
- 'loop\n'
- ' (this can only occur for mutable sequences, e.g. lists). An\n'
+ 'Note:\n'
+ '\n'
+ ' There is a subtlety when the sequence is being modified by the '
+ 'loop\n'
+ ' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used '
'next,\n'
' and this is incremented on each iteration. When this counter '
@@ -2418,9 +2418,9 @@ topics = {'assert': 'The "assert" statement\n'
'compatible\n'
'with an exception if it is the class or a base class of the '
'exception\n'
- 'object, or a tuple containing an item that is the class or a '
- 'base\n'
- 'class of the exception object.\n'
+ 'object, or a tuple containing an item that is the class or a '
+ 'base\n'
+ 'class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
@@ -2514,9 +2514,9 @@ topics = {'assert': 'The "assert" statement\n'
'saved\n'
'exception is set as the context of the new exception. If the '
'"finally"\n'
- 'clause executes a "return", "break" or "continue" statement, the '
- 'saved\n'
- 'exception is discarded:\n'
+ 'clause executes a "return", "break" or "continue" statement, the '
+ 'saved\n'
+ 'exception is discarded:\n'
'\n'
' >>> def f():\n'
' ... try:\n'
@@ -2535,7 +2535,7 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
'"try" suite of a "try"…"finally" statement, the "finally" clause '
'is\n'
- 'also executed ‘on the way out.’\n'
+ 'also executed ‘on the way out.’\n'
'\n'
'The return value of a function is determined by the last '
'"return"\n'
@@ -2559,12 +2559,12 @@ topics = {'assert': 'The "assert" statement\n'
'generate\n'
'exceptions may be found in section The raise statement.\n'
'\n'
- 'Changed in version 3.8: Prior to Python 3.8, a "continue" '
- 'statement\n'
- 'was illegal in the "finally" clause due to a problem with the\n'
- 'implementation.\n'
- '\n'
+ 'Changed in version 3.8: Prior to Python 3.8, a "continue" '
+ 'statement\n'
+ 'was illegal in the "finally" clause due to a problem with the\n'
+ 'implementation.\n'
'\n'
+ '\n'
'The "with" statement\n'
'====================\n'
'\n'
@@ -2584,33 +2584,33 @@ topics = {'assert': 'The "assert" statement\n'
'follows:\n'
'\n'
'1. The context expression (the expression given in the '
- '"with_item") is\n'
- ' evaluated to obtain a context manager.\n'
- '\n'
- '2. The context manager’s "__enter__()" is loaded for later use.\n'
+ '"with_item") is\n'
+ ' evaluated to obtain a context manager.\n'
'\n'
- '3. The context manager’s "__exit__()" is loaded for later use.\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '4. The context manager’s "__enter__()" method is invoked.\n'
- '\n'
- '5. If a target was included in the "with" statement, the return '
- 'value\n'
- ' from "__enter__()" is assigned to it.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- ' Note:\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
+ '\n'
+ '5. If a target was included in the "with" statement, the return '
+ 'value\n'
+ ' from "__enter__()" is assigned to it.\n'
'\n'
- ' The "with" statement guarantees that if the "__enter__()" '
- 'method\n'
- ' returns without an error, then "__exit__()" will always be\n'
+ ' Note:\n'
+ '\n'
+ ' The "with" statement guarantees that if the "__enter__()" '
+ 'method\n'
+ ' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to '
'the\n'
' target list, it will be treated the same as an error '
'occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '6. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '7. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, '
'and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
@@ -2632,42 +2632,42 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
- 'The following code:\n'
- '\n'
- ' with EXPRESSION as TARGET:\n'
- ' SUITE\n'
- '\n'
- 'is semantically equivalent to:\n'
- '\n'
- ' manager = (EXPRESSION)\n'
- ' enter = type(manager).__enter__\n'
- ' exit = type(manager).__exit__\n'
- ' value = enter(manager)\n'
- ' hit_except = False\n'
- '\n'
- ' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
- ' except:\n'
- ' hit_except = True\n'
- ' if not exit(manager, *sys.exc_info()):\n'
- ' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' exit(manager, None, None, None)\n'
- '\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as '
'if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context '
'expressions.\n'
@@ -2687,24 +2687,24 @@ topics = {'assert': 'The "assert" statement\n'
'(see\n'
'section The standard type hierarchy):\n'
'\n'
- ' funcdef ::= [decorators] "def" funcname "(" '
+ ' funcdef ::= [decorators] "def" funcname "(" '
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
- ' decorators ::= decorator+\n'
- ' decorator ::= "@" assignment_expression '
- 'NEWLINE\n'
- ' parameter_list ::= defparameter ("," '
- 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
- ' | parameter_list_no_posonly\n'
- ' parameter_list_no_posonly ::= defparameter ("," '
- 'defparameter)* ["," [parameter_list_starargs]]\n'
- ' | parameter_list_starargs\n'
- ' parameter_list_starargs ::= "*" [parameter] ("," '
+ ' decorators ::= decorator+\n'
+ ' decorator ::= "@" assignment_expression '
+ 'NEWLINE\n'
+ ' parameter_list ::= defparameter ("," '
+ 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
+ ' | parameter_list_no_posonly\n'
+ ' parameter_list_no_posonly ::= defparameter ("," '
+ 'defparameter)* ["," [parameter_list_starargs]]\n'
+ ' | parameter_list_starargs\n'
+ ' parameter_list_starargs ::= "*" [parameter] ("," '
'defparameter)* ["," ["**" parameter [","]]]\n'
' | "**" parameter [","]\n'
- ' parameter ::= identifier [":" expression]\n'
- ' defparameter ::= parameter ["=" expression]\n'
- ' funcname ::= identifier\n'
+ ' parameter ::= identifier [":" expression]\n'
+ ' defparameter ::= parameter ["=" expression]\n'
+ ' funcname ::= identifier\n'
'\n'
'A function definition is an executable statement. Its execution '
'binds\n'
@@ -2745,11 +2745,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
- 'Changed in version 3.9: Functions may be decorated with any '
- 'valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Functions may be decorated with any '
+ 'valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@@ -2792,7 +2792,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
- 'the parameter list, either from positional arguments, from '
+ 'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"” '
'is\n'
@@ -2804,15 +2804,15 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'“"*identifier"” are keyword-only parameters and may only be '
- 'passed by\n'
- 'keyword arguments. Parameters before “"/"” are positional-only\n'
- 'parameters and may only be passed by positional arguments.\n'
- '\n'
- 'Changed in version 3.8: The "/" function parameter syntax may be '
- 'used\n'
- 'to indicate positional-only parameters. See **PEP 570** for '
- 'details.\n'
- '\n'
+ 'passed by\n'
+ 'keyword arguments. Parameters before “"/"” are positional-only\n'
+ 'parameters and may only be passed by positional arguments.\n'
+ '\n'
+ 'Changed in version 3.8: The "/" function parameter syntax may be '
+ 'used\n'
+ 'to indicate positional-only parameters. See **PEP 570** for '
+ 'details.\n'
+ '\n'
'Parameters may have an *annotation* of the form “": '
'expression"”\n'
'following the parameter name. Any parameter may have an '
@@ -2957,10 +2957,10 @@ topics = {'assert': 'The "assert" statement\n'
'function decorators. The result is then bound to the class '
'name.\n'
'\n'
- 'Changed in version 3.9: Classes may be decorated with any valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Classes may be decorated with any valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'**Programmer’s note:** Variables defined in the class definition '
'are\n'
'class attributes; they are shared by instances. Instance '
@@ -3034,35 +3034,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' async_for_stmt ::= "async" for_stmt\n'
'\n'
- 'An *asynchronous iterable* provides an "__aiter__" method that\n'
- 'directly returns an *asynchronous iterator*, which can call\n'
- 'asynchronous code in its "__anext__" method.\n'
+ 'An *asynchronous iterable* provides an "__aiter__" method that\n'
+ 'directly returns an *asynchronous iterator*, which can call\n'
+ 'asynchronous code in its "__anext__" method.\n'
'\n'
'The "async for" statement allows convenient iteration over\n'
- 'asynchronous iterables.\n'
+ 'asynchronous iterables.\n'
'\n'
'The following code:\n'
'\n'
' async for TARGET in ITER:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'Is semantically equivalent to:\n'
'\n'
' iter = (ITER)\n'
' iter = type(iter).__aiter__(iter)\n'
' running = True\n'
- '\n'
+ '\n'
' while running:\n'
' try:\n'
' TARGET = await type(iter).__anext__(iter)\n'
' except StopAsyncIteration:\n'
' running = False\n'
' else:\n'
- ' SUITE\n'
+ ' SUITE\n'
' else:\n'
- ' SUITE2\n'
+ ' SUITE2\n'
'\n'
'See also "__aiter__()" and "__anext__()" for details.\n'
'\n'
@@ -3082,27 +3082,27 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following code:\n'
'\n'
- ' async with EXPRESSION as TARGET:\n'
- ' SUITE\n'
+ ' async with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
- ' manager = (EXPRESSION)\n'
- ' aenter = type(manager).__aenter__\n'
- ' aexit = type(manager).__aexit__\n'
- ' value = await aenter(manager)\n'
- ' hit_except = False\n'
+ ' manager = (EXPRESSION)\n'
+ ' aenter = type(manager).__aenter__\n'
+ ' aexit = type(manager).__aexit__\n'
+ ' value = await aenter(manager)\n'
+ ' hit_except = False\n'
'\n'
' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
' except:\n'
- ' hit_except = True\n'
- ' if not await aexit(manager, *sys.exc_info()):\n'
+ ' hit_except = True\n'
+ ' if not await aexit(manager, *sys.exc_info()):\n'
' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' await aexit(manager, None, None, None)\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' await aexit(manager, None, None, None)\n'
'\n'
'See also "__aenter__()" and "__aexit__()" for details.\n'
'\n'
@@ -3119,17 +3119,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] The exception is propagated to the invocation stack unless '
- 'there\n'
- ' is a "finally" clause which happens to raise another '
- 'exception.\n'
- ' That new exception causes the old one to be lost.\n'
+ '[1] The exception is propagated to the invocation stack unless '
+ 'there\n'
+ ' is a "finally" clause which happens to raise another '
+ 'exception.\n'
+ ' That new exception causes the old one to be lost.\n'
'\n'
- '[2] A string literal appearing as the first statement in the '
- 'function\n'
- ' body is transformed into the function’s "__doc__" attribute '
- 'and\n'
- ' therefore the function’s *docstring*.\n'
+ '[2] A string literal appearing as the first statement in the '
+ 'function\n'
+ ' body is transformed into the function’s "__doc__" attribute '
+ 'and\n'
+ ' therefore the function’s *docstring*.\n'
'\n'
'[3] A string literal appearing as the first statement in the '
'class\n'
@@ -3204,10 +3204,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'"continue" may only occur syntactically nested in a "for" or '
'"while"\n'
- 'loop, but not nested in a function or class definition within '
- 'that\n'
- 'loop. It continues with the next cycle of the nearest enclosing '
- 'loop.\n'
+ 'loop, but not nested in a function or class definition within '
+ 'that\n'
+ 'loop. It continues with the next cycle of the nearest enclosing '
+ 'loop.\n'
'\n'
'When "continue" passes control out of a "try" statement with a\n'
'"finally" clause, that "finally" clause is executed before '
@@ -3218,7 +3218,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'When a description of an arithmetic operator below uses the '
'phrase\n'
- '“the numeric arguments are converted to a common type”, this '
+ '“the numeric arguments are converted to a common type”, this '
'means\n'
'that the operator implementation for built-in types works as '
'follows:\n'
@@ -3228,8 +3228,8 @@ topics = {'assert': 'The "assert" statement\n'
' complex;\n'
'\n'
'* otherwise, if either argument is a floating point number, '
- 'the other\n'
- ' is converted to floating point;\n'
+ 'the other\n'
+ ' is converted to floating point;\n'
'\n'
'* otherwise, both must be integers and no conversion is '
'necessary.\n'
@@ -3267,15 +3267,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" is invoked during object construction and '
- 'it returns\n'
- ' an instance of *cls*, then the new instance’s '
- '"__init__()" method\n'
- ' will be invoked like "__init__(self[, ...])", where '
- '*self* is the\n'
- ' new instance and the remaining arguments are the same as '
- 'were\n'
- ' passed to the object constructor.\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance of *cls*, then the new instance’s '
+ '"__init__()" method\n'
+ ' will be invoked like "__init__(self[, ...])", where '
+ '*self* is the\n'
+ ' new instance and the remaining arguments are the same as '
+ 'were\n'
+ ' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, '
'then the new\n'
@@ -3339,9 +3339,9 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' objects that still exist when the interpreter exits.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "del x" doesn’t directly call "x.__del__()" — the '
+ ' Note:\n'
+ '\n'
+ ' "del x" doesn’t directly call "x.__del__()" — the '
'former\n'
' decrements the reference count for "x" by one, and the '
'latter is\n'
@@ -3365,16 +3365,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' See also: Documentation for the "gc" module.\n'
'\n'
- ' Warning:\n'
- '\n'
- ' Due to the precarious circumstances under which '
- '"__del__()"\n'
- ' methods are invoked, exceptions that occur during '
- 'their execution\n'
- ' are ignored, and a warning is printed to "sys.stderr" '
- 'instead.\n'
- ' In particular:\n'
+ ' Warning:\n'
'\n'
+ ' Due to the precarious circumstances under which '
+ '"__del__()"\n'
+ ' methods are invoked, exceptions that occur during '
+ 'their execution\n'
+ ' are ignored, and a warning is printed to "sys.stderr" '
+ 'instead.\n'
+ ' In particular:\n'
+ '\n'
' * "__del__()" can be invoked when arbitrary code is '
'being\n'
' executed, including from any arbitrary thread. If '
@@ -3386,20 +3386,20 @@ topics = {'assert': 'The "assert" statement\n'
' that gets interrupted to execute "__del__()".\n'
'\n'
' * "__del__()" can be executed during interpreter '
- 'shutdown. As a\n'
- ' consequence, the global variables it needs to access '
- '(including\n'
- ' other modules) may already have been deleted or set '
- 'to "None".\n'
- ' Python guarantees that globals whose name begins '
- 'with a single\n'
- ' underscore are deleted from their module before '
- 'other globals\n'
- ' are deleted; if no other references to such globals '
- 'exist, this\n'
- ' may help in assuring that imported modules are still '
- 'available\n'
- ' at the time when the "__del__()" method is called.\n'
+ 'shutdown. As a\n'
+ ' consequence, the global variables it needs to access '
+ '(including\n'
+ ' other modules) may already have been deleted or set '
+ 'to "None".\n'
+ ' Python guarantees that globals whose name begins '
+ 'with a single\n'
+ ' underscore are deleted from their module before '
+ 'other globals\n'
+ ' are deleted; if no other references to such globals '
+ 'exist, this\n'
+ ' may help in assuring that imported modules are still '
+ 'available\n'
+ ' at the time when the "__del__()" method is called.\n'
'\n'
'object.__repr__(self)\n'
'\n'
@@ -3460,11 +3460,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation '
'of an\n'
- ' object. The *format_spec* argument is a string that '
+ ' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
- ' of the *format_spec* argument is up to the type '
+ ' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -3484,7 +3484,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
- ' equivalent to "str(x)" rather than "format(str(x), '
+ ' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@@ -3518,21 +3518,21 @@ topics = {'assert': 'The "assert" statement\n'
' on the value to determine if the result is true or '
'false.\n'
'\n'
- ' By default, "object" implements "__eq__()" by using '
- '"is", returning\n'
- ' "NotImplemented" in the case of a false comparison: '
- '"True if x is y\n'
- ' else NotImplemented". For "__ne__()", by default it '
- 'delegates to\n'
- ' "__eq__()" and inverts the result unless it is '
- '"NotImplemented".\n'
- ' There are no other implied relationships among the '
- 'comparison\n'
- ' operators or default implementations; for example, the '
- 'truth of\n'
- ' "(x<y or x==y)" does not imply "x<=y". To automatically '
- 'generate\n'
- ' ordering operations from a single root operation, see\n'
+ ' By default, "object" implements "__eq__()" by using '
+ '"is", returning\n'
+ ' "NotImplemented" in the case of a false comparison: '
+ '"True if x is y\n'
+ ' else NotImplemented". For "__ne__()", by default it '
+ 'delegates to\n'
+ ' "__eq__()" and inverts the result unless it is '
+ '"NotImplemented".\n'
+ ' There are no other implied relationships among the '
+ 'comparison\n'
+ ' operators or default implementations; for example, the '
+ 'truth of\n'
+ ' "(x<y or x==y)" does not imply "x<=y". To automatically '
+ 'generate\n'
+ ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
' See the paragraph on "__hash__()" for some important '
@@ -3580,22 +3580,22 @@ topics = {'assert': 'The "assert" statement\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'\n'
- ' Note:\n'
- '\n'
- ' "hash()" truncates the value returned from an object’s '
- 'custom\n'
- ' "__hash__()" method to the size of a "Py_ssize_t". '
- 'This is\n'
- ' typically 8 bytes on 64-bit builds and 4 bytes on '
- '32-bit builds.\n'
- ' If an object’s "__hash__()" must interoperate on '
- 'builds of\n'
- ' different bit sizes, be sure to check the width on all '
- 'supported\n'
- ' builds. An easy way to do this is with "python -c '
- '"import sys;\n'
- ' print(sys.hash_info.width)"".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "hash()" truncates the value returned from an object’s '
+ 'custom\n'
+ ' "__hash__()" method to the size of a "Py_ssize_t". '
+ 'This is\n'
+ ' typically 8 bytes on 64-bit builds and 4 bytes on '
+ '32-bit builds.\n'
+ ' If an object’s "__hash__()" must interoperate on '
+ 'builds of\n'
+ ' different bit sizes, be sure to check the width on all '
+ 'supported\n'
+ ' builds. An easy way to do this is with "python -c '
+ '"import sys;\n'
+ ' print(sys.hash_info.width)"".\n'
+ '\n'
' If a class does not define an "__eq__()" method it '
'should not\n'
' define a "__hash__()" operation either; if it defines '
@@ -3652,24 +3652,24 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note:\n'
- '\n'
- ' By default, the "__hash__()" values of str and bytes '
- 'objects are\n'
- ' “salted” with an unpredictable random value. Although '
- 'they\n'
- ' remain constant within an individual Python process, '
- 'they are not\n'
- ' predictable between repeated invocations of '
- 'Python.This is\n'
- ' intended to provide protection against a '
- 'denial-of-service caused\n'
- ' by carefully-chosen inputs that exploit the worst '
- 'case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
- ' http://www.ocert.org/advisories/ocert-2011-003.html '
- 'for\n'
+ ' Note:\n'
+ '\n'
+ ' By default, the "__hash__()" values of str and bytes '
+ 'objects are\n'
+ ' “salted” with an unpredictable random value. Although '
+ 'they\n'
+ ' remain constant within an individual Python process, '
+ 'they are not\n'
+ ' predictable between repeated invocations of '
+ 'Python.This is\n'
+ ' intended to provide protection against a '
+ 'denial-of-service caused\n'
+ ' by carefully-chosen inputs that exploit the worst '
+ 'case\n'
+ ' performance of a dict insertion, O(n^2) complexity. '
+ 'See\n'
+ ' http://www.ocert.org/advisories/ocert-2011-003.html '
+ 'for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
' Python has never made guarantees about this ordering '
@@ -3770,16 +3770,16 @@ topics = {'assert': 'The "assert" statement\n'
'debugger will pause execution just before the first line of the\n'
'module.\n'
'\n'
- 'The typical usage to break into the debugger is to insert:\n'
+ 'The typical usage to break into the debugger is to insert:\n'
'\n'
' import pdb; pdb.set_trace()\n'
'\n'
- 'at the location you want to break into the debugger, and then '
- 'run the\n'
- 'program. You can then step through the code following this '
- 'statement,\n'
- 'and continue running without the debugger using the "continue"\n'
- 'command.\n'
+ 'at the location you want to break into the debugger, and then '
+ 'run the\n'
+ 'program. You can then step through the code following this '
+ 'statement,\n'
+ 'and continue running without the debugger using the "continue"\n'
+ 'command.\n'
'\n'
'New in version 3.7: The built-in "breakpoint()", when called '
'with\n'
@@ -3911,8 +3911,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'
+ ' 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 '
@@ -4058,7 +4058,7 @@ topics = {'assert': 'The "assert" statement\n'
'is\n'
' first hit. The arguments are the same as for "break".\n'
'\n'
- 'cl(ear) [filename:lineno | bpnumber ...]\n'
+ 'cl(ear) [filename:lineno | bpnumber ...]\n'
'\n'
' With a *filename:lineno* argument, clear all the breakpoints '
'at\n'
@@ -4068,7 +4068,7 @@ topics = {'assert': 'The "assert" statement\n'
'first\n'
' ask confirmation).\n'
'\n'
- 'disable [bpnumber ...]\n'
+ 'disable [bpnumber ...]\n'
'\n'
' Disable the breakpoints given as a space separated list of\n'
' breakpoint numbers. Disabling a breakpoint means it cannot '
@@ -4077,7 +4077,7 @@ topics = {'assert': 'The "assert" statement\n'
'breakpoint, it\n'
' remains in the list of breakpoints and can be (re-)enabled.\n'
'\n'
- 'enable [bpnumber ...]\n'
+ 'enable [bpnumber ...]\n'
'\n'
' Enable the breakpoints specified.\n'
'\n'
@@ -4248,12 +4248,12 @@ topics = {'assert': 'The "assert" statement\n'
'its\n'
' value.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "print()" can also be used, but is not a debugger command — '
- 'this\n'
- ' executes the Python "print()" function.\n'
+ ' Note:\n'
'\n'
+ ' "print()" can also be used, but is not a debugger command — '
+ 'this\n'
+ ' executes the Python "print()" function.\n'
+ '\n'
'pp expression\n'
'\n'
' Like the "p" command, except the value of the expression is '
@@ -4369,23 +4369,23 @@ topics = {'assert': 'The "assert" statement\n'
' Quit from the debugger. The program being executed is '
'aborted.\n'
'\n'
- 'debug code\n'
- '\n'
- ' Enter a recursive debugger that steps through the code '
- 'argument\n'
- ' (which is an arbitrary expression or statement to be executed '
- 'in\n'
- ' the current environment).\n'
- '\n'
- 'retval\n'
- '\n'
- ' Print the return value for the last return of a function.\n'
- '\n'
+ 'debug code\n'
+ '\n'
+ ' Enter a recursive debugger that steps through the code '
+ 'argument\n'
+ ' (which is an arbitrary expression or statement to be executed '
+ 'in\n'
+ ' the current environment).\n'
+ '\n'
+ 'retval\n'
+ '\n'
+ ' Print the return value for the last return of a function.\n'
+ '\n'
'-[ Footnotes ]-\n'
'\n'
'[1] Whether a frame is considered to originate in a certain '
- 'module is\n'
- ' determined by the "__name__" in the frame globals.\n',
+ 'module is\n'
+ ' determined by the "__name__" in the frame globals.\n',
'del': 'The "del" statement\n'
'*******************\n'
'\n'
@@ -4458,14 +4458,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'
- '\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',
+ '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'
@@ -4497,8 +4497,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@@ -4551,7 +4551,7 @@ topics = {'assert': 'The "assert" statement\n'
'terminates\n'
'execution of the program, or returns to its interactive main '
'loop. In\n'
- 'either case, it prints a stack traceback, except when the '
+ 'either case, it prints a stack traceback, except when the '
'exception is\n'
'"SystemExit".\n'
'\n'
@@ -4565,16 +4565,16 @@ topics = {'assert': 'The "assert" statement\n'
'about the\n'
'exceptional condition.\n'
'\n'
- 'Note:\n'
- '\n'
- ' Exception messages are not part of the Python API. Their '
- 'contents\n'
- ' may change from one version of Python to the next without '
- 'warning\n'
- ' and should not be relied on by code which will run under '
- 'multiple\n'
- ' versions of the interpreter.\n'
+ 'Note:\n'
'\n'
+ ' Exception messages are not part of the Python API. Their '
+ 'contents\n'
+ ' may change from one version of Python to the next without '
+ 'warning\n'
+ ' and should not be relied on by code which will run under '
+ 'multiple\n'
+ ' versions of the interpreter.\n'
+ '\n'
'See also the description of the "try" statement in section The '
'try\n'
'statement and "raise" statement in section The raise '
@@ -4583,9 +4583,9 @@ topics = {'assert': 'The "assert" statement\n'
'-[ Footnotes ]-\n'
'\n'
'[1] This limitation occurs because the code that is executed '
- 'by these\n'
- ' operations is not available at the time the module is '
- 'compiled.\n',
+ 'by these\n'
+ ' operations is not available at the time the module is '
+ 'compiled.\n',
'execmodel': 'Execution model\n'
'***************\n'
'\n'
@@ -4607,13 +4607,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. 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'
+ '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'
@@ -4721,9 +4721,9 @@ topics = {'assert': 'The "assert" statement\n'
'operations.\n'
'\n'
'If the "global" statement occurs within a block, all uses of '
- 'the names\n'
- 'specified in the statement refer to the bindings of those names '
- 'in the\n'
+ 'the names\n'
+ 'specified in the statement refer to the bindings of those names '
+ 'in the\n'
'top-level namespace. Names are resolved in the top-level '
'namespace by\n'
'searching the global namespace, i.e. the namespace of the '
@@ -4732,10 +4732,10 @@ topics = {'assert': 'The "assert" statement\n'
'namespace\n'
'of the module "builtins". The global namespace is searched '
'first. If\n'
- 'the names are not found there, the builtins namespace is '
- 'searched.\n'
- 'The "global" statement must precede all uses of the listed '
- 'names.\n'
+ 'the names are not found there, the builtins namespace is '
+ 'searched.\n'
+ 'The "global" statement must precede all uses of the listed '
+ 'names.\n'
'\n'
'The "global" statement has the same scope as a name binding '
'operation\n'
@@ -4878,7 +4878,7 @@ topics = {'assert': 'The "assert" statement\n'
'terminates\n'
'execution of the program, or returns to its interactive main '
'loop. In\n'
- 'either case, it prints a stack traceback, except when the '
+ 'either case, it prints a stack traceback, except when the '
'exception is\n'
'"SystemExit".\n'
'\n'
@@ -4892,16 +4892,16 @@ topics = {'assert': 'The "assert" statement\n'
'about the\n'
'exceptional condition.\n'
'\n'
- 'Note:\n'
- '\n'
- ' Exception messages are not part of the Python API. Their '
- 'contents\n'
- ' may change from one version of Python to the next without '
- 'warning\n'
- ' and should not be relied on by code which will run under '
- 'multiple\n'
- ' versions of the interpreter.\n'
+ 'Note:\n'
'\n'
+ ' Exception messages are not part of the Python API. Their '
+ 'contents\n'
+ ' may change from one version of Python to the next without '
+ 'warning\n'
+ ' and should not be relied on by code which will run under '
+ 'multiple\n'
+ ' versions of the interpreter.\n'
+ '\n'
'See also the description of the "try" statement in section The '
'try\n'
'statement and "raise" statement in section The raise '
@@ -4909,10 +4909,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
- '[1] This limitation occurs because the code that is executed by '
- 'these\n'
- ' operations is not available at the time the module is '
- 'compiled.\n',
+ '[1] This limitation occurs because the code that is executed by '
+ 'these\n'
+ ' operations is not available at the time the module is '
+ 'compiled.\n',
'exprlists': 'Expression lists\n'
'****************\n'
'\n'
@@ -4921,7 +4921,7 @@ topics = {'assert': 'The "assert" statement\n'
'[","]\n'
' starred_expression ::= expression | (starred_item ",")* '
'[starred_item]\n'
- ' starred_item ::= assignment_expression | "*" or_expr\n'
+ ' starred_item ::= assignment_expression | "*" or_expr\n'
'\n'
'Except when part of a list or set display, an expression list\n'
'containing at least one comma yields a tuple. The length of '
@@ -5012,7 +5012,7 @@ topics = {'assert': 'The "assert" statement\n'
'with the next item, or with the "else" clause if there is no next\n'
'item.\n'
'\n'
- 'The for-loop makes assignments to the variables in the target list.\n'
+ 'The for-loop makes assignments to the variables in the target list.\n'
'This overwrites all previous assignments to those variables '
'including\n'
'those made in the suite of the for-loop:\n'
@@ -5031,11 +5031,11 @@ topics = {'assert': 'The "assert" statement\n'
'i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, 2]".\n'
'\n'
- 'Note:\n'
- '\n'
- ' There is a subtlety when the sequence is being modified by the '
- 'loop\n'
- ' (this can only occur for mutable sequences, e.g. lists). An\n'
+ 'Note:\n'
+ '\n'
+ ' There is a subtlety when the sequence is being modified by the '
+ 'loop\n'
+ ' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used next,\n'
' and this is incremented on each iteration. When this counter has\n'
' reached the length of the sequence the loop terminates. This '
@@ -5062,11 +5062,11 @@ topics = {'assert': 'The "assert" statement\n'
'"Formatter",\n'
'subclasses can define their own format string syntax). The '
'syntax is\n'
- 'related to that of formatted string literals, but it is '
- 'less\n'
- 'sophisticated and, in particular, does not support '
- 'arbitrary\n'
- 'expressions.\n'
+ 'related to that of formatted string literals, but it is '
+ 'less\n'
+ 'sophisticated and, in particular, does not support '
+ 'arbitrary\n'
+ 'expressions.\n'
'\n'
'Format strings contain “replacement fields” surrounded by '
'curly braces\n'
@@ -5236,11 +5236,11 @@ topics = {'assert': 'The "assert" statement\n'
'only\n'
'supported by the numeric types.\n'
'\n'
- 'A general convention is that an empty format specification '
+ 'A general convention is that an empty format specification '
'produces\n'
'the same result as if you had called "str()" on the value. '
'A non-empty\n'
- 'format specification typically modifies the result.\n'
+ 'format specification typically modifies the result.\n'
'\n'
'The general form of a *standard format specifier* is:\n'
'\n'
@@ -5260,7 +5260,7 @@ topics = {'assert': 'The "assert" statement\n'
'character that can be any character and defaults to a space '
'if\n'
'omitted. It is not possible to use a literal curly brace '
- '(”"{"” or\n'
+ '(”"{"” or\n'
'“"}"”) as the *fill* character in a formatted string '
'literal or when\n'
'using the "str.format()" method. However, it is possible '
@@ -5278,7 +5278,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 '
@@ -5327,7 +5327,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 '
@@ -5351,23 +5351,23 @@ topics = {'assert': 'The "assert" statement\n'
'for the\n'
'conversion. The alternate form is defined differently for '
'different\n'
- 'types. This option is only valid for integer, float and '
- 'complex\n'
- 'types. For integers, when binary, octal, or hexadecimal '
- 'output is\n'
- 'used, this option adds the respective prefix "\'0b\'", '
- '"\'0o\'", "\'0x\'",\n'
- 'or "\'0X\'" to the output value. For float and complex the '
- 'alternate\n'
- 'form causes the result of the conversion to always contain '
- 'a decimal-\n'
- 'point character, even if no digits follow it. Normally, a '
- 'decimal-\n'
- 'point character appears in the result of these conversions '
- 'only if a\n'
- 'digit follows it. In addition, for "\'g\'" and "\'G\'" '
- 'conversions,\n'
- 'trailing zeros are not removed from the result.\n'
+ 'types. This option is only valid for integer, float and '
+ 'complex\n'
+ 'types. For integers, when binary, octal, or hexadecimal '
+ 'output is\n'
+ 'used, this option adds the respective prefix "\'0b\'", '
+ '"\'0o\'", "\'0x\'",\n'
+ 'or "\'0X\'" to the output value. For float and complex the '
+ 'alternate\n'
+ 'form causes the result of the conversion to always contain '
+ 'a decimal-\n'
+ 'point character, even if no digits follow it. Normally, a '
+ 'decimal-\n'
+ 'point character appears in the result of these conversions '
+ 'only if a\n'
+ 'digit follows it. In addition, for "\'g\'" and "\'G\'" '
+ 'conversions,\n'
+ 'trailing zeros are not removed from the result.\n'
'\n'
'The "\',\'" option signals the use of a comma for a '
'thousands separator.\n'
@@ -5392,12 +5392,12 @@ topics = {'assert': 'The "assert" statement\n'
'Changed in version 3.6: Added the "\'_\'" option (see also '
'**PEP 515**).\n'
'\n'
- '*width* is a decimal integer defining the minimum total '
- 'field width,\n'
- 'including any prefixes, separators, and other formatting '
- 'characters.\n'
- 'If not specified, then the field width will be determined '
- 'by the\n'
+ '*width* is a decimal integer defining the minimum total '
+ 'field width,\n'
+ 'including any prefixes, separators, and other formatting '
+ 'characters.\n'
+ 'If not specified, then the field width will be determined '
+ 'by the\n'
'content.\n'
'\n'
'When no explicit alignment is given, preceding the *width* '
@@ -5433,7 +5433,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 '
@@ -5453,7 +5453,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
+ '|===========|============================================================|\n'
' | "\'b\'" | Binary format. Outputs the number in '
'base 2. |\n'
' '
@@ -5480,12 +5480,12 @@ topics = {'assert': 'The "assert" statement\n'
'+-----------+------------------------------------------------------------+\n'
' | "\'X\'" | Hex format. Outputs the number in base '
'16, using upper- |\n'
- ' | | case letters for the digits above 9. In '
- 'case "\'#\'" is |\n'
- ' | | specified, the prefix "\'0x\'" will be '
- 'upper-cased to "\'0X\'" |\n'
- ' | | as '
- 'well. |\n'
+ ' | | case letters for the digits above 9. In '
+ 'case "\'#\'" is |\n'
+ ' | | specified, the prefix "\'0x\'" will be '
+ 'upper-cased to "\'0X\'" |\n'
+ ' | | as '
+ 'well. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'n\'" | Number. This is the same as "\'d\'", '
@@ -5509,8 +5509,8 @@ topics = {'assert': 'The "assert" statement\n'
'the integer\n'
'to a floating point number before formatting.\n'
'\n'
- 'The available presentation types for "float" and "Decimal" '
- 'values are:\n'
+ 'The available presentation types for "float" and "Decimal" '
+ 'values are:\n'
'\n'
' '
'+-----------+------------------------------------------------------------+\n'
@@ -5518,51 +5518,51 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
- '|===========|============================================================|\n'
- ' | "\'e\'" | Scientific notation. For a given '
- 'precision "p", formats |\n'
- ' | | the number in scientific notation with the '
- 'letter ‘e’ |\n'
- ' | | separating the coefficient from the '
- 'exponent. The |\n'
- ' | | coefficient has one digit before and "p" '
- 'digits after the |\n'
- ' | | decimal point, for a total of "p + 1" '
- 'significant digits. |\n'
- ' | | With no precision given, uses a precision '
- 'of "6" digits |\n'
- ' | | after the decimal point for "float", and '
- 'shows all |\n'
- ' | | coefficient digits for "Decimal". If no '
- 'digits follow the |\n'
- ' | | decimal point, the decimal point is also '
- 'removed unless |\n'
- ' | | the "#" option is '
- 'used. |\n'
+ '|===========|============================================================|\n'
+ ' | "\'e\'" | Scientific notation. For a given '
+ 'precision "p", formats |\n'
+ ' | | the number in scientific notation with the '
+ 'letter ‘e’ |\n'
+ ' | | separating the coefficient from the '
+ 'exponent. The |\n'
+ ' | | coefficient has one digit before and "p" '
+ 'digits after the |\n'
+ ' | | decimal point, for a total of "p + 1" '
+ 'significant digits. |\n'
+ ' | | With no precision given, uses a precision '
+ 'of "6" digits |\n'
+ ' | | after the decimal point for "float", and '
+ 'shows all |\n'
+ ' | | coefficient digits for "Decimal". If no '
+ 'digits follow the |\n'
+ ' | | decimal point, the decimal point is also '
+ 'removed unless |\n'
+ ' | | the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | "\'E\'" | Scientific notation. Same as "\'e\'" '
- 'except it uses an upper |\n'
+ ' | "\'E\'" | Scientific notation. Same as "\'e\'" '
+ 'except it uses an upper |\n'
' | | case ‘E’ as the separator '
'character. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | "\'f\'" | Fixed-point notation. For a given '
- 'precision "p", formats |\n'
- ' | | the number as a decimal number with '
- 'exactly "p" digits |\n'
- ' | | following the decimal point. With no '
- 'precision given, uses |\n'
- ' | | a precision of "6" digits after the '
- 'decimal point for |\n'
- ' | | "float", and uses a precision large enough '
- 'to show all |\n'
- ' | | coefficient digits for "Decimal". If no '
- 'digits follow the |\n'
- ' | | decimal point, the decimal point is also '
- 'removed unless |\n'
- ' | | the "#" option is '
- 'used. |\n'
+ ' | "\'f\'" | Fixed-point notation. For a given '
+ 'precision "p", formats |\n'
+ ' | | the number as a decimal number with '
+ 'exactly "p" digits |\n'
+ ' | | following the decimal point. With no '
+ 'precision given, uses |\n'
+ ' | | a precision of "6" digits after the '
+ 'decimal point for |\n'
+ ' | | "float", and uses a precision large enough '
+ 'to show all |\n'
+ ' | | coefficient digits for "Decimal". If no '
+ 'digits follow the |\n'
+ ' | | decimal point, the decimal point is also '
+ 'removed unless |\n'
+ ' | | the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'F\'" | Fixed-point notation. Same as "\'f\'", '
@@ -5578,51 +5578,51 @@ topics = {'assert': 'The "assert" statement\n'
' | | formats the result in either fixed-point '
'format or in |\n'
' | | scientific notation, depending on its '
- 'magnitude. A |\n'
- ' | | precision of "0" is treated as equivalent '
- 'to a precision |\n'
- ' | | of "1". The precise rules are as follows: '
- 'suppose that |\n'
- ' | | the result formatted with presentation '
- 'type "\'e\'" and |\n'
- ' | | precision "p-1" would have exponent '
- '"exp". Then, if "m <= |\n'
- ' | | exp < p", where "m" is -4 for floats and '
- '-6 for |\n'
- ' | | "Decimals", the number is formatted with '
- 'presentation type |\n'
- ' | | "\'f\'" and precision "p-1-exp". '
- 'Otherwise, the number is |\n'
+ 'magnitude. A |\n'
+ ' | | precision of "0" is treated as equivalent '
+ 'to a precision |\n'
+ ' | | of "1". The precise rules are as follows: '
+ 'suppose that |\n'
+ ' | | the result formatted with presentation '
+ 'type "\'e\'" and |\n'
+ ' | | precision "p-1" would have exponent '
+ '"exp". Then, if "m <= |\n'
+ ' | | exp < p", where "m" is -4 for floats and '
+ '-6 for |\n'
+ ' | | "Decimals", the number is formatted with '
+ 'presentation type |\n'
+ ' | | "\'f\'" and precision "p-1-exp". '
+ 'Otherwise, the number is |\n'
' | | formatted with presentation type "\'e\'" '
- 'and precision |\n'
- ' | | "p-1". In both cases insignificant '
- 'trailing zeros are |\n'
- ' | | removed from the significand, and the '
- 'decimal point is |\n'
- ' | | also removed if there are no remaining '
- 'digits following |\n'
- ' | | it, unless the "\'#\'" option is used. '
- 'With no precision |\n'
- ' | | given, uses a precision of "6" significant '
- 'digits for |\n'
- ' | | "float". For "Decimal", the coefficient of '
- 'the result is |\n'
- ' | | formed from the coefficient digits of the '
- 'value; |\n'
- ' | | scientific notation is used for values '
- 'smaller than "1e-6" |\n'
- ' | | in absolute value and values where the '
- 'place value of the |\n'
- ' | | least significant digit is larger than 1, '
- 'and fixed-point |\n'
- ' | | notation is used otherwise. Positive and '
- 'negative |\n'
- ' | | infinity, positive and negative zero, and '
- 'nans, are |\n'
- ' | | formatted as "inf", "-inf", "0", "-0" and '
- '"nan" |\n'
- ' | | respectively, regardless of the '
- 'precision. |\n'
+ 'and precision |\n'
+ ' | | "p-1". In both cases insignificant '
+ 'trailing zeros are |\n'
+ ' | | removed from the significand, and the '
+ 'decimal point is |\n'
+ ' | | also removed if there are no remaining '
+ 'digits following |\n'
+ ' | | it, unless the "\'#\'" option is used. '
+ 'With no precision |\n'
+ ' | | given, uses a precision of "6" significant '
+ 'digits for |\n'
+ ' | | "float". For "Decimal", the coefficient of '
+ 'the result is |\n'
+ ' | | formed from the coefficient digits of the '
+ 'value; |\n'
+ ' | | scientific notation is used for values '
+ 'smaller than "1e-6" |\n'
+ ' | | in absolute value and values where the '
+ 'place value of the |\n'
+ ' | | least significant digit is larger than 1, '
+ 'and fixed-point |\n'
+ ' | | notation is used otherwise. Positive and '
+ 'negative |\n'
+ ' | | infinity, positive and negative zero, and '
+ 'nans, are |\n'
+ ' | | formatted as "inf", "-inf", "0", "-0" and '
+ '"nan" |\n'
+ ' | | respectively, regardless of the '
+ 'precision. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'G\'" | General format. Same as "\'g\'" except '
@@ -5647,24 +5647,24 @@ topics = {'assert': 'The "assert" statement\n'
'percent sign. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
- ' | None | For "float" this is the same as "\'g\'", '
- 'except that when |\n'
- ' | | fixed-point notation is used to format the '
- 'result, it |\n'
- ' | | always includes at least one digit past '
- 'the decimal point. |\n'
- ' | | The precision used is as large as needed '
- 'to represent the |\n'
- ' | | given value faithfully. For "Decimal", '
- 'this is the same |\n'
- ' | | as either "\'g\'" or "\'G\'" depending on '
- 'the value of |\n'
- ' | | "context.capitals" for the current decimal '
- 'context. The |\n'
- ' | | overall effect is to match the output of '
- '"str()" as |\n'
- ' | | altered by the other format '
- 'modifiers. |\n'
+ ' | None | For "float" this is the same as "\'g\'", '
+ 'except that when |\n'
+ ' | | fixed-point notation is used to format the '
+ 'result, it |\n'
+ ' | | always includes at least one digit past '
+ 'the decimal point. |\n'
+ ' | | The precision used is as large as needed '
+ 'to represent the |\n'
+ ' | | given value faithfully. For "Decimal", '
+ 'this is the same |\n'
+ ' | | as either "\'g\'" or "\'G\'" depending on '
+ 'the value of |\n'
+ ' | | "context.capitals" for the current decimal '
+ 'context. The |\n'
+ ' | | overall effect is to match the output of '
+ '"str()" as |\n'
+ ' | | altered by the other format '
+ 'modifiers. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
'\n'
@@ -5836,24 +5836,24 @@ topics = {'assert': 'The "assert" statement\n'
'(see\n'
'section The standard type hierarchy):\n'
'\n'
- ' funcdef ::= [decorators] "def" funcname "(" '
+ ' funcdef ::= [decorators] "def" funcname "(" '
'[parameter_list] ")"\n'
' ["->" expression] ":" suite\n'
- ' decorators ::= decorator+\n'
- ' decorator ::= "@" assignment_expression '
- 'NEWLINE\n'
- ' parameter_list ::= defparameter ("," '
- 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
- ' | parameter_list_no_posonly\n'
- ' parameter_list_no_posonly ::= defparameter ("," '
- 'defparameter)* ["," [parameter_list_starargs]]\n'
- ' | parameter_list_starargs\n'
- ' parameter_list_starargs ::= "*" [parameter] ("," '
+ ' decorators ::= decorator+\n'
+ ' decorator ::= "@" assignment_expression '
+ 'NEWLINE\n'
+ ' parameter_list ::= defparameter ("," '
+ 'defparameter)* "," "/" ["," [parameter_list_no_posonly]]\n'
+ ' | parameter_list_no_posonly\n'
+ ' parameter_list_no_posonly ::= defparameter ("," '
+ 'defparameter)* ["," [parameter_list_starargs]]\n'
+ ' | parameter_list_starargs\n'
+ ' parameter_list_starargs ::= "*" [parameter] ("," '
'defparameter)* ["," ["**" parameter [","]]]\n'
' | "**" parameter [","]\n'
- ' parameter ::= identifier [":" expression]\n'
- ' defparameter ::= parameter ["=" expression]\n'
- ' funcname ::= identifier\n'
+ ' parameter ::= identifier [":" expression]\n'
+ ' defparameter ::= parameter ["=" expression]\n'
+ ' funcname ::= identifier\n'
'\n'
'A function definition is an executable statement. Its execution '
'binds\n'
@@ -5894,11 +5894,11 @@ topics = {'assert': 'The "assert" statement\n'
'the name\n'
'"func".\n'
'\n'
- 'Changed in version 3.9: Functions may be decorated with any '
- 'valid\n'
- '"assignment_expression". Previously, the grammar was much more\n'
- 'restrictive; see **PEP 614** for details.\n'
- '\n'
+ 'Changed in version 3.9: Functions may be decorated with any '
+ 'valid\n'
+ '"assignment_expression". Previously, the grammar was much more\n'
+ 'restrictive; see **PEP 614** for details.\n'
+ '\n'
'When one or more *parameters* have the form *parameter* "="\n'
'*expression*, the function is said to have “default parameter '
'values.”\n'
@@ -5941,7 +5941,7 @@ topics = {'assert': 'The "assert" statement\n'
'Calls.\n'
'A function call always assigns values to all parameters '
'mentioned in\n'
- 'the parameter list, either from positional arguments, from '
+ 'the parameter list, either from positional arguments, from '
'keyword\n'
'arguments, or from default values. If the form “"*identifier"” '
'is\n'
@@ -5953,15 +5953,15 @@ topics = {'assert': 'The "assert" statement\n'
'new\n'
'empty mapping of the same type. Parameters after “"*"” or\n'
'“"*identifier"” are keyword-only parameters and may only be '
- 'passed by\n'
- 'keyword arguments. Parameters before “"/"” are positional-only\n'
- 'parameters and may only be passed by positional arguments.\n'
- '\n'
- 'Changed in version 3.8: The "/" function parameter syntax may be '
- 'used\n'
- 'to indicate positional-only parameters. See **PEP 570** for '
- 'details.\n'
- '\n'
+ 'passed by\n'
+ 'keyword arguments. Parameters before “"/"” are positional-only\n'
+ 'parameters and may only be passed by positional arguments.\n'
+ '\n'
+ 'Changed in version 3.8: The "/" function parameter syntax may be '
+ 'used\n'
+ 'to indicate positional-only parameters. See **PEP 570** for '
+ 'details.\n'
+ '\n'
'Parameters may have an *annotation* of the form “": '
'expression"”\n'
'following the parameter name. Any parameter may have an '
@@ -6095,26 +6095,26 @@ topics = {'assert': 'The "assert" statement\n'
'defined.\n'
' See section The import statement.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The name "_" is often used in conjunction with\n'
+ ' Note:\n'
+ '\n'
+ ' The name "_" is often used in conjunction with\n'
' internationalization; refer to the documentation for the\n'
' "gettext" module for more information on this '
'convention.\n'
'\n'
'"__*__"\n'
- ' System-defined names, informally known as “dunder” names. '
- 'These\n'
- ' names are defined by the interpreter and its '
- 'implementation\n'
- ' (including the standard library). Current system names are\n'
- ' discussed in the Special method names section and '
- 'elsewhere. More\n'
- ' will likely be defined in future versions of Python. *Any* '
- 'use of\n'
- ' "__*__" names, in any context, that does not follow '
- 'explicitly\n'
- ' documented use, is subject to breakage without warning.\n'
+ ' System-defined names, informally known as “dunder” names. '
+ 'These\n'
+ ' names are defined by the interpreter and its '
+ 'implementation\n'
+ ' (including the standard library). Current system names are\n'
+ ' discussed in the Special method names section and '
+ 'elsewhere. More\n'
+ ' will likely be defined in future versions of Python. *Any* '
+ 'use of\n'
+ ' "__*__" names, in any context, that does not follow '
+ 'explicitly\n'
+ ' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@@ -6201,8 +6201,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'A non-normative HTML file listing all valid identifier '
'characters for\n'
- 'Unicode 4.1 can be found at\n'
- 'https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt\n'
+ 'Unicode 4.1 can be found at\n'
+ 'https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt\n'
'\n'
'\n'
'Keywords\n'
@@ -6243,28 +6243,28 @@ topics = {'assert': 'The "assert" statement\n'
'defined.\n'
' See section The import statement.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The name "_" is often used in conjunction with\n'
+ ' Note:\n'
+ '\n'
+ ' The name "_" is often used in conjunction with\n'
' internationalization; refer to the documentation for '
'the\n'
' "gettext" module for more information on this '
'convention.\n'
'\n'
'"__*__"\n'
- ' System-defined names, informally known as “dunder” names. '
- 'These\n'
- ' names are defined by the interpreter and its '
- 'implementation\n'
- ' (including the standard library). Current system names '
- 'are\n'
- ' discussed in the Special method names section and '
- 'elsewhere. More\n'
- ' will likely be defined in future versions of Python. '
- '*Any* use of\n'
- ' "__*__" names, in any context, that does not follow '
- 'explicitly\n'
- ' documented use, is subject to breakage without warning.\n'
+ ' System-defined names, informally known as “dunder” names. '
+ 'These\n'
+ ' names are defined by the interpreter and its '
+ 'implementation\n'
+ ' (including the standard library). Current system names '
+ 'are\n'
+ ' discussed in the Special method names section and '
+ 'elsewhere. More\n'
+ ' will likely be defined in future versions of Python. '
+ '*Any* use of\n'
+ ' "__*__" names, in any context, that does not follow '
+ 'explicitly\n'
+ ' documented use, is subject to breakage without warning.\n'
'\n'
'"__*"\n'
' Class-private names. Names in this category, when used '
@@ -6279,8 +6279,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "if" statement is used for conditional execution:\n'
'\n'
- ' if_stmt ::= "if" assignment_expression ":" suite\n'
- ' ("elif" assignment_expression ":" suite)*\n'
+ ' if_stmt ::= "if" assignment_expression ":" suite\n'
+ ' ("elif" assignment_expression ":" suite)*\n'
' ["else" ":" suite]\n'
'\n'
'It selects exactly one of the suites by evaluating the expressions '
@@ -6321,7 +6321,7 @@ topics = {'assert': 'The "assert" statement\n'
' | "from" relative_module "import" "(" '
'identifier ["as" identifier]\n'
' ("," identifier ["as" identifier])* [","] ")"\n'
- ' | "from" relative_module "import" "*"\n'
+ ' | "from" relative_module "import" "*"\n'
' module ::= (identifier ".")* identifier\n'
' relative_module ::= "."* module | "."+\n'
'\n'
@@ -6330,9 +6330,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'1. find a module, loading and initializing it if necessary\n'
'\n'
- '2. define a name or names in the local namespace for the scope '
- 'where\n'
- ' the "import" statement occurs.\n'
+ '2. define a name or names in the local namespace for the scope '
+ 'where\n'
+ ' the "import" statement occurs.\n'
'\n'
'When the statement contains multiple clauses (separated by commas) '
'the\n'
@@ -6358,9 +6358,9 @@ topics = {'assert': 'The "assert" statement\n'
'made\n'
'available in the local namespace in one of three ways:\n'
'\n'
- '* If the module name is followed by "as", then the name following '
- '"as"\n'
- ' is bound directly to the imported module.\n'
+ '* If the module name is followed by "as", then the name following '
+ '"as"\n'
+ ' is bound directly to the imported module.\n'
'\n'
'* If no other name is specified, and the module being imported is '
'a\n'
@@ -6460,18 +6460,18 @@ topics = {'assert': 'The "assert" statement\n'
'end up importing "pkg.mod". If you execute "from ..subpkg2 import '
'mod"\n'
'from within "pkg.subpkg1" you will import "pkg.subpkg2.mod". The\n'
- 'specification for relative imports is contained in the Package\n'
- 'Relative Imports section.\n'
+ 'specification for relative imports is contained in the Package\n'
+ 'Relative Imports section.\n'
'\n'
'"importlib.import_module()" is provided to support applications '
'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'
+ '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'
'\n'
@@ -6509,8 +6509,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* other future statements.\n'
'\n'
- 'The only feature that requires using the future statement is\n'
- '"annotations" (see **PEP 563**).\n'
+ 'The only feature that requires using the future statement is\n'
+ '"annotations" (see **PEP 563**).\n'
'\n'
'All historical features enabled by the future statement are still\n'
'recognized by Python 3. The list includes "absolute_import",\n'
@@ -6602,19 +6602,19 @@ topics = {'assert': 'The "assert" statement\n'
'"False" otherwise.\n'
'\n'
'For user-defined classes which do not define "__contains__()" but do\n'
- 'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
- 'the expression "x is z or x == z" is true, is produced while '
- 'iterating\n'
- 'over "y". If an exception is raised during the iteration, it is as if\n'
- '"in" raised that exception.\n'
+ 'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
+ 'the expression "x is z or x == z" is true, is produced while '
+ 'iterating\n'
+ 'over "y". If an exception is raised during the iteration, it is as if\n'
+ '"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a non-\n'
- 'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
- 'lower integer index raises the "IndexError" exception. (If any other\n'
+ 'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
+ 'lower integer index raises the "IndexError" exception. (If any other\n'
'exception is raised, it is as if "in" raised that exception).\n'
'\n'
- 'The operator "not in" is defined to have the inverse truth value of\n'
+ 'The operator "not in" is defined to have the inverse truth value of\n'
'"in".\n',
'integers': 'Integer literals\n'
'****************\n'
@@ -6665,7 +6665,7 @@ topics = {'assert': 'The "assert" statement\n'
'lambda': 'Lambdas\n'
'*******\n'
'\n'
- ' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
+ ' lambda_expr ::= "lambda" [parameter_list] ":" expression\n'
'\n'
'Lambda expressions (sometimes called lambda forms) are used to '
'create\n'
@@ -6793,8 +6793,8 @@ topics = {'assert': 'The "assert" statement\n'
'operations.\n'
'\n'
'If the "global" statement occurs within a block, all uses of the '
- 'names\n'
- 'specified in the statement refer to the bindings of those names in '
+ 'names\n'
+ 'specified in the statement refer to the bindings of those names in '
'the\n'
'top-level namespace. Names are resolved in the top-level '
'namespace by\n'
@@ -6803,9 +6803,9 @@ topics = {'assert': 'The "assert" statement\n'
'namespace\n'
'of the module "builtins". The global namespace is searched '
'first. If\n'
- 'the names are not found there, the builtins namespace is '
- 'searched.\n'
- 'The "global" statement must precede all uses of the listed names.\n'
+ 'the names are not found there, the builtins namespace is '
+ 'searched.\n'
+ 'The "global" statement must precede all uses of the listed names.\n'
'\n'
'The "global" statement has the same scope as a name binding '
'operation\n'
@@ -6945,7 +6945,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Note that numeric literals do not include a sign; a phrase like '
'"-1"\n'
- 'is actually an expression composed of the unary operator ‘"-"’ '
+ 'is actually an expression composed of the unary operator ‘"-"’ '
'and the\n'
'literal "1".\n',
'numeric-types': 'Emulating numeric types\n'
@@ -7006,7 +7006,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other[, modulo])\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -7035,19 +7035,19 @@ topics = {'assert': 'The "assert" statement\n'
'"__rpow__()" (the\n'
' coercion rules would become too complicated).\n'
'\n'
- ' Note:\n'
- '\n'
- ' If the right operand’s type is a subclass of the left '
- 'operand’s\n'
- ' type and that subclass provides a different '
- 'implementation of the\n'
- ' reflected method for the operation, this method will '
- 'be called\n'
- ' before the left operand’s non-reflected method. This '
- 'behavior\n'
- ' allows subclasses to override their ancestors’ '
- 'operations.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' If the right operand’s type is a subclass of the left '
+ 'operand’s\n'
+ ' type and that subclass provides a different '
+ 'implementation of the\n'
+ ' reflected method for the operation, this method will '
+ 'be called\n'
+ ' before the left operand’s non-reflected method. This '
+ 'behavior\n'
+ ' allows subclasses to override their ancestors’ '
+ 'operations.\n'
+ '\n'
'object.__iadd__(self, other)\n'
'object.__isub__(self, other)\n'
'object.__imul__(self, other)\n'
@@ -7090,16 +7090,16 @@ topics = {'assert': 'The "assert" statement\n'
'the data\n'
' model.\n'
'\n'
- ' Note:\n'
- '\n'
- ' Due to a bug in the dispatching mechanism for "**=", a '
- 'class that\n'
- ' defines "__ipow__()" but returns "NotImplemented" '
- 'would fail to\n'
- ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
- 'bug is\n'
- ' fixed in Python 3.10.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' Due to a bug in the dispatching mechanism for "**=", a '
+ 'class that\n'
+ ' defines "__ipow__()" but returns "NotImplemented" '
+ 'would fail to\n'
+ ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
+ 'bug is\n'
+ ' fixed in Python 3.10.\n'
+ '\n'
'object.__neg__(self)\n'
'object.__pos__(self)\n'
'object.__abs__(self)\n'
@@ -7130,11 +7130,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
- ' If "__int__()", "__float__()" and "__complex__()" are '
- 'not defined\n'
- ' then corresponding built-in functions "int()", "float()" '
- 'and\n'
- ' "complex()" fall back to "__index__()".\n'
+ ' If "__int__()", "__float__()" and "__complex__()" are '
+ 'not defined\n'
+ ' then corresponding built-in functions "int()", "float()" '
+ 'and\n'
+ ' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -7150,9 +7150,9 @@ topics = {'assert': 'The "assert" statement\n'
' of the object truncated to an "Integral" (typically an '
'"int").\n'
'\n'
- ' The built-in function "int()" falls back to '
- '"__trunc__()" if\n'
- ' neither "__int__()" nor "__index__()" is defined.\n',
+ ' The built-in function "int()" falls back to '
+ '"__trunc__()" if\n'
+ ' neither "__int__()" nor "__index__()" is defined.\n',
'objects': 'Objects, values and types\n'
'*************************\n'
'\n'
@@ -7161,7 +7161,7 @@ topics = {'assert': 'The "assert" statement\n'
'program is represented by objects or by relations between '
'objects. (In\n'
'a sense, and in conformance to Von Neumann’s model of a “stored\n'
- 'program computer”, code is also represented by objects.)\n'
+ 'program computer”, code is also represented by objects.)\n'
'\n'
'Every object has an identity, a type and a value. An object’s\n'
'*identity* never changes once it has been created; you may think '
@@ -7286,8 +7286,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following table summarizes the operator precedence '
'in Python, from\n'
- 'highest precedence (most binding) to lowest precedence '
- '(least\n'
+ 'highest precedence (most binding) to lowest precedence '
+ '(least\n'
'binding). Operators in the same box have the same '
'precedence. Unless\n'
'the syntax is explicitly given, operators are binary. '
@@ -7305,79 +7305,79 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------------------------------------+---------------------------------------+\n'
'| Operator | '
'Description |\n'
- '|=================================================|=======================================|\n'
- '| "(expressions...)", "[expressions...]", "{key: | '
- 'Binding or parenthesized expression, |\n'
- '| value...}", "{expressions...}" | list '
- 'display, dictionary display, set |\n'
- '| | '
- 'display |\n'
- '+-------------------------------------------------+---------------------------------------+\n'
- '| "x[index]", "x[index:index]", | '
- 'Subscription, slicing, call, |\n'
- '| "x(arguments...)", "x.attribute" | '
- 'attribute reference |\n'
+ '|=================================================|=======================================|\n'
+ '| "(expressions...)", "[expressions...]", "{key: | '
+ 'Binding or parenthesized expression, |\n'
+ '| value...}", "{expressions...}" | list '
+ 'display, dictionary display, set |\n'
+ '| | '
+ 'display |\n'
+ '+-------------------------------------------------+---------------------------------------+\n'
+ '| "x[index]", "x[index:index]", | '
+ 'Subscription, slicing, call, |\n'
+ '| "x(arguments...)", "x.attribute" | '
+ 'attribute reference |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "await" "x" | '
- 'Await expression |\n'
+ '| "await" "x" | '
+ 'Await expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "**" | '
- 'Exponentiation [5] |\n'
+ '| "**" | '
+ 'Exponentiation [5] |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "+x", "-x", "~x" | '
- 'Positive, negative, bitwise NOT |\n'
+ '| "+x", "-x", "~x" | '
+ 'Positive, negative, bitwise NOT |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "*", "@", "/", "//", "%" | '
- 'Multiplication, matrix |\n'
- '| | '
- 'multiplication, division, floor |\n'
- '| | '
- 'division, remainder [6] |\n'
+ '| "*", "@", "/", "//", "%" | '
+ 'Multiplication, matrix |\n'
+ '| | '
+ 'multiplication, division, floor |\n'
+ '| | '
+ 'division, remainder [6] |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "+", "-" | '
- 'Addition and subtraction |\n'
+ '| "+", "-" | '
+ 'Addition and subtraction |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "<<", ">>" | '
- 'Shifts |\n'
- '+-------------------------------------------------+---------------------------------------+\n'
- '| "&" | '
- 'Bitwise AND |\n'
+ '| "<<", ">>" | '
+ 'Shifts |\n'
'+-------------------------------------------------+---------------------------------------+\n'
+ '| "&" | '
+ 'Bitwise AND |\n'
+ '+-------------------------------------------------+---------------------------------------+\n'
'| "^" | '
'Bitwise XOR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "|" | '
- 'Bitwise OR |\n'
+ '| "|" | '
+ 'Bitwise OR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "in", "not in", "is", "is not", "<", "<=", ">", | '
- 'Comparisons, including membership |\n'
- '| ">=", "!=", "==" | '
- 'tests and identity tests |\n'
+ '| "in", "not in", "is", "is not", "<", "<=", ">", | '
+ 'Comparisons, including membership |\n'
+ '| ">=", "!=", "==" | '
+ 'tests and identity tests |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "not" "x" | '
- 'Boolean NOT |\n'
+ '| "not" "x" | '
+ 'Boolean NOT |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "and" | '
- 'Boolean AND |\n'
+ '| "and" | '
+ 'Boolean AND |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "or" | '
- 'Boolean OR |\n'
+ '| "or" | '
+ 'Boolean OR |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "if" – "else" | '
- 'Conditional expression |\n'
+ '| "if" – "else" | '
+ 'Conditional expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| "lambda" | '
- 'Lambda expression |\n'
+ '| "lambda" | '
+ 'Lambda expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
- '| ":=" | '
- 'Assignment expression |\n'
+ '| ":=" | '
+ 'Assignment expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
'\n'
'-[ Footnotes ]-\n'
'\n'
'[1] While "abs(x%y) < abs(y)" is true mathematically, '
- 'for floats it\n'
- ' may not be true numerically due to roundoff. For '
+ 'for floats it\n'
+ ' may not be true numerically due to roundoff. For '
'example, and\n'
' assuming a platform on which a Python float is an '
'IEEE 754 double-\n'
@@ -7442,23 +7442,23 @@ topics = {'assert': 'The "assert" statement\n'
'"unicodedata.normalize()".\n'
'\n'
'[4] Due to automatic garbage-collection, free lists, and '
- 'the dynamic\n'
- ' nature of descriptors, you may notice seemingly '
- 'unusual behaviour\n'
- ' in certain uses of the "is" operator, like those '
- 'involving\n'
- ' comparisons between instance methods, or constants. '
- 'Check their\n'
- ' documentation for more info.\n'
- '\n'
- '[5] The power operator "**" binds less tightly than an '
- 'arithmetic or\n'
- ' bitwise unary operator on its right, that is, '
- '"2**-1" is "0.5".\n'
+ 'the dynamic\n'
+ ' nature of descriptors, you may notice seemingly '
+ 'unusual behaviour\n'
+ ' in certain uses of the "is" operator, like those '
+ 'involving\n'
+ ' comparisons between instance methods, or constants. '
+ 'Check their\n'
+ ' documentation for more info.\n'
'\n'
- '[6] The "%" operator is also used for string formatting; '
- 'the same\n'
- ' precedence applies.\n',
+ '[5] The power operator "**" binds less tightly than an '
+ 'arithmetic or\n'
+ ' bitwise unary operator on its right, that is, '
+ '"2**-1" is "0.5".\n'
+ '\n'
+ '[6] The "%" operator is also used for string formatting; '
+ 'the same\n'
+ ' precedence applies.\n',
'pass': 'The "pass" statement\n'
'********************\n'
'\n'
@@ -7506,10 +7506,10 @@ topics = {'assert': 'The "assert" statement\n'
'"ZeroDivisionError".\n'
'Raising a negative number to a fractional power results in a '
'"complex"\n'
- 'number. (In earlier versions it raised a "ValueError".)\n'
- '\n'
- 'This operation can be customized using the special "__pow__()" '
- 'method.\n',
+ 'number. (In earlier versions it raised a "ValueError".)\n'
+ '\n'
+ 'This operation can be customized using the special "__pow__()" '
+ 'method.\n',
'raise': 'The "raise" statement\n'
'*********************\n'
'\n'
@@ -7546,18 +7546,18 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The "from" clause is used for exception chaining: if given, the '
'second\n'
- '*expression* must be another exception class or instance. If the\n'
- 'second expression is an exception instance, it will be attached to '
- 'the\n'
- 'raised exception as the "__cause__" attribute (which is writable). '
- 'If\n'
- 'the expression is an exception class, the class will be '
- 'instantiated\n'
- 'and the resulting exception instance will be attached to the '
- 'raised\n'
- 'exception as the "__cause__" attribute. If the raised exception is '
- 'not\n'
- 'handled, both exceptions will be printed:\n'
+ '*expression* must be another exception class or instance. If the\n'
+ 'second expression is an exception instance, it will be attached to '
+ 'the\n'
+ 'raised exception as the "__cause__" attribute (which is writable). '
+ 'If\n'
+ 'the expression is an exception class, the class will be '
+ 'instantiated\n'
+ 'and the resulting exception instance will be attached to the '
+ 'raised\n'
+ 'exception as the "__cause__" attribute. If the raised exception is '
+ 'not\n'
+ 'handled, both exceptions will be printed:\n'
'\n'
' >>> try:\n'
' ... print(1 / 0)\n'
@@ -7661,62 +7661,62 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following methods can be defined to implement '
'container objects.\n'
- 'Containers usually are *sequences* (such as "lists" or '
- '"tuples") or\n'
- '*mappings* (like "dictionaries"), but can represent other '
- 'containers\n'
- 'as well. The first set of methods is used either to '
- 'emulate a\n'
- 'sequence or to emulate a mapping; the difference is that '
- 'for a\n'
- 'sequence, the allowable keys should be the integers *k* '
- 'for which "0\n'
- '<= k < N" where *N* is the length of the sequence, or '
- '"slice" objects,\n'
- 'which define a range of items. It is also recommended '
- 'that mappings\n'
- 'provide the methods "keys()", "values()", "items()", '
- '"get()",\n'
- '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
- 'and\n'
- '"update()" behaving similar to those for Python’s '
- 'standard\n'
- '"dictionary" objects. The "collections.abc" module '
- 'provides a\n'
- '"MutableMapping" *abstract base class* to help create '
- 'those methods\n'
- 'from a base set of "__getitem__()", "__setitem__()", '
- '"__delitem__()",\n'
- 'and "keys()". Mutable sequences should provide methods '
- '"append()",\n'
- '"count()", "index()", "extend()", "insert()", "pop()", '
- '"remove()",\n'
- '"reverse()" and "sort()", like Python standard "list" '
+ 'Containers usually are *sequences* (such as "lists" or '
+ '"tuples") or\n'
+ '*mappings* (like "dictionaries"), but can represent other '
+ 'containers\n'
+ 'as well. The first set of methods is used either to '
+ 'emulate a\n'
+ 'sequence or to emulate a mapping; the difference is that '
+ 'for a\n'
+ 'sequence, the allowable keys should be the integers *k* '
+ 'for which "0\n'
+ '<= k < N" where *N* is the length of the sequence, or '
+ '"slice" objects,\n'
+ 'which define a range of items. It is also recommended '
+ 'that mappings\n'
+ 'provide the methods "keys()", "values()", "items()", '
+ '"get()",\n'
+ '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
+ 'and\n'
+ '"update()" behaving similar to those for Python’s '
+ 'standard\n'
+ '"dictionary" objects. The "collections.abc" module '
+ 'provides a\n'
+ '"MutableMapping" *abstract base class* to help create '
+ 'those methods\n'
+ 'from a base set of "__getitem__()", "__setitem__()", '
+ '"__delitem__()",\n'
+ 'and "keys()". Mutable sequences should provide methods '
+ '"append()",\n'
+ '"count()", "index()", "extend()", "insert()", "pop()", '
+ '"remove()",\n'
+ '"reverse()" and "sort()", like Python standard "list" '
'objects.\n'
- 'Finally, sequence types should implement addition '
+ 'Finally, sequence types should implement addition '
'(meaning\n'
- 'concatenation) and multiplication (meaning repetition) by '
- 'defining the\n'
- 'methods "__add__()", "__radd__()", "__iadd__()", '
- '"__mul__()",\n'
- '"__rmul__()" and "__imul__()" described below; they should '
- 'not define\n'
- 'other numerical operators. It is recommended that both '
- 'mappings and\n'
- 'sequences implement the "__contains__()" method to allow '
- 'efficient use\n'
- 'of the "in" operator; for mappings, "in" should search the '
- 'mapping’s\n'
- 'keys; for sequences, it should search through the values. '
+ 'concatenation) and multiplication (meaning repetition) by '
+ 'defining the\n'
+ 'methods "__add__()", "__radd__()", "__iadd__()", '
+ '"__mul__()",\n'
+ '"__rmul__()" and "__imul__()" described below; they should '
+ 'not define\n'
+ 'other numerical operators. It is recommended that both '
+ 'mappings and\n'
+ 'sequences implement the "__contains__()" method to allow '
+ 'efficient use\n'
+ 'of the "in" operator; for mappings, "in" should search the '
+ 'mapping’s\n'
+ 'keys; for sequences, it should search through the values. '
'It is\n'
- 'further recommended that both mappings and sequences '
- 'implement the\n'
- '"__iter__()" method to allow efficient iteration through '
+ 'further recommended that both mappings and sequences '
+ 'implement the\n'
+ '"__iter__()" method to allow efficient iteration through '
'the\n'
- 'container; for mappings, "__iter__()" should iterate '
- 'through the\n'
- 'object’s keys; for sequences, it should iterate through '
- 'the values.\n'
+ 'container; for mappings, "__iter__()" should iterate '
+ 'through the\n'
+ 'object’s keys; for sequences, it should iterate through '
+ 'the values.\n'
'\n'
'object.__len__(self)\n'
'\n'
@@ -7746,23 +7746,23 @@ 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. 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'
+ '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'
'\n'
' New in version 3.4.\n'
'\n'
- 'Note:\n'
- '\n'
- ' Slicing is done exclusively with the following three '
- 'methods. A\n'
- ' call like\n'
+ 'Note:\n'
'\n'
+ ' Slicing is done exclusively with the following three '
+ 'methods. A\n'
+ ' call like\n'
+ '\n'
' a[1:2] = b\n'
'\n'
' is translated to\n'
@@ -7775,42 +7775,42 @@ topics = {'assert': 'The "assert" statement\n'
'object.__getitem__(self, key)\n'
'\n'
' Called to implement evaluation of "self[key]". For '
- '*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative '
- 'indexes (if the\n'
- ' class wishes to emulate a *sequence* type) is up to '
+ '*sequence*\n'
+ ' types, the accepted keys should be integers and slice '
+ 'objects.\n'
+ ' Note that the special interpretation of negative '
+ 'indexes (if the\n'
+ ' class wishes to emulate a *sequence* type) is up to '
'the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the '
- 'set of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
- 'should be\n'
- ' raised.\n'
- '\n'
- ' Note:\n'
- '\n'
- ' "for" loops expect that an "IndexError" will be '
+ ' "__getitem__()" method. If *key* is of an inappropriate '
+ 'type,\n'
+ ' "TypeError" may be raised; if of a value outside the '
+ 'set of indexes\n'
+ ' for the sequence (after any special interpretation of '
+ 'negative\n'
+ ' values), "IndexError" should be raised. For *mapping* '
+ 'types, if\n'
+ ' *key* is missing (not in the container), "KeyError" '
+ 'should be\n'
+ ' raised.\n'
+ '\n'
+ ' Note:\n'
+ '\n'
+ ' "for" loops expect that an "IndexError" will be '
'raised for\n'
' illegal indexes to allow proper detection of the end '
'of the\n'
' sequence.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When subscripting a *class*, the special class '
- 'method\n'
- ' "__class_getitem__()" may be called instead of '
- '"__getitem__()".\n'
- ' See __class_getitem__ versus __getitem__ for more '
- 'details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' When subscripting a *class*, the special class '
+ 'method\n'
+ ' "__class_getitem__()" may be called instead of '
+ '"__getitem__()".\n'
+ ' See __class_getitem__ versus __getitem__ for more '
+ 'details.\n'
+ '\n'
'object.__setitem__(self, key, value)\n'
'\n'
' Called to implement assignment to "self[key]". Same '
@@ -7883,12 +7883,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 container. 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 '
- 'iterable.\n'
+ 'iterable.\n'
'\n'
'object.__contains__(self, item)\n'
'\n'
@@ -7921,10 +7921,10 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
'second argument.\n'
'\n'
- 'This operation can be customized using the special '
- '"__lshift__()" and\n'
- '"__rshift__()" methods.\n'
- '\n'
+ 'This operation can be customized using the special '
+ '"__lshift__()" and\n'
+ '"__rshift__()" methods.\n'
+ '\n'
'A right shift by *n* bits is defined as floor division by '
'"pow(2,n)".\n'
'A left shift by *n* bits is defined as multiplication with '
@@ -8037,7 +8037,7 @@ topics = {'assert': 'The "assert" statement\n'
'immediate\n'
' subclasses. This method returns a list of all those '
'references\n'
- ' still alive. The list is in definition order. Example:\n'
+ ' still alive. The list is in definition order. Example:\n'
'\n'
' >>> int.__subclasses__()\n'
" [<class 'bool'>]\n"
@@ -8045,26 +8045,26 @@ topics = {'assert': 'The "assert" statement\n'
'-[ Footnotes ]-\n'
'\n'
'[1] Additional information on these special methods may be '
- 'found in\n'
- ' the Python Reference Manual (Basic customization).\n'
+ 'found in\n'
+ ' the Python Reference Manual (Basic customization).\n'
'\n'
'[2] As a consequence, the list "[1, 2]" is considered equal '
- 'to "[1.0,\n'
- ' 2.0]", and similarly for tuples.\n'
+ 'to "[1.0,\n'
+ ' 2.0]", and similarly for tuples.\n'
'\n'
'[3] They must have since the parser can’t tell the type of '
'the\n'
' operands.\n'
'\n'
'[4] Cased characters are those with general category '
- 'property being\n'
- ' one of “Lu” (Letter, uppercase), “Ll” (Letter, '
- 'lowercase), or “Lt”\n'
- ' (Letter, titlecase).\n'
- '\n'
- '[5] To format only a tuple you should therefore provide a '
- 'singleton\n'
- ' tuple whose only element is the tuple to be formatted.\n',
+ 'property being\n'
+ ' one of “Lu” (Letter, uppercase), “Ll” (Letter, '
+ 'lowercase), or “Lt”\n'
+ ' (Letter, titlecase).\n'
+ '\n'
+ '[5] To format only a tuple you should therefore provide a '
+ 'singleton\n'
+ ' tuple whose only element is the tuple to be formatted.\n',
'specialnames': 'Special method names\n'
'********************\n'
'\n'
@@ -8137,15 +8137,15 @@ topics = {'assert': 'The "assert" statement\n'
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" is invoked during object construction and '
- 'it returns\n'
- ' an instance of *cls*, then the new instance’s '
- '"__init__()" method\n'
- ' will be invoked like "__init__(self[, ...])", where '
- '*self* is the\n'
- ' new instance and the remaining arguments are the same as '
- 'were\n'
- ' passed to the object constructor.\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance of *cls*, then the new instance’s '
+ '"__init__()" method\n'
+ ' will be invoked like "__init__(self[, ...])", where '
+ '*self* is the\n'
+ ' new instance and the remaining arguments are the same as '
+ 'were\n'
+ ' passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, then '
'the new\n'
@@ -8209,9 +8209,9 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' objects that still exist when the interpreter exits.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "del x" doesn’t directly call "x.__del__()" — the '
+ ' Note:\n'
+ '\n'
+ ' "del x" doesn’t directly call "x.__del__()" — the '
'former\n'
' decrements the reference count for "x" by one, and the '
'latter is\n'
@@ -8235,16 +8235,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' See also: Documentation for the "gc" module.\n'
'\n'
- ' Warning:\n'
- '\n'
- ' Due to the precarious circumstances under which '
- '"__del__()"\n'
- ' methods are invoked, exceptions that occur during their '
- 'execution\n'
- ' are ignored, and a warning is printed to "sys.stderr" '
- 'instead.\n'
- ' In particular:\n'
+ ' Warning:\n'
'\n'
+ ' Due to the precarious circumstances under which '
+ '"__del__()"\n'
+ ' methods are invoked, exceptions that occur during their '
+ 'execution\n'
+ ' are ignored, and a warning is printed to "sys.stderr" '
+ 'instead.\n'
+ ' In particular:\n'
+ '\n'
' * "__del__()" can be invoked when arbitrary code is '
'being\n'
' executed, including from any arbitrary thread. If '
@@ -8256,20 +8256,20 @@ topics = {'assert': 'The "assert" statement\n'
' that gets interrupted to execute "__del__()".\n'
'\n'
' * "__del__()" can be executed during interpreter '
- 'shutdown. As a\n'
- ' consequence, the global variables it needs to access '
- '(including\n'
- ' other modules) may already have been deleted or set '
- 'to "None".\n'
- ' Python guarantees that globals whose name begins with '
- 'a single\n'
- ' underscore are deleted from their module before other '
- 'globals\n'
- ' are deleted; if no other references to such globals '
- 'exist, this\n'
- ' may help in assuring that imported modules are still '
- 'available\n'
- ' at the time when the "__del__()" method is called.\n'
+ 'shutdown. As a\n'
+ ' consequence, the global variables it needs to access '
+ '(including\n'
+ ' other modules) may already have been deleted or set '
+ 'to "None".\n'
+ ' Python guarantees that globals whose name begins with '
+ 'a single\n'
+ ' underscore are deleted from their module before other '
+ 'globals\n'
+ ' are deleted; if no other references to such globals '
+ 'exist, this\n'
+ ' may help in assuring that imported modules are still '
+ 'available\n'
+ ' at the time when the "__del__()" method is called.\n'
'\n'
'object.__repr__(self)\n'
'\n'
@@ -8330,11 +8330,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation of '
'an\n'
- ' object. The *format_spec* argument is a string that '
+ ' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
- ' of the *format_spec* argument is up to the type '
+ ' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -8354,7 +8354,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.7: "object.__format__(x, \'\')" is '
'now\n'
- ' equivalent to "str(x)" rather than "format(str(x), '
+ ' equivalent to "str(x)" rather than "format(str(x), '
'\'\')".\n'
'\n'
'object.__lt__(self, other)\n'
@@ -8388,21 +8388,21 @@ topics = {'assert': 'The "assert" statement\n'
' on the value to determine if the result is true or '
'false.\n'
'\n'
- ' By default, "object" implements "__eq__()" by using "is", '
- 'returning\n'
- ' "NotImplemented" in the case of a false comparison: "True '
- 'if x is y\n'
- ' else NotImplemented". For "__ne__()", by default it '
- 'delegates to\n'
- ' "__eq__()" and inverts the result unless it is '
- '"NotImplemented".\n'
- ' There are no other implied relationships among the '
- 'comparison\n'
- ' operators or default implementations; for example, the '
- 'truth of\n'
- ' "(x<y or x==y)" does not imply "x<=y". To automatically '
- 'generate\n'
- ' ordering operations from a single root operation, see\n'
+ ' By default, "object" implements "__eq__()" by using "is", '
+ 'returning\n'
+ ' "NotImplemented" in the case of a false comparison: "True '
+ 'if x is y\n'
+ ' else NotImplemented". For "__ne__()", by default it '
+ 'delegates to\n'
+ ' "__eq__()" and inverts the result unless it is '
+ '"NotImplemented".\n'
+ ' There are no other implied relationships among the '
+ 'comparison\n'
+ ' operators or default implementations; for example, the '
+ 'truth of\n'
+ ' "(x<y or x==y)" does not imply "x<=y". To automatically '
+ 'generate\n'
+ ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
' See the paragraph on "__hash__()" for some important '
@@ -8450,22 +8450,22 @@ topics = {'assert': 'The "assert" statement\n'
' def __hash__(self):\n'
' return hash((self.name, self.nick, self.color))\n'
'\n'
- ' Note:\n'
- '\n'
- ' "hash()" truncates the value returned from an object’s '
- 'custom\n'
- ' "__hash__()" method to the size of a "Py_ssize_t". '
- 'This is\n'
- ' typically 8 bytes on 64-bit builds and 4 bytes on '
- '32-bit builds.\n'
- ' If an object’s "__hash__()" must interoperate on '
- 'builds of\n'
- ' different bit sizes, be sure to check the width on all '
- 'supported\n'
- ' builds. An easy way to do this is with "python -c '
- '"import sys;\n'
- ' print(sys.hash_info.width)"".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "hash()" truncates the value returned from an object’s '
+ 'custom\n'
+ ' "__hash__()" method to the size of a "Py_ssize_t". '
+ 'This is\n'
+ ' typically 8 bytes on 64-bit builds and 4 bytes on '
+ '32-bit builds.\n'
+ ' If an object’s "__hash__()" must interoperate on '
+ 'builds of\n'
+ ' different bit sizes, be sure to check the width on all '
+ 'supported\n'
+ ' builds. An easy way to do this is with "python -c '
+ '"import sys;\n'
+ ' print(sys.hash_info.width)"".\n'
+ '\n'
' If a class does not define an "__eq__()" method it should '
'not\n'
' define a "__hash__()" operation either; if it defines '
@@ -8520,22 +8520,22 @@ topics = {'assert': 'The "assert" statement\n'
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note:\n'
- '\n'
- ' By default, the "__hash__()" values of str and bytes '
- 'objects are\n'
- ' “salted” with an unpredictable random value. Although '
- 'they\n'
- ' remain constant within an individual Python process, '
- 'they are not\n'
- ' predictable between repeated invocations of Python.This '
- 'is\n'
- ' intended to provide protection against a '
- 'denial-of-service caused\n'
- ' by carefully-chosen inputs that exploit the worst case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
- ' http://www.ocert.org/advisories/ocert-2011-003.html '
+ ' Note:\n'
+ '\n'
+ ' By default, the "__hash__()" values of str and bytes '
+ 'objects are\n'
+ ' “salted” with an unpredictable random value. Although '
+ 'they\n'
+ ' remain constant within an individual Python process, '
+ 'they are not\n'
+ ' predictable between repeated invocations of Python.This '
+ 'is\n'
+ ' intended to provide protection against a '
+ 'denial-of-service caused\n'
+ ' by carefully-chosen inputs that exploit the worst case\n'
+ ' performance of a dict insertion, O(n^2) complexity. '
+ 'See\n'
+ ' http://www.ocert.org/advisories/ocert-2011-003.html '
'for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
@@ -8624,18 +8624,18 @@ topics = {'assert': 'The "assert" statement\n'
'needs, for\n'
' example, "object.__getattribute__(self, name)".\n'
'\n'
- ' Note:\n'
- '\n'
- ' This method may still be bypassed when looking up '
- 'special methods\n'
- ' as the result of implicit invocation via language '
- 'syntax or\n'
- ' built-in functions. See Special method lookup.\n'
- '\n'
- ' For certain sensitive attribute accesses, raises an '
- 'auditing event\n'
- ' "object.__getattr__" with arguments "obj" and "name".\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' This method may still be bypassed when looking up '
+ 'special methods\n'
+ ' as the result of implicit invocation via language '
+ 'syntax or\n'
+ ' built-in functions. See Special method lookup.\n'
+ '\n'
+ ' For certain sensitive attribute accesses, raises an '
+ 'auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and "name".\n'
+ '\n'
'object.__setattr__(self, name, value)\n'
'\n'
' Called when an attribute assignment is attempted. This '
@@ -8652,11 +8652,11 @@ topics = {'assert': 'The "assert" statement\n'
'example,\n'
' "object.__setattr__(self, name, value)".\n'
'\n'
- ' For certain sensitive attribute assignments, raises an '
- 'auditing\n'
- ' event "object.__setattr__" with arguments "obj", "name", '
- '"value".\n'
- '\n'
+ ' For certain sensitive attribute assignments, raises an '
+ 'auditing\n'
+ ' event "object.__setattr__" with arguments "obj", "name", '
+ '"value".\n'
+ '\n'
'object.__delattr__(self, name)\n'
'\n'
' Like "__setattr__()" but for attribute deletion instead '
@@ -8665,10 +8665,10 @@ topics = {'assert': 'The "assert" statement\n'
'obj.name" is\n'
' meaningful for the object.\n'
'\n'
- ' For certain sensitive attribute deletions, raises an '
- 'auditing event\n'
- ' "object.__delattr__" with arguments "obj" and "name".\n'
- '\n'
+ ' For certain sensitive attribute deletions, raises an '
+ 'auditing event\n'
+ ' "object.__delattr__" with arguments "obj" and "name".\n'
+ '\n'
'object.__dir__(self)\n'
'\n'
' Called when "dir()" is called on the object. A sequence '
@@ -8700,11 +8700,11 @@ topics = {'assert': 'The "assert" statement\n'
'returned.\n'
'\n'
'The "__dir__" function should accept no arguments, and '
- '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'
+ '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 '
@@ -8727,17 +8727,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' sys.modules[__name__].__class__ = VerboseModule\n'
'\n'
- 'Note:\n'
- '\n'
- ' Defining module "__getattr__" and setting module '
- '"__class__" only\n'
- ' affect lookups made using the attribute access syntax – '
- 'directly\n'
- ' accessing the module globals (whether by code within the '
- 'module, or\n'
- ' via a reference to the module’s globals dictionary) is '
- 'unaffected.\n'
- '\n'
+ 'Note:\n'
+ '\n'
+ ' Defining module "__getattr__" and setting module '
+ '"__class__" only\n'
+ ' affect lookups made using the attribute access syntax – '
+ 'directly\n'
+ ' accessing the module globals (whether by code within the '
+ 'module, or\n'
+ ' via a reference to the module’s globals dictionary) is '
+ 'unaffected.\n'
+ '\n'
'Changed in version 3.5: "__class__" module attribute is now '
'writable.\n'
'\n'
@@ -8766,47 +8766,47 @@ 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=None)\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). 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'
+ ' 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'
' Called to set the attribute on an instance *instance* 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'
+ ' 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* '
@@ -8819,24 +8819,24 @@ topics = {'assert': 'The "assert" statement\n'
'The\n'
' descriptor has been assigned to *name*.\n'
'\n'
- ' Note:\n'
- '\n'
- ' "__set_name__()" is only called implicitly as part of '
- 'the "type"\n'
- ' constructor, so it will need to be called explicitly '
- 'with the\n'
- ' appropriate parameters when a descriptor is added to a '
- 'class\n'
- ' after initial creation:\n'
- '\n'
- ' class A:\n'
- ' pass\n'
- ' descr = custom_descriptor()\n'
- ' A.attr = descr\n'
- " descr.__set_name__(A, 'attr')\n"
- '\n'
- ' See Creating the class object for more details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' "__set_name__()" is only called implicitly as part of '
+ 'the "type"\n'
+ ' constructor, so it will need to be called explicitly '
+ 'with the\n'
+ ' appropriate parameters when a descriptor is added to a '
+ 'class\n'
+ ' after initial creation:\n'
+ '\n'
+ ' class A:\n'
+ ' pass\n'
+ ' descr = custom_descriptor()\n'
+ ' A.attr = descr\n'
+ " descr.__set_name__(A, 'attr')\n"
+ '\n'
+ ' See Creating the class object for more details.\n'
+ '\n'
' New in version 3.6.\n'
'\n'
'The attribute "__objclass__" is interpreted by the "inspect" '
@@ -8909,16 +8909,16 @@ topics = {'assert': 'The "assert" statement\n'
'"super(B,\n'
' obj).m()" searches "obj.__class__.__mro__" for the base '
'class "A"\n'
- ' immediately following "B" and then invokes the descriptor '
+ ' immediately following "B" and then invokes the descriptor '
'with the\n'
' call: "A.__dict__[\'m\'].__get__(obj, obj.__class__)".\n'
'\n'
'For instance bindings, the precedence of descriptor '
'invocation depends\n'
- 'on which descriptor methods are defined. A descriptor can '
- 'define any\n'
- 'combination of "__get__()", "__set__()" and "__delete__()". '
- 'If it\n'
+ 'on which descriptor methods are defined. A descriptor can '
+ 'define any\n'
+ 'combination of "__get__()", "__set__()" and "__delete__()". '
+ 'If it\n'
'does not define "__get__()", then accessing the attribute '
'will return\n'
'the descriptor object itself unless there is a value in the '
@@ -8931,22 +8931,22 @@ topics = {'assert': 'The "assert" statement\n'
'both\n'
'"__get__()" and "__set__()", while non-data descriptors have '
'just the\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 those decorated with '
- '"@staticmethod" and\n'
- '"@classmethod") are implemented as non-data descriptors. '
- 'Accordingly,\n'
- 'instances can redefine and override methods. This allows '
- 'individual\n'
- 'instances to acquire behaviors that differ from other '
- 'instances of the\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 those decorated with '
+ '"@staticmethod" and\n'
+ '"@classmethod") are implemented as non-data descriptors. '
+ 'Accordingly,\n'
+ 'instances can redefine and override methods. This allows '
+ 'individual\n'
+ 'instances to acquire behaviors that differ from other '
+ 'instances of the\n'
'same class.\n'
'\n'
'The "property()" function is implemented as a data '
@@ -8960,12 +8960,12 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'*__slots__* allow us to explicitly declare data members '
'(like\n'
- 'properties) and deny the creation of "__dict__" and '
+ 'properties) and deny the creation of "__dict__" and '
'*__weakref__*\n'
'(unless explicitly declared in *__slots__* or available in a '
'parent.)\n'
'\n'
- 'The space saved over using "__dict__" can be significant. '
+ 'The space saved over using "__dict__" can be significant. '
'Attribute\n'
'lookup speed can be significantly improved as well.\n'
'\n'
@@ -8977,7 +8977,7 @@ topics = {'assert': 'The "assert" statement\n'
'*__slots__*\n'
' reserves space for the declared variables and prevents '
'the\n'
- ' automatic creation of "__dict__" and *__weakref__* for '
+ ' automatic creation of "__dict__" and *__weakref__* for '
'each\n'
' instance.\n'
'\n'
@@ -8986,11 +8986,11 @@ topics = {'assert': 'The "assert" statement\n'
'~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
'\n'
'* When inheriting from a class without *__slots__*, the '
- '"__dict__" and\n'
- ' *__weakref__* attribute of the instances will always be '
- 'accessible.\n'
+ '"__dict__" and\n'
+ ' *__weakref__* attribute of the instances will always be '
+ 'accessible.\n'
'\n'
- '* Without a "__dict__" variable, instances cannot be '
+ '* Without a "__dict__" variable, instances cannot be '
'assigned new\n'
' variables not listed in the *__slots__* definition. '
'Attempts to\n'
@@ -9002,40 +9002,40 @@ topics = {'assert': 'The "assert" statement\n'
' declaration.\n'
'\n'
'* Without a *__weakref__* variable for each instance, '
- 'classes defining\n'
- ' *__slots__* do not support "weak references" to its '
- 'instances. If\n'
- ' weak reference support is needed, then add '
- '"\'__weakref__\'" to the\n'
- ' sequence of strings in the *__slots__* declaration.\n'
+ 'classes defining\n'
+ ' *__slots__* do not support "weak references" to its '
+ 'instances. If\n'
+ ' weak reference support is needed, then add '
+ '"\'__weakref__\'" to the\n'
+ ' sequence of strings in the *__slots__* declaration.\n'
'\n'
'* *__slots__* are implemented at the class level by '
'creating\n'
- ' descriptors for each variable name. As a result, class '
- 'attributes\n'
- ' cannot be used to set default values for instance '
- 'variables defined\n'
- ' by *__slots__*; otherwise, the class attribute would '
- 'overwrite the\n'
- ' descriptor assignment.\n'
+ ' descriptors for each variable name. As a result, class '
+ 'attributes\n'
+ ' cannot be used to set default values for instance '
+ 'variables defined\n'
+ ' by *__slots__*; otherwise, the class attribute would '
+ 'overwrite the\n'
+ ' descriptor assignment.\n'
'\n'
'* The action of a *__slots__* declaration is not limited to '
- 'the class\n'
- ' where it is defined. *__slots__* declared in parents are '
- 'available\n'
- ' in child classes. However, child subclasses will get a '
- '"__dict__"\n'
- ' and *__weakref__* unless they also define *__slots__* '
- '(which should\n'
- ' only contain names of any *additional* slots).\n'
+ 'the class\n'
+ ' where it is defined. *__slots__* declared in parents are '
+ 'available\n'
+ ' in child classes. However, child subclasses will get a '
+ '"__dict__"\n'
+ ' and *__weakref__* unless they also define *__slots__* '
+ '(which should\n'
+ ' only contain names of any *additional* slots).\n'
'\n'
'* If a class defines a slot also defined in a base class, '
- 'the instance\n'
- ' variable defined by the base class slot is inaccessible '
- '(except by\n'
- ' retrieving its descriptor directly from the base class). '
- 'This\n'
- ' renders the meaning of the program undefined. In the '
+ 'the instance\n'
+ ' variable defined by the base class slot is inaccessible '
+ '(except by\n'
+ ' retrieving its descriptor directly from the base class). '
+ 'This\n'
+ ' renders the meaning of the program undefined. In the '
'future, a\n'
' check may be added to prevent this.\n'
'\n'
@@ -9044,18 +9044,18 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", "bytes" '
'and "tuple".\n'
'\n'
- '* Any non-string *iterable* may be assigned to *__slots__*.\n'
- '\n'
- '* If a "dictionary" is used to assign *__slots__*, the '
- 'dictionary keys\n'
- ' will be used as the slot names. The values of the '
- 'dictionary can be\n'
- ' used to provide per-attribute docstrings that will be '
- 'recognised by\n'
- ' "inspect.getdoc()" and displayed in the output of '
- '"help()".\n'
- '\n'
- '* "__class__" assignment works only if both classes have the '
+ '* Any non-string *iterable* may be assigned to *__slots__*.\n'
+ '\n'
+ '* If a "dictionary" is used to assign *__slots__*, the '
+ 'dictionary keys\n'
+ ' will be used as the slot names. The values of the '
+ 'dictionary can be\n'
+ ' used to provide per-attribute docstrings that will be '
+ 'recognised by\n'
+ ' "inspect.getdoc()" and displayed in the output of '
+ '"help()".\n'
+ '\n'
+ '* "__class__" assignment works only if both classes have the '
'same\n'
' *__slots__*.\n'
'\n'
@@ -9067,18 +9067,18 @@ 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'
+ '* 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'
'\n'
'Whenever a class inherits from another class, '
- '"__init_subclass__()" is\n'
+ '"__init_subclass__()" is\n'
'called on that class. This way, it is possible to write '
'classes which\n'
'change the behavior of subclasses. This is closely related '
@@ -9109,7 +9109,7 @@ topics = {'assert': 'The "assert" statement\n'
' in:\n'
'\n'
' class Philosopher:\n'
- ' def __init_subclass__(cls, /, default_name, '
+ ' def __init_subclass__(cls, /, default_name, '
'**kwargs):\n'
' super().__init_subclass__(**kwargs)\n'
' cls.default_name = default_name\n'
@@ -9122,11 +9122,11 @@ topics = {'assert': 'The "assert" statement\n'
'does nothing,\n'
' but raises an error if it is called with any arguments.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The metaclass hint "metaclass" is consumed by the rest '
- 'of the\n'
- ' type machinery, and is never passed to '
+ ' Note:\n'
+ '\n'
+ ' The metaclass hint "metaclass" is consumed by the rest '
+ 'of the\n'
+ ' type machinery, and is never passed to '
'"__init_subclass__"\n'
' implementations. The actual metaclass (rather than the '
'explicit\n'
@@ -9170,15 +9170,15 @@ topics = {'assert': 'The "assert" statement\n'
'When a class definition is executed, the following steps '
'occur:\n'
'\n'
- '* MRO entries are resolved;\n'
+ '* MRO entries are resolved;\n'
'\n'
- '* the appropriate metaclass is determined;\n'
+ '* the appropriate metaclass is determined;\n'
'\n'
- '* the class namespace is prepared;\n'
+ '* the class namespace is prepared;\n'
'\n'
- '* the class body is executed;\n'
+ '* the class body is executed;\n'
'\n'
- '* the class object is created.\n'
+ '* the class object is created.\n'
'\n'
'\n'
'Resolving MRO entries\n'
@@ -9194,12 +9194,12 @@ topics = {'assert': 'The "assert" statement\n'
'tuple may\n'
'be empty, in such case the original base is ignored.\n'
'\n'
- 'See also:\n'
- '\n'
- ' **PEP 560** - Core support for typing module and generic '
- 'types\n'
+ 'See also:\n'
'\n'
+ ' **PEP 560** - Core support for typing module and generic '
+ 'types\n'
'\n'
+ '\n'
'Determining the appropriate metaclass\n'
'-------------------------------------\n'
'\n'
@@ -9209,16 +9209,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* if no bases and no explicit metaclass are given, then '
'"type()" is\n'
- ' used;\n'
+ ' used;\n'
'\n'
'* if an explicit metaclass is given and it is *not* an '
'instance of\n'
- ' "type()", then it is used directly as the metaclass;\n'
+ ' "type()", then it is used directly as the metaclass;\n'
'\n'
'* if an instance of "type()" is given as the explicit '
'metaclass, or\n'
' bases are defined, then the most derived metaclass is '
- 'used.\n'
+ 'used.\n'
'\n'
'The most derived metaclass is selected from the explicitly '
'specified\n'
@@ -9244,13 +9244,13 @@ topics = {'assert': 'The "assert" statement\n'
'bases,\n'
'**kwds)" (where the additional keyword arguments, if any, '
'come from\n'
- 'the class definition). The "__prepare__" method should be '
- 'implemented\n'
- 'as a "classmethod". The namespace returned by "__prepare__" '
- 'is passed\n'
- 'in to "__new__", but when the final class object is created '
- 'the\n'
- 'namespace is copied into a new "dict".\n'
+ 'the class definition). The "__prepare__" method should be '
+ 'implemented\n'
+ 'as a "classmethod". The namespace returned by "__prepare__" '
+ 'is passed\n'
+ 'in to "__new__", but when the final class object is created '
+ 'the\n'
+ 'namespace is copied into a new "dict".\n'
'\n'
'If the metaclass has no "__prepare__" attribute, then the '
'class\n'
@@ -9322,9 +9322,9 @@ topics = {'assert': 'The "assert" statement\n'
'up to the\n'
'"type.__new__" call in order for the class to be '
'initialised\n'
- 'correctly. Failing to do so will result in a "RuntimeError" '
- 'in Python\n'
- '3.8.\n'
+ 'correctly. Failing to do so will result in a "RuntimeError" '
+ 'in Python\n'
+ '3.8.\n'
'\n'
'When using the default metaclass "type", or any metaclass '
'that\n'
@@ -9340,7 +9340,7 @@ topics = {'assert': 'The "assert" statement\n'
'with the\n'
' class being defined and the assigned name of that '
'particular\n'
- ' descriptor;\n'
+ ' descriptor;\n'
'\n'
'* finally, the "__init_subclass__()" hook is called on the '
'immediate\n'
@@ -9437,180 +9437,180 @@ topics = {'assert': 'The "assert" statement\n'
'Emulating generic types\n'
'=======================\n'
'\n'
- 'When using *type annotations*, it is often useful to '
- '*parameterize* a\n'
- '*generic type* using Python’s square-brackets notation. For '
- 'example,\n'
- 'the annotation "list[int]" might be used to signify a "list" '
- 'in which\n'
- 'all the elements are of type "int".\n'
- '\n'
- 'See also:\n'
- '\n'
- ' **PEP 484** - Type Hints\n'
- ' Introducing Python’s framework for type annotations\n'
- '\n'
- ' Generic Alias Types\n'
- ' Documentation for objects representing parameterized '
- 'generic\n'
- ' classes\n'
- '\n'
- ' Generics, user-defined generics and "typing.Generic"\n'
- ' Documentation on how to implement generic classes that '
- 'can be\n'
- ' parameterized at runtime and understood by static '
- 'type-checkers.\n'
- '\n'
- 'A class can *generally* only be parameterized if it defines '
- 'the\n'
- 'special class method "__class_getitem__()".\n'
- '\n'
+ 'When using *type annotations*, it is often useful to '
+ '*parameterize* a\n'
+ '*generic type* using Python’s square-brackets notation. For '
+ 'example,\n'
+ 'the annotation "list[int]" might be used to signify a "list" '
+ 'in which\n'
+ 'all the elements are of type "int".\n'
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' **PEP 484** - Type Hints\n'
+ ' Introducing Python’s framework for type annotations\n'
+ '\n'
+ ' Generic Alias Types\n'
+ ' Documentation for objects representing parameterized '
+ 'generic\n'
+ ' classes\n'
+ '\n'
+ ' Generics, user-defined generics and "typing.Generic"\n'
+ ' Documentation on how to implement generic classes that '
+ 'can be\n'
+ ' parameterized at runtime and understood by static '
+ 'type-checkers.\n'
+ '\n'
+ 'A class can *generally* only be parameterized if it defines '
+ 'the\n'
+ 'special class method "__class_getitem__()".\n'
+ '\n'
'classmethod object.__class_getitem__(cls, key)\n'
'\n'
' Return an object representing the specialization of a '
'generic class\n'
' by type arguments found in *key*.\n'
'\n'
- ' When defined on a class, "__class_getitem__()" is '
- 'automatically a\n'
- ' class method. As such, there is no need for it to be '
- 'decorated with\n'
- ' "@classmethod" when it is defined.\n'
- '\n'
- '\n'
- 'The purpose of *__class_getitem__*\n'
- '----------------------------------\n'
- '\n'
- 'The purpose of "__class_getitem__()" is to allow runtime\n'
- 'parameterization of standard-library generic classes in '
- 'order to more\n'
- 'easily apply *type hints* to these classes.\n'
- '\n'
- 'To implement custom generic classes that can be '
- 'parameterized at\n'
- 'runtime and understood by static type-checkers, users should '
- 'either\n'
- 'inherit from a standard library class that already '
- 'implements\n'
- '"__class_getitem__()", or inherit from "typing.Generic", '
- 'which has its\n'
- 'own implementation of "__class_getitem__()".\n'
- '\n'
- 'Custom implementations of "__class_getitem__()" on classes '
- 'defined\n'
- 'outside of the standard library may not be understood by '
- 'third-party\n'
- 'type-checkers such as mypy. Using "__class_getitem__()" on '
- 'any class\n'
- 'for purposes other than type hinting is discouraged.\n'
- '\n'
- '\n'
- '*__class_getitem__* versus *__getitem__*\n'
- '----------------------------------------\n'
- '\n'
- 'Usually, the subscription of an object using square brackets '
- 'will call\n'
- 'the "__getitem__()" instance method defined on the object’s '
- 'class.\n'
- 'However, if the object being subscribed is itself a class, '
- 'the class\n'
- 'method "__class_getitem__()" may be called instead.\n'
- '"__class_getitem__()" should return a GenericAlias object if '
- 'it is\n'
- 'properly defined.\n'
- '\n'
- 'Presented with the *expression* "obj[x]", the Python '
- 'interpreter\n'
- 'follows something like the following process to decide '
- 'whether\n'
- '"__getitem__()" or "__class_getitem__()" should be called:\n'
- '\n'
- ' from inspect import isclass\n'
- '\n'
- ' def subscribe(obj, x):\n'
- ' """Return the result of the expression `obj[x]`"""\n'
- '\n'
- ' class_of_obj = type(obj)\n'
- '\n'
- ' # If the class of obj defines __getitem__,\n'
- ' # call class_of_obj.__getitem__(obj, x)\n'
- " if hasattr(class_of_obj, '__getitem__'):\n"
- ' return class_of_obj.__getitem__(obj, x)\n'
- '\n'
- ' # Else, if obj is a class and defines '
- '__class_getitem__,\n'
- ' # call obj.__class_getitem__(x)\n'
- ' elif isclass(obj) and hasattr(obj, '
- "'__class_getitem__'):\n"
- ' return obj.__class_getitem__(x)\n'
- '\n'
- ' # Else, raise an exception\n'
- ' else:\n'
- ' raise TypeError(\n'
- ' f"\'{class_of_obj.__name__}\' object is not '
- 'subscriptable"\n'
- ' )\n'
- '\n'
- 'In Python, all classes are themselves instances of other '
- 'classes. The\n'
- 'class of a class is known as that class’s *metaclass*, and '
- 'most\n'
- 'classes have the "type" class as their metaclass. "type" '
- 'does not\n'
- 'define "__getitem__()", meaning that expressions such as '
- '"list[int]",\n'
- '"dict[str, float]" and "tuple[str, bytes]" all result in\n'
- '"__class_getitem__()" being called:\n'
- '\n'
- ' >>> # list has class "type" as its metaclass, like most '
- 'classes:\n'
- ' >>> type(list)\n'
- " <class 'type'>\n"
- ' >>> type(dict) == type(list) == type(tuple) == type(str) '
- '== type(bytes)\n'
- ' True\n'
- ' >>> # "list[int]" calls "list.__class_getitem__(int)"\n'
- ' >>> list[int]\n'
- ' list[int]\n'
- ' >>> # list.__class_getitem__ returns a GenericAlias '
- 'object:\n'
- ' >>> type(list[int])\n'
- " <class 'types.GenericAlias'>\n"
- '\n'
- 'However, if a class has a custom metaclass that defines\n'
- '"__getitem__()", subscribing the class may result in '
- 'different\n'
- 'behaviour. An example of this can be found in the "enum" '
- 'module:\n'
- '\n'
- ' >>> from enum import Enum\n'
- ' >>> class Menu(Enum):\n'
- ' ... """A breakfast menu"""\n'
- " ... SPAM = 'spam'\n"
- " ... BACON = 'bacon'\n"
- ' ...\n'
- ' >>> # Enum classes have a custom metaclass:\n'
- ' >>> type(Menu)\n'
- " <class 'enum.EnumMeta'>\n"
- ' >>> # EnumMeta defines __getitem__,\n'
- ' >>> # so __class_getitem__ is not called,\n'
- ' >>> # and the result is not a GenericAlias object:\n'
- " >>> Menu['SPAM']\n"
- " <Menu.SPAM: 'spam'>\n"
- " >>> type(Menu['SPAM'])\n"
- " <enum 'Menu'>\n"
- '\n'
- 'See also:\n'
- '\n'
- ' **PEP 560** - Core Support for typing module and generic '
- 'types\n'
- ' Introducing "__class_getitem__()", and outlining when '
- 'a\n'
- ' subscription results in "__class_getitem__()" being '
- 'called\n'
- ' instead of "__getitem__()"\n'
- '\n'
- '\n'
+ ' When defined on a class, "__class_getitem__()" is '
+ 'automatically a\n'
+ ' class method. As such, there is no need for it to be '
+ 'decorated with\n'
+ ' "@classmethod" when it is defined.\n'
+ '\n'
+ '\n'
+ 'The purpose of *__class_getitem__*\n'
+ '----------------------------------\n'
+ '\n'
+ 'The purpose of "__class_getitem__()" is to allow runtime\n'
+ 'parameterization of standard-library generic classes in '
+ 'order to more\n'
+ 'easily apply *type hints* to these classes.\n'
+ '\n'
+ 'To implement custom generic classes that can be '
+ 'parameterized at\n'
+ 'runtime and understood by static type-checkers, users should '
+ 'either\n'
+ 'inherit from a standard library class that already '
+ 'implements\n'
+ '"__class_getitem__()", or inherit from "typing.Generic", '
+ 'which has its\n'
+ 'own implementation of "__class_getitem__()".\n'
+ '\n'
+ 'Custom implementations of "__class_getitem__()" on classes '
+ 'defined\n'
+ 'outside of the standard library may not be understood by '
+ 'third-party\n'
+ 'type-checkers such as mypy. Using "__class_getitem__()" on '
+ 'any class\n'
+ 'for purposes other than type hinting is discouraged.\n'
+ '\n'
+ '\n'
+ '*__class_getitem__* versus *__getitem__*\n'
+ '----------------------------------------\n'
+ '\n'
+ 'Usually, the subscription of an object using square brackets '
+ 'will call\n'
+ 'the "__getitem__()" instance method defined on the object’s '
+ 'class.\n'
+ 'However, if the object being subscribed is itself a class, '
+ 'the class\n'
+ 'method "__class_getitem__()" may be called instead.\n'
+ '"__class_getitem__()" should return a GenericAlias object if '
+ 'it is\n'
+ 'properly defined.\n'
+ '\n'
+ 'Presented with the *expression* "obj[x]", the Python '
+ 'interpreter\n'
+ 'follows something like the following process to decide '
+ 'whether\n'
+ '"__getitem__()" or "__class_getitem__()" should be called:\n'
+ '\n'
+ ' from inspect import isclass\n'
+ '\n'
+ ' def subscribe(obj, x):\n'
+ ' """Return the result of the expression `obj[x]`"""\n'
+ '\n'
+ ' class_of_obj = type(obj)\n'
+ '\n'
+ ' # If the class of obj defines __getitem__,\n'
+ ' # call class_of_obj.__getitem__(obj, x)\n'
+ " if hasattr(class_of_obj, '__getitem__'):\n"
+ ' return class_of_obj.__getitem__(obj, x)\n'
+ '\n'
+ ' # Else, if obj is a class and defines '
+ '__class_getitem__,\n'
+ ' # call obj.__class_getitem__(x)\n'
+ ' elif isclass(obj) and hasattr(obj, '
+ "'__class_getitem__'):\n"
+ ' return obj.__class_getitem__(x)\n'
+ '\n'
+ ' # Else, raise an exception\n'
+ ' else:\n'
+ ' raise TypeError(\n'
+ ' f"\'{class_of_obj.__name__}\' object is not '
+ 'subscriptable"\n'
+ ' )\n'
+ '\n'
+ 'In Python, all classes are themselves instances of other '
+ 'classes. The\n'
+ 'class of a class is known as that class’s *metaclass*, and '
+ 'most\n'
+ 'classes have the "type" class as their metaclass. "type" '
+ 'does not\n'
+ 'define "__getitem__()", meaning that expressions such as '
+ '"list[int]",\n'
+ '"dict[str, float]" and "tuple[str, bytes]" all result in\n'
+ '"__class_getitem__()" being called:\n'
+ '\n'
+ ' >>> # list has class "type" as its metaclass, like most '
+ 'classes:\n'
+ ' >>> type(list)\n'
+ " <class 'type'>\n"
+ ' >>> type(dict) == type(list) == type(tuple) == type(str) '
+ '== type(bytes)\n'
+ ' True\n'
+ ' >>> # "list[int]" calls "list.__class_getitem__(int)"\n'
+ ' >>> list[int]\n'
+ ' list[int]\n'
+ ' >>> # list.__class_getitem__ returns a GenericAlias '
+ 'object:\n'
+ ' >>> type(list[int])\n'
+ " <class 'types.GenericAlias'>\n"
+ '\n'
+ 'However, if a class has a custom metaclass that defines\n'
+ '"__getitem__()", subscribing the class may result in '
+ 'different\n'
+ 'behaviour. An example of this can be found in the "enum" '
+ 'module:\n'
+ '\n'
+ ' >>> from enum import Enum\n'
+ ' >>> class Menu(Enum):\n'
+ ' ... """A breakfast menu"""\n'
+ " ... SPAM = 'spam'\n"
+ " ... BACON = 'bacon'\n"
+ ' ...\n'
+ ' >>> # Enum classes have a custom metaclass:\n'
+ ' >>> type(Menu)\n'
+ " <class 'enum.EnumMeta'>\n"
+ ' >>> # EnumMeta defines __getitem__,\n'
+ ' >>> # so __class_getitem__ is not called,\n'
+ ' >>> # and the result is not a GenericAlias object:\n'
+ " >>> Menu['SPAM']\n"
+ " <Menu.SPAM: 'spam'>\n"
+ " >>> type(Menu['SPAM'])\n"
+ " <enum 'Menu'>\n"
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' **PEP 560** - Core Support for typing module and generic '
+ 'types\n'
+ ' Introducing "__class_getitem__()", and outlining when '
+ 'a\n'
+ ' subscription results in "__class_getitem__()" being '
+ 'called\n'
+ ' instead of "__getitem__()"\n'
+ '\n'
+ '\n'
'Emulating callable objects\n'
'==========================\n'
'\n'
@@ -9618,8 +9618,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called when the instance is “called” as a function; if '
'this method\n'
- ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
- ' "type(x).__call__(x, arg1, ...)".\n'
+ ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
+ ' "type(x).__call__(x, arg1, ...)".\n'
'\n'
'\n'
'Emulating container types\n'
@@ -9627,60 +9627,60 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'The following methods can be defined to implement container '
'objects.\n'
- 'Containers usually are *sequences* (such as "lists" or '
- '"tuples") or\n'
- '*mappings* (like "dictionaries"), but can represent other '
- 'containers\n'
- 'as well. The first set of methods is used either to emulate '
- 'a\n'
- 'sequence or to emulate a mapping; the difference is that for '
- 'a\n'
- 'sequence, the allowable keys should be the integers *k* for '
- 'which "0\n'
- '<= k < N" where *N* is the length of the sequence, or '
- '"slice" objects,\n'
- 'which define a range of items. It is also recommended that '
- 'mappings\n'
- 'provide the methods "keys()", "values()", "items()", '
- '"get()",\n'
- '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
- 'and\n'
- '"update()" behaving similar to those for Python’s standard\n'
- '"dictionary" objects. The "collections.abc" module provides '
- 'a\n'
- '"MutableMapping" *abstract base class* to help create those '
- 'methods\n'
- 'from a base set of "__getitem__()", "__setitem__()", '
- '"__delitem__()",\n'
- 'and "keys()". Mutable sequences should provide methods '
- '"append()",\n'
- '"count()", "index()", "extend()", "insert()", "pop()", '
- '"remove()",\n'
- '"reverse()" and "sort()", like Python standard "list" '
- 'objects.\n'
- 'Finally, sequence types should implement addition (meaning\n'
- 'concatenation) and multiplication (meaning repetition) by '
- 'defining the\n'
- 'methods "__add__()", "__radd__()", "__iadd__()", '
- '"__mul__()",\n'
- '"__rmul__()" and "__imul__()" described below; they should '
- 'not define\n'
- 'other numerical operators. It is recommended that both '
- 'mappings and\n'
- 'sequences implement the "__contains__()" method to allow '
- 'efficient use\n'
- 'of the "in" operator; for mappings, "in" should search the '
- 'mapping’s\n'
- 'keys; for sequences, it should search through the values. '
- 'It is\n'
- 'further recommended that both mappings and sequences '
- 'implement the\n'
- '"__iter__()" method to allow efficient iteration through '
- 'the\n'
- 'container; for mappings, "__iter__()" should iterate through '
+ 'Containers usually are *sequences* (such as "lists" or '
+ '"tuples") or\n'
+ '*mappings* (like "dictionaries"), but can represent other '
+ 'containers\n'
+ 'as well. The first set of methods is used either to emulate '
+ 'a\n'
+ 'sequence or to emulate a mapping; the difference is that for '
+ 'a\n'
+ 'sequence, the allowable keys should be the integers *k* for '
+ 'which "0\n'
+ '<= k < N" where *N* is the length of the sequence, or '
+ '"slice" objects,\n'
+ 'which define a range of items. It is also recommended that '
+ 'mappings\n'
+ 'provide the methods "keys()", "values()", "items()", '
+ '"get()",\n'
+ '"clear()", "setdefault()", "pop()", "popitem()", "copy()", '
+ 'and\n'
+ '"update()" behaving similar to those for Python’s standard\n'
+ '"dictionary" objects. The "collections.abc" module provides '
+ 'a\n'
+ '"MutableMapping" *abstract base class* to help create those '
+ 'methods\n'
+ 'from a base set of "__getitem__()", "__setitem__()", '
+ '"__delitem__()",\n'
+ 'and "keys()". Mutable sequences should provide methods '
+ '"append()",\n'
+ '"count()", "index()", "extend()", "insert()", "pop()", '
+ '"remove()",\n'
+ '"reverse()" and "sort()", like Python standard "list" '
+ 'objects.\n'
+ 'Finally, sequence types should implement addition (meaning\n'
+ 'concatenation) and multiplication (meaning repetition) by '
+ 'defining the\n'
+ 'methods "__add__()", "__radd__()", "__iadd__()", '
+ '"__mul__()",\n'
+ '"__rmul__()" and "__imul__()" described below; they should '
+ 'not define\n'
+ 'other numerical operators. It is recommended that both '
+ 'mappings and\n'
+ 'sequences implement the "__contains__()" method to allow '
+ 'efficient use\n'
+ 'of the "in" operator; for mappings, "in" should search the '
+ 'mapping’s\n'
+ 'keys; for sequences, it should search through the values. '
+ 'It is\n'
+ 'further recommended that both mappings and sequences '
+ 'implement the\n'
+ '"__iter__()" method to allow efficient iteration through '
'the\n'
- 'object’s keys; for sequences, it should iterate through the '
- 'values.\n'
+ 'container; for mappings, "__iter__()" should iterate through '
+ 'the\n'
+ 'object’s keys; for sequences, it should iterate through the '
+ 'values.\n'
'\n'
'object.__len__(self)\n'
'\n'
@@ -9709,23 +9709,23 @@ 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. '
- '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'
+ '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'
'\n'
' New in version 3.4.\n'
'\n'
- 'Note:\n'
- '\n'
- ' Slicing is done exclusively with the following three '
- 'methods. A\n'
- ' call like\n'
+ 'Note:\n'
'\n'
+ ' Slicing is done exclusively with the following three '
+ 'methods. A\n'
+ ' call like\n'
+ '\n'
' a[1:2] = b\n'
'\n'
' is translated to\n'
@@ -9738,40 +9738,40 @@ topics = {'assert': 'The "assert" statement\n'
'object.__getitem__(self, key)\n'
'\n'
' Called to implement evaluation of "self[key]". For '
- '*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative indexes '
- '(if the\n'
- ' class wishes to emulate a *sequence* type) is up to the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the set '
- 'of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
+ '*sequence*\n'
+ ' types, the accepted keys should be integers and slice '
+ 'objects.\n'
+ ' Note that the special interpretation of negative indexes '
+ '(if the\n'
+ ' class wishes to emulate a *sequence* type) is up to the\n'
+ ' "__getitem__()" method. If *key* is of an inappropriate '
+ 'type,\n'
+ ' "TypeError" may be raised; if of a value outside the set '
+ 'of indexes\n'
+ ' for the sequence (after any special interpretation of '
+ 'negative\n'
+ ' values), "IndexError" should be raised. For *mapping* '
+ 'types, if\n'
+ ' *key* is missing (not in the container), "KeyError" '
'should be\n'
- ' raised.\n'
- '\n'
- ' Note:\n'
+ ' raised.\n'
'\n'
- ' "for" loops expect that an "IndexError" will be raised '
- 'for\n'
+ ' Note:\n'
+ '\n'
+ ' "for" loops expect that an "IndexError" will be raised '
+ 'for\n'
' illegal indexes to allow proper detection of the end of '
'the\n'
' sequence.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When subscripting a *class*, the special class method\n'
- ' "__class_getitem__()" may be called instead of '
- '"__getitem__()".\n'
- ' See __class_getitem__ versus __getitem__ for more '
- 'details.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' When subscripting a *class*, the special class method\n'
+ ' "__class_getitem__()" may be called instead of '
+ '"__getitem__()".\n'
+ ' See __class_getitem__ versus __getitem__ for more '
+ 'details.\n'
+ '\n'
'object.__setitem__(self, key, value)\n'
'\n'
' Called to implement assignment to "self[key]". Same note '
@@ -9844,12 +9844,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 container. 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 '
- 'iterable.\n'
+ 'implementation, which also does not require the object be '
+ 'iterable.\n'
'\n'
'object.__contains__(self, item)\n'
'\n'
@@ -9928,7 +9928,7 @@ topics = {'assert': 'The "assert" statement\n'
'object.__rfloordiv__(self, other)\n'
'object.__rmod__(self, other)\n'
'object.__rdivmod__(self, other)\n'
- 'object.__rpow__(self, other[, modulo])\n'
+ 'object.__rpow__(self, other[, modulo])\n'
'object.__rlshift__(self, other)\n'
'object.__rrshift__(self, other)\n'
'object.__rand__(self, other)\n'
@@ -9957,19 +9957,19 @@ topics = {'assert': 'The "assert" statement\n'
'"__rpow__()" (the\n'
' coercion rules would become too complicated).\n'
'\n'
- ' Note:\n'
- '\n'
- ' If the right operand’s type is a subclass of the left '
- 'operand’s\n'
- ' type and that subclass provides a different '
- 'implementation of the\n'
- ' reflected method for the operation, this method will be '
- 'called\n'
- ' before the left operand’s non-reflected method. This '
- 'behavior\n'
- ' allows subclasses to override their ancestors’ '
- 'operations.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' If the right operand’s type is a subclass of the left '
+ 'operand’s\n'
+ ' type and that subclass provides a different '
+ 'implementation of the\n'
+ ' reflected method for the operation, this method will be '
+ 'called\n'
+ ' before the left operand’s non-reflected method. This '
+ 'behavior\n'
+ ' allows subclasses to override their ancestors’ '
+ 'operations.\n'
+ '\n'
'object.__iadd__(self, other)\n'
'object.__isub__(self, other)\n'
'object.__imul__(self, other)\n'
@@ -10012,16 +10012,16 @@ topics = {'assert': 'The "assert" statement\n'
'the data\n'
' model.\n'
'\n'
- ' Note:\n'
- '\n'
- ' Due to a bug in the dispatching mechanism for "**=", a '
- 'class that\n'
- ' defines "__ipow__()" but returns "NotImplemented" would '
- 'fail to\n'
- ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
- 'bug is\n'
- ' fixed in Python 3.10.\n'
- '\n'
+ ' Note:\n'
+ '\n'
+ ' Due to a bug in the dispatching mechanism for "**=", a '
+ 'class that\n'
+ ' defines "__ipow__()" but returns "NotImplemented" would '
+ 'fail to\n'
+ ' fall back to "x.__pow__(y)" and "y.__rpow__(x)". This '
+ 'bug is\n'
+ ' fixed in Python 3.10.\n'
+ '\n'
'object.__neg__(self)\n'
'object.__pos__(self)\n'
'object.__abs__(self)\n'
@@ -10052,11 +10052,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
- ' If "__int__()", "__float__()" and "__complex__()" are not '
- 'defined\n'
- ' then corresponding built-in functions "int()", "float()" '
- 'and\n'
- ' "complex()" fall back to "__index__()".\n'
+ ' If "__int__()", "__float__()" and "__complex__()" are not '
+ 'defined\n'
+ ' then corresponding built-in functions "int()", "float()" '
+ 'and\n'
+ ' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -10072,9 +10072,9 @@ topics = {'assert': 'The "assert" statement\n'
' of the object truncated to an "Integral" (typically an '
'"int").\n'
'\n'
- ' The built-in function "int()" falls back to "__trunc__()" '
- 'if\n'
- ' neither "__int__()" nor "__index__()" is defined.\n'
+ ' The built-in function "int()" falls back to "__trunc__()" '
+ 'if\n'
+ ' neither "__int__()" nor "__index__()" is defined.\n'
'\n'
'\n'
'With Statement Context Managers\n'
@@ -10262,14 +10262,14 @@ topics = {'assert': 'The "assert" statement\n'
'capitalized\n'
' and the rest lowercased.\n'
'\n'
- ' Changed in version 3.8: The first character is now put '
- 'into\n'
- ' titlecase rather than uppercase. This means that '
- 'characters like\n'
- ' digraphs will only have their first letter capitalized, '
- 'instead of\n'
- ' the full character.\n'
- '\n'
+ ' Changed in version 3.8: The first character is now put '
+ 'into\n'
+ ' titlecase rather than uppercase. This means that '
+ 'characters like\n'
+ ' digraphs will only have their first letter capitalized, '
+ 'instead of\n'
+ ' the full character.\n'
+ '\n'
'str.casefold()\n'
'\n'
' Return a casefolded copy of the string. Casefolded '
@@ -10310,7 +10310,7 @@ topics = {'assert': 'The "assert" statement\n'
'*start* and\n'
' *end* are interpreted as in slice notation.\n'
'\n'
- 'str.encode(encoding="utf-8", errors="strict")\n'
+ 'str.encode(encoding="utf-8", errors="strict")\n'
'\n'
' Return an encoded version of the string as a bytes '
'object. Default\n'
@@ -10328,20 +10328,20 @@ 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'
- ' Python Development Mode, or use a debug build to check '
- '*errors*.\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'
+ ' Python Development Mode, or use a debug build to 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'
+ ' 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 '
@@ -10396,14 +10396,14 @@ topics = {'assert': 'The "assert" statement\n'
'"-1" if\n'
' *sub* is not found.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The "find()" method should be used only if you need '
- 'to know the\n'
- ' position of *sub*. To check if *sub* is a substring '
- 'or not, use\n'
- ' the "in" operator:\n'
+ ' Note:\n'
'\n'
+ ' The "find()" method should be used only if you need '
+ 'to know the\n'
+ ' position of *sub*. To check if *sub* is a substring '
+ 'or not, use\n'
+ ' the "in" operator:\n'
+ '\n'
" >>> 'Py' in 'Python'\n"
' True\n'
'\n'
@@ -10431,9 +10431,9 @@ topics = {'assert': 'The "assert" statement\n'
' formatting options that can be specified in format '
'strings.\n'
'\n'
- ' Note:\n'
- '\n'
- ' When formatting a number ("int", "float", "complex",\n'
+ ' Note:\n'
+ '\n'
+ ' When formatting a number ("int", "float", "complex",\n'
' "decimal.Decimal" and subclasses) with the "n" type '
'(ex:\n'
' "\'{:n}\'.format(1234)"), the function temporarily '
@@ -10480,20 +10480,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\n'
- ' "c" 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'
@@ -10507,91 +10507,91 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'str.isascii()\n'
'\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'
+ ' 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\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'
+ ' 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\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'
+ ' 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'
- ' Call "keyword.iskeyword()" to test whether string "s" '
- 'is a reserved\n'
- ' identifier, such as "def" and "class".\n'
- '\n'
- ' Example:\n'
- '\n'
- ' >>> from keyword import iskeyword\n'
- '\n'
- " >>> 'hello'.isidentifier(), iskeyword('hello')\n"
- ' (True, False)\n'
- " >>> 'def'.isidentifier(), iskeyword('def')\n"
- ' (True, True)\n'
- '\n'
+ ' Call "keyword.iskeyword()" to test whether string "s" '
+ 'is a reserved\n'
+ ' identifier, such as "def" and "class".\n'
+ '\n'
+ ' Example:\n'
+ '\n'
+ ' >>> from keyword import iskeyword\n'
+ '\n'
+ " >>> 'hello'.isidentifier(), iskeyword('hello')\n"
+ ' (True, False)\n'
+ " >>> 'def'.isidentifier(), iskeyword('def')\n"
+ ' (True, True)\n'
+ '\n'
'str.islower()\n'
'\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'
+ ' 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\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'
+ ' 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'
@@ -10607,46 +10607,46 @@ 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.\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'
+ ' 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\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'
+ ' 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'
' Return a string which is the concatenation of the '
@@ -10695,16 +10695,16 @@ topics = {'assert': 'The "assert" statement\n'
" >>> 'www.example.com'.lstrip('cmowz.')\n"
" 'example.com'\n"
'\n'
- ' See "str.removeprefix()" for a method that will remove '
- 'a single\n'
- ' prefix string rather than all of a set of characters. '
- 'For example:\n'
- '\n'
- " >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
- " 'ee!'\n"
- " >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
- " 'three!'\n"
- '\n'
+ ' See "str.removeprefix()" for a method that will remove '
+ 'a single\n'
+ ' prefix string rather than all of a set of characters. '
+ 'For example:\n'
+ '\n'
+ " >>> 'Arthur: three!'.lstrip('Arthur: ')\n"
+ " 'ee!'\n"
+ " >>> 'Arthur: three!'.removeprefix('Arthur: ')\n"
+ " 'three!'\n"
+ '\n'
'static str.maketrans(x[, y[, z]])\n'
'\n'
' This static method returns a translation table usable '
@@ -10741,35 +10741,35 @@ topics = {'assert': 'The "assert" statement\n'
'followed by\n'
' two empty strings.\n'
'\n'
- 'str.removeprefix(prefix, /)\n'
- '\n'
- ' If the string starts with the *prefix* string, return\n'
- ' "string[len(prefix):]". Otherwise, return a copy of the '
- 'original\n'
- ' string:\n'
- '\n'
- " >>> 'TestHook'.removeprefix('Test')\n"
- " 'Hook'\n"
- " >>> 'BaseTestCase'.removeprefix('Test')\n"
- " 'BaseTestCase'\n"
- '\n'
- ' New in version 3.9.\n'
- '\n'
- 'str.removesuffix(suffix, /)\n'
- '\n'
- ' If the string ends with the *suffix* string and that '
- '*suffix* is\n'
- ' not empty, return "string[:-len(suffix)]". Otherwise, '
- 'return a copy\n'
- ' of the original string:\n'
- '\n'
- " >>> 'MiscTests'.removesuffix('Tests')\n"
- " 'Misc'\n"
- " >>> 'TmpDirMixin'.removesuffix('Tests')\n"
- " 'TmpDirMixin'\n"
- '\n'
- ' New in version 3.9.\n'
- '\n'
+ 'str.removeprefix(prefix, /)\n'
+ '\n'
+ ' If the string starts with the *prefix* string, return\n'
+ ' "string[len(prefix):]". Otherwise, return a copy of the '
+ 'original\n'
+ ' string:\n'
+ '\n'
+ " >>> 'TestHook'.removeprefix('Test')\n"
+ " 'Hook'\n"
+ " >>> 'BaseTestCase'.removeprefix('Test')\n"
+ " 'BaseTestCase'\n"
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
+ 'str.removesuffix(suffix, /)\n'
+ '\n'
+ ' If the string ends with the *suffix* string and that '
+ '*suffix* is\n'
+ ' not empty, return "string[:-len(suffix)]". Otherwise, '
+ 'return a copy\n'
+ ' of the original string:\n'
+ '\n'
+ " >>> 'MiscTests'.removesuffix('Tests')\n"
+ " 'Misc'\n"
+ " >>> 'TmpDirMixin'.removesuffix('Tests')\n"
+ " 'TmpDirMixin'\n"
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
'str.replace(old, new[, count])\n'
'\n'
' Return a copy of the string with all occurrences of '
@@ -10816,7 +10816,7 @@ topics = {'assert': 'The "assert" statement\n'
'followed by\n'
' the string itself.\n'
'\n'
- 'str.rsplit(sep=None, maxsplit=-1)\n'
+ 'str.rsplit(sep=None, maxsplit=-1)\n'
'\n'
' Return a list of the words in the string, using *sep* '
'as the\n'
@@ -10847,17 +10847,17 @@ topics = {'assert': 'The "assert" statement\n'
" >>> 'mississippi'.rstrip('ipz')\n"
" 'mississ'\n"
'\n'
- ' See "str.removesuffix()" for a method that will remove '
- 'a single\n'
- ' suffix string rather than all of a set of characters. '
- 'For example:\n'
- '\n'
- " >>> 'Monty Python'.rstrip(' Python')\n"
- " 'M'\n"
- " >>> 'Monty Python'.removesuffix(' Python')\n"
- " 'Monty'\n"
- '\n'
- 'str.split(sep=None, maxsplit=-1)\n'
+ ' See "str.removesuffix()" for a method that will remove '
+ 'a single\n'
+ ' suffix string rather than all of a set of characters. '
+ 'For example:\n'
+ '\n'
+ " >>> 'Monty Python'.rstrip(' Python')\n"
+ " 'M'\n"
+ " >>> 'Monty Python'.removesuffix(' Python')\n"
+ " 'Monty'\n"
+ '\n'
+ 'str.split(sep=None, maxsplit=-1)\n'
'\n'
' Return a list of the words in the string, using *sep* '
'as the\n'
@@ -10912,7 +10912,7 @@ topics = {'assert': 'The "assert" statement\n'
" >>> ' 1 2 3 '.split()\n"
" ['1', '2', '3']\n"
'\n'
- 'str.splitlines(keepends=False)\n'
+ 'str.splitlines(keepends=False)\n'
'\n'
' Return a list of the lines in the string, breaking at '
'line\n'
@@ -10930,7 +10930,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Representation | '
'Description |\n'
' '
- '|=========================|===============================|\n'
+ '|=========================|===============================|\n'
' | "\\n" | Line '
'Feed |\n'
' '
@@ -11092,7 +11092,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> def titlecase(s):\n'
' ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n'
' ... lambda mo: '
- 'mo.group(0).capitalize(),\n'
+ 'mo.group(0).capitalize(),\n'
' ... s)\n'
' ...\n'
' >>> titlecase("they\'re bill\'s friends.")\n'
@@ -11269,7 +11269,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
- '|===================|===================================|=========|\n'
+ '|===================|===================================|=========|\n'
'| "\\newline" | Backslash and newline ignored '
'| |\n'
'+-------------------+-----------------------------------+---------+\n'
@@ -11315,7 +11315,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 | '
@@ -11338,20 +11338,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'2. Unlike in Standard C, exactly two hex digits are required.\n'
'\n'
- '3. In a bytes literal, hexadecimal and octal escapes denote the '
- 'byte\n'
- ' with the given value. In a string literal, these escapes '
- 'denote a\n'
- ' Unicode character with the given value.\n'
+ '3. In a bytes literal, hexadecimal and octal escapes denote the '
+ 'byte\n'
+ ' with the given value. In a string literal, these escapes '
+ 'denote a\n'
+ ' Unicode character with the given value.\n'
'\n'
'4. Changed in version 3.3: Support for name aliases [1] has been\n'
' added.\n'
'\n'
'5. Exactly four hex digits are required.\n'
'\n'
- '6. Any Unicode character can be encoded this way. Exactly eight '
- 'hex\n'
- ' digits are required.\n'
+ '6. Any Unicode character can be encoded this way. Exactly eight '
+ 'hex\n'
+ ' digits are required.\n'
'\n'
'Unlike Standard C, all unrecognized escape sequences are left in '
'the\n'
@@ -11369,9 +11369,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.6: Unrecognized escape sequences produce '
'a\n'
- ' "DeprecationWarning". In a future Python version they will be '
- 'a\n'
- ' "SyntaxWarning" and eventually a "SyntaxError".\n'
+ ' "DeprecationWarning". In a future Python version they will be '
+ 'a\n'
+ ' "SyntaxWarning" and eventually a "SyntaxError".\n'
'\n'
'Even in a raw literal, quotes can be escaped with a backslash, '
'but the\n'
@@ -11393,10 +11393,10 @@ topics = {'assert': 'The "assert" statement\n'
'subscriptions': 'Subscriptions\n'
'*************\n'
'\n'
- 'Subscription of a sequence (string, tuple or list) or '
- 'mapping\n'
- '(dictionary) object usually selects an item from the '
- 'collection:\n'
+ 'Subscription of a sequence (string, tuple or list) or '
+ 'mapping\n'
+ '(dictionary) object usually selects an item from the '
+ 'collection:\n'
'\n'
' subscription ::= primary "[" expression_list "]"\n'
'\n'
@@ -11447,13 +11447,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'A string’s items are characters. A character is not a '
'separate data\n'
- 'type but a string of exactly one character.\n'
- '\n'
- 'Subscription of certain *classes* or *types* creates a '
- 'generic alias.\n'
- 'In this case, user-defined classes can support subscription '
- 'by\n'
- 'providing a "__class_getitem__()" classmethod.\n',
+ 'type but a string of exactly one character.\n'
+ '\n'
+ 'Subscription of certain *classes* or *types* creates a '
+ 'generic alias.\n'
+ 'In this case, user-defined classes can support subscription '
+ 'by\n'
+ 'providing a "__class_getitem__()" classmethod.\n',
'truth': 'Truth Value Testing\n'
'*******************\n'
'\n'
@@ -11511,8 +11511,8 @@ topics = {'assert': 'The "assert" statement\n'
'object is “compatible” with the exception. An object is compatible\n'
'with an exception if it is the class or a base class of the '
'exception\n'
- 'object, or a tuple containing an item that is the class or a base\n'
- 'class of the exception object.\n'
+ 'object, or a tuple containing an item that is the class or a base\n'
+ 'class of the exception object.\n'
'\n'
'If no except clause matches the exception, the search for an '
'exception\n'
@@ -11590,9 +11590,9 @@ topics = {'assert': 'The "assert" statement\n'
'clause. If the "finally" clause raises another exception, the saved\n'
'exception is set as the context of the new exception. If the '
'"finally"\n'
- 'clause executes a "return", "break" or "continue" statement, the '
- 'saved\n'
- 'exception is discarded:\n'
+ 'clause executes a "return", "break" or "continue" statement, the '
+ 'saved\n'
+ 'exception is discarded:\n'
'\n'
' >>> def f():\n'
' ... try:\n'
@@ -11608,7 +11608,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'When a "return", "break" or "continue" statement is executed in the\n'
'"try" suite of a "try"…"finally" statement, the "finally" clause is\n'
- 'also executed ‘on the way out.’\n'
+ 'also executed ‘on the way out.’\n'
'\n'
'The return value of a function is determined by the last "return"\n'
'statement executed. Since the "finally" clause always executes, a\n'
@@ -11628,11 +11628,11 @@ topics = {'assert': 'The "assert" statement\n'
'Additional information on exceptions can be found in section\n'
'Exceptions, and information on using the "raise" statement to '
'generate\n'
- 'exceptions may be found in section The raise statement.\n'
- '\n'
- 'Changed in version 3.8: Prior to Python 3.8, a "continue" statement\n'
- 'was illegal in the "finally" clause due to a problem with the\n'
- 'implementation.\n',
+ 'exceptions may be found in section The raise statement.\n'
+ '\n'
+ 'Changed in version 3.8: Prior to Python 3.8, a "continue" statement\n'
+ 'was illegal in the "finally" clause due to a problem with the\n'
+ 'implementation.\n',
'types': 'The standard type hierarchy\n'
'***************************\n'
'\n'
@@ -11672,17 +11672,17 @@ topics = {'assert': 'The "assert" statement\n'
'for\n'
' the operands provided. (The interpreter will then try the\n'
' reflected operation, or some other fallback, depending on the\n'
- ' operator.) It should not be evaluated in a boolean context.\n'
+ ' operator.) It should not be evaluated in a boolean context.\n'
'\n'
' See Implementing the arithmetic operations for more details.\n'
'\n'
- ' Changed in version 3.9: Evaluating "NotImplemented" in a '
- 'boolean\n'
- ' context is deprecated. While it currently evaluates as true, it\n'
- ' will emit a "DeprecationWarning". It will raise a "TypeError" in '
- 'a\n'
- ' future version of Python.\n'
- '\n'
+ ' Changed in version 3.9: Evaluating "NotImplemented" in a '
+ 'boolean\n'
+ ' context is deprecated. While it currently evaluates as true, it\n'
+ ' will emit a "DeprecationWarning". It will raise a "TypeError" in '
+ 'a\n'
+ ' future version of Python.\n'
+ '\n'
'Ellipsis\n'
' This type has a single value. There is a single object with '
'this\n'
@@ -11700,27 +11700,27 @@ topics = {'assert': 'The "assert" statement\n'
'representation\n'
' in computers.\n'
'\n'
- ' The string representations of the numeric classes, computed by\n'
- ' "__repr__()" and "__str__()", have the following properties:\n'
- '\n'
- ' * They are valid numeric literals which, when passed to their '
- 'class\n'
- ' constructor, produce an object having the value of the '
- 'original\n'
- ' numeric.\n'
- '\n'
- ' * The representation is in base 10, when possible.\n'
- '\n'
- ' * Leading zeros, possibly excepting a single zero before a '
- 'decimal\n'
- ' point, are not shown.\n'
- '\n'
- ' * Trailing zeros, possibly excepting a single zero after a '
- 'decimal\n'
- ' point, are not shown.\n'
- '\n'
- ' * A sign is shown only when the number is negative.\n'
- '\n'
+ ' The string representations of the numeric classes, computed by\n'
+ ' "__repr__()" and "__str__()", have the following properties:\n'
+ '\n'
+ ' * They are valid numeric literals which, when passed to their '
+ 'class\n'
+ ' constructor, produce an object having the value of the '
+ 'original\n'
+ ' numeric.\n'
+ '\n'
+ ' * The representation is in base 10, when possible.\n'
+ '\n'
+ ' * Leading zeros, possibly excepting a single zero before a '
+ 'decimal\n'
+ ' point, are not shown.\n'
+ '\n'
+ ' * Trailing zeros, possibly excepting a single zero after a '
+ 'decimal\n'
+ ' point, are not shown.\n'
+ '\n'
+ ' * A sign is shown only when the number is negative.\n'
+ '\n'
' Python distinguishes between integers, floating point numbers, '
'and\n'
' complex numbers:\n'
@@ -11829,7 +11829,7 @@ topics = {'assert': 'The "assert" statement\n'
' points. All the code points in the range "U+0000 - '
'U+10FFFF"\n'
' can be represented in a string. Python doesn’t have a '
- '"char"\n'
+ '"char"\n'
' type; instead, every code point in the string is '
'represented\n'
' as a string object with length "1". The built-in '
@@ -11961,16 +11961,16 @@ topics = {'assert': 'The "assert" statement\n'
' then they can be used interchangeably to index the same\n'
' dictionary entry.\n'
'\n'
- ' Dictionaries preserve insertion order, meaning that keys will '
- 'be\n'
- ' produced in the same order they were added sequentially over '
- 'the\n'
- ' dictionary. Replacing an existing key does not change the '
- 'order,\n'
- ' however removing a key and re-inserting it will add it to '
- 'the\n'
- ' end instead of keeping its old place.\n'
- '\n'
+ ' Dictionaries preserve insertion order, meaning that keys will '
+ 'be\n'
+ ' produced in the same order they were added sequentially over '
+ 'the\n'
+ ' dictionary. Replacing an existing key does not change the '
+ 'order,\n'
+ ' however removing a key and re-inserting it will add it to '
+ 'the\n'
+ ' end instead of keeping its old place.\n'
+ '\n'
' Dictionaries are mutable; they can be created by the "{...}"\n'
' notation (see section Dictionary displays).\n'
'\n'
@@ -11979,13 +11979,13 @@ topics = {'assert': 'The "assert" statement\n'
'"collections"\n'
' module.\n'
'\n'
- ' Changed in version 3.7: Dictionaries did not preserve '
- 'insertion\n'
- ' order in versions of Python before 3.6. In CPython 3.6,\n'
- ' insertion order was preserved, but it was considered an\n'
- ' implementation detail at that time rather than a language\n'
- ' guarantee.\n'
- '\n'
+ ' Changed in version 3.7: Dictionaries did not preserve '
+ 'insertion\n'
+ ' order in versions of Python before 3.6. In CPython 3.6,\n'
+ ' insertion order was preserved, but it was considered an\n'
+ ' implementation detail at that time rather than a language\n'
+ ' guarantee.\n'
+ '\n'
'Callable types\n'
' These are the types to which the function call operation (see\n'
' section Calls) can be applied:\n'
@@ -12004,24 +12004,24 @@ topics = {'assert': 'The "assert" statement\n'
' | Attribute | Meaning '
'| |\n'
' '
- '|===========================|=================================|=============|\n'
+ '|===========================|=================================|=============|\n'
' | "__doc__" | The function’s documentation '
'| Writable |\n'
' | | string, or "None" if '
'| |\n'
' | | unavailable; not inherited by '
'| |\n'
- ' | | subclasses. '
+ ' | | subclasses. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
- ' | "__name__" | The function’s name. '
+ ' | "__name__" | The function’s name. '
'| Writable |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
- ' | "__qualname__" | The function’s *qualified '
+ ' | "__qualname__" | The function’s *qualified '
'| Writable |\n'
- ' | | name*. New in version 3.3. '
+ ' | | name*. New in version 3.3. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -12041,7 +12041,7 @@ topics = {'assert': 'The "assert" statement\n'
'| |\n'
' | | or "None" if no arguments have '
'| |\n'
- ' | | a default value. '
+ ' | | a default value. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -12122,8 +12122,8 @@ topics = {'assert': 'The "assert" statement\n'
' Additional information about a function’s definition can be\n'
' retrieved from its code object; see the description of '
'internal\n'
- ' types below. The "cell" type can be accessed in the "types"\n'
- ' module.\n'
+ ' types below. The "cell" type can be accessed in the "types"\n'
+ ' module.\n'
'\n'
' Instance methods\n'
' An instance method object combines a class, a class instance '
@@ -12243,14 +12243,14 @@ topics = {'assert': 'The "assert" statement\n'
'for"\n'
' statement to execute the body of the function.\n'
'\n'
- ' Calling the asynchronous iterator’s "aiterator.__anext__" '
- 'method\n'
- ' will return an *awaitable* which when awaited will execute '
- 'until\n'
- ' it provides a value using the "yield" expression. When the\n'
- ' function executes an empty "return" statement or falls off '
+ ' Calling the asynchronous iterator’s "aiterator.__anext__" '
+ 'method\n'
+ ' will return an *awaitable* which when awaited will execute '
+ 'until\n'
+ ' it provides a value using the "yield" expression. When the\n'
+ ' function executes an empty "return" statement or falls off '
'the\n'
- ' end, a "StopAsyncIteration" exception is raised and the\n'
+ ' end, a "StopAsyncIteration" exception is raised and the\n'
' asynchronous iterator will have reached the end of the set '
'of\n'
' values to be yielded.\n'
@@ -12481,37 +12481,37 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Special read-only attributes: "co_name" gives the function '
'name;\n'
- ' "co_argcount" is the total number of positional arguments\n'
- ' (including positional-only arguments and arguments with '
- 'default\n'
- ' values); "co_posonlyargcount" is the number of '
- 'positional-only\n'
- ' arguments (including arguments with default values);\n'
- ' "co_kwonlyargcount" is the number of keyword-only arguments\n'
- ' (including arguments with default values); "co_nlocals" is '
+ ' "co_argcount" is the total number of positional arguments\n'
+ ' (including positional-only arguments and arguments with '
+ 'default\n'
+ ' values); "co_posonlyargcount" is the number of '
+ 'positional-only\n'
+ ' arguments (including arguments with default values);\n'
+ ' "co_kwonlyargcount" is the number of keyword-only arguments\n'
+ ' (including arguments with default values); "co_nlocals" is '
'the\n'
- ' number of local variables used by the function (including\n'
- ' arguments); "co_varnames" is a tuple containing the names of '
- 'the\n'
- ' local variables (starting with the argument names);\n'
- ' "co_cellvars" is a tuple containing the names of local '
- 'variables\n'
- ' that are referenced by nested functions; "co_freevars" is a\n'
- ' tuple containing the names of free variables; "co_code" is a\n'
- ' string representing the sequence of bytecode instructions;\n'
- ' "co_consts" is a tuple containing the literals used by the\n'
- ' bytecode; "co_names" is a tuple containing the names used by '
- 'the\n'
- ' bytecode; "co_filename" is the filename from which the code '
- 'was\n'
- ' compiled; "co_firstlineno" is the first line number of the\n'
- ' function; "co_lnotab" is a string encoding the mapping from\n'
- ' bytecode offsets to line numbers (for details see the source\n'
- ' code of the interpreter); "co_stacksize" is the required '
- 'stack\n'
- ' size; "co_flags" is an integer encoding a number of flags '
- 'for\n'
- ' the interpreter.\n'
+ ' number of local variables used by the function (including\n'
+ ' arguments); "co_varnames" is a tuple containing the names of '
+ 'the\n'
+ ' local variables (starting with the argument names);\n'
+ ' "co_cellvars" is a tuple containing the names of local '
+ 'variables\n'
+ ' that are referenced by nested functions; "co_freevars" is a\n'
+ ' tuple containing the names of free variables; "co_code" is a\n'
+ ' string representing the sequence of bytecode instructions;\n'
+ ' "co_consts" is a tuple containing the literals used by the\n'
+ ' bytecode; "co_names" is a tuple containing the names used by '
+ 'the\n'
+ ' bytecode; "co_filename" is the filename from which the code '
+ 'was\n'
+ ' compiled; "co_firstlineno" is the first line number of the\n'
+ ' function; "co_lnotab" is a string encoding the mapping from\n'
+ ' bytecode offsets to line numbers (for details see the source\n'
+ ' code of the interpreter); "co_stacksize" is the required '
+ 'stack\n'
+ ' size; "co_flags" is an integer encoding a number of flags '
+ 'for\n'
+ ' the interpreter.\n'
'\n'
' The following flag bits are defined for "co_flags": bit '
'"0x04"\n'
@@ -12559,10 +12559,10 @@ topics = {'assert': 'The "assert" statement\n'
' gives the precise instruction (this is an index into the\n'
' bytecode string of the code object).\n'
'\n'
- ' Accessing "f_code" raises an auditing event '
- '"object.__getattr__"\n'
- ' with arguments "obj" and ""f_code"".\n'
- '\n'
+ ' Accessing "f_code" raises an auditing event '
+ '"object.__getattr__"\n'
+ ' with arguments "obj" and ""f_code"".\n'
+ '\n'
' Special writable attributes: "f_trace", if not "None", is a\n'
' function called for various events during code execution '
'(this\n'
@@ -12646,9 +12646,9 @@ topics = {'assert': 'The "assert" statement\n'
' the exception occurred in a "try" statement with no matching\n'
' except clause or with a finally clause.\n'
'\n'
- ' Accessing "tb_frame" raises an auditing event\n'
- ' "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
- '\n'
+ ' Accessing "tb_frame" raises an auditing event\n'
+ ' "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
+ '\n'
' Special writable attribute: "tb_next" is the next level in '
'the\n'
' stack trace (towards the frame where the exception occurred), '
@@ -12770,29 +12770,29 @@ topics = {'assert': 'The "assert" statement\n'
'"dict"\n'
'constructor.\n'
'\n'
- 'class dict(**kwargs)\n'
- 'class dict(mapping, **kwargs)\n'
- 'class dict(iterable, **kwargs)\n'
+ 'class dict(**kwargs)\n'
+ 'class dict(mapping, **kwargs)\n'
+ 'class dict(iterable, **kwargs)\n'
'\n'
' Return a new dictionary initialized from an optional '
'positional\n'
' argument and a possibly empty set of keyword arguments.\n'
'\n'
- ' Dictionaries can be created by several means:\n'
- '\n'
- ' * Use a comma-separated list of "key: value" pairs within '
- 'braces:\n'
- ' "{\'jack\': 4098, \'sjoerd\': 4127}" or "{4098: '
- "'jack', 4127:\n"
- ' \'sjoerd\'}"\n'
- '\n'
- ' * Use a dict comprehension: "{}", "{x: x ** 2 for x in '
- 'range(10)}"\n'
- '\n'
- ' * Use the type constructor: "dict()", "dict([(\'foo\', '
- "100), ('bar',\n"
- ' 200)])", "dict(foo=100, bar=200)"\n'
- '\n'
+ ' Dictionaries can be created by several means:\n'
+ '\n'
+ ' * Use a comma-separated list of "key: value" pairs within '
+ 'braces:\n'
+ ' "{\'jack\': 4098, \'sjoerd\': 4127}" or "{4098: '
+ "'jack', 4127:\n"
+ ' \'sjoerd\'}"\n'
+ '\n'
+ ' * Use a dict comprehension: "{}", "{x: x ** 2 for x in '
+ 'range(10)}"\n'
+ '\n'
+ ' * Use the type constructor: "dict()", "dict([(\'foo\', '
+ "100), ('bar',\n"
+ ' 200)])", "dict(foo=100, bar=200)"\n'
+ '\n'
' If no positional argument is given, an empty dictionary '
'is created.\n'
' If a positional argument is given and it is a mapping '
@@ -12830,8 +12830,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"
- " >>> f = dict({'one': 1, 'three': 3}, two=2)\n"
- ' >>> a == b == c == d == e == f\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 '
@@ -12844,11 +12844,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'
+ ' 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'
@@ -12929,13 +12929,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' "fromkeys()" is a class method that returns a new '
'dictionary.\n'
- ' *value* defaults to "None". All of the values refer '
- 'to just a\n'
- ' single instance, so it generally doesn’t make sense '
- 'for *value*\n'
- ' to be a mutable object such as an empty list. To get '
- 'distinct\n'
- ' values, use a dict comprehension instead.\n'
+ ' *value* defaults to "None". All of the values refer '
+ 'to just a\n'
+ ' single instance, so it generally doesn’t make sense '
+ 'for *value*\n'
+ ' to be a mutable object such as an empty list. To get '
+ 'distinct\n'
+ ' values, use a dict comprehension instead.\n'
'\n'
' get(key[, default])\n'
'\n'
@@ -12981,14 +12981,14 @@ topics = {'assert': 'The "assert" statement\n'
' versions, "popitem()" would return an arbitrary '
'key/value pair.\n'
'\n'
- ' reversed(d)\n'
- '\n'
- ' Return a reverse iterator over the keys of the '
- 'dictionary. This\n'
- ' is a shortcut for "reversed(d.keys())".\n'
- '\n'
- ' New in version 3.8.\n'
- '\n'
+ ' reversed(d)\n'
+ '\n'
+ ' Return a reverse iterator over the keys of the '
+ 'dictionary. This\n'
+ ' is a shortcut for "reversed(d.keys())".\n'
+ '\n'
+ ' New in version 3.8.\n'
+ '\n'
' setdefault(key[, default])\n'
'\n'
' If *key* is in the dictionary, return its value. If '
@@ -13019,44 +13019,44 @@ 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'
- ' d | other\n'
- '\n'
- ' Create a new dictionary with the merged keys and '
- 'values of *d*\n'
- ' and *other*, which must both be dictionaries. The '
- 'values of\n'
- ' *other* take priority when *d* and *other* share '
- 'keys.\n'
- '\n'
- ' New in version 3.9.\n'
- '\n'
- ' d |= other\n'
- '\n'
- ' Update the dictionary *d* with keys and values from '
- '*other*,\n'
- ' which may be either a *mapping* or an *iterable* of '
- 'key/value\n'
- ' pairs. The values of *other* take priority when *d* '
- 'and *other*\n'
- ' share keys.\n'
- '\n'
- ' New in version 3.9.\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'
+ ' d | other\n'
+ '\n'
+ ' Create a new dictionary with the merged keys and '
+ 'values of *d*\n'
+ ' and *other*, which must both be dictionaries. The '
+ 'values of\n'
+ ' *other* take priority when *d* and *other* share '
+ 'keys.\n'
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
+ ' d |= other\n'
+ '\n'
+ ' Update the dictionary *d* with keys and values from '
+ '*other*,\n'
+ ' which may be either a *mapping* or an *iterable* of '
+ 'key/value\n'
+ ' pairs. The values of *other* take priority when *d* '
+ 'and *other*\n'
+ ' share keys.\n'
+ '\n'
+ ' New in version 3.9.\n'
+ '\n'
' Dictionaries compare equal if and only if they have the '
'same "(key,\n'
- ' value)" pairs (regardless of ordering). Order comparisons '
- '(‘<’,\n'
- ' ‘<=’, ‘>=’, ‘>’) raise "TypeError".\n'
+ ' value)" pairs (regardless of ordering). Order comparisons '
+ '(‘<’,\n'
+ ' ‘<=’, ‘>=’, ‘>’) raise "TypeError".\n'
'\n'
' Dictionaries preserve insertion order. Note that '
'updating a key\n'
@@ -13085,27 +13085,27 @@ topics = {'assert': 'The "assert" statement\n'
'detail of\n'
' CPython from 3.6.\n'
'\n'
- ' Dictionaries and dictionary views are reversible.\n'
- '\n'
- ' >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}\n'
- ' >>> d\n'
- " {'one': 1, 'two': 2, 'three': 3, 'four': 4}\n"
- ' >>> list(reversed(d))\n'
- " ['four', 'three', 'two', 'one']\n"
- ' >>> list(reversed(d.values()))\n'
- ' [4, 3, 2, 1]\n'
- ' >>> list(reversed(d.items()))\n'
- " [('four', 4), ('three', 3), ('two', 2), ('one', 1)]\n"
- '\n'
- ' Changed in version 3.8: Dictionaries are now reversible.\n'
- '\n'
- 'See also:\n'
- '\n'
- ' "types.MappingProxyType" can be used to create a read-only '
- 'view of a\n'
- ' "dict".\n'
- '\n'
- '\n'
+ ' Dictionaries and dictionary views are reversible.\n'
+ '\n'
+ ' >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}\n'
+ ' >>> d\n'
+ " {'one': 1, 'two': 2, 'three': 3, 'four': 4}\n"
+ ' >>> list(reversed(d))\n'
+ " ['four', 'three', 'two', 'one']\n"
+ ' >>> list(reversed(d.values()))\n'
+ ' [4, 3, 2, 1]\n'
+ ' >>> list(reversed(d.items()))\n'
+ " [('four', 4), ('three', 3), ('two', 2), ('one', 1)]\n"
+ '\n'
+ ' Changed in version 3.8: Dictionaries are now reversible.\n'
+ '\n'
+ 'See also:\n'
+ '\n'
+ ' "types.MappingProxyType" can be used to create a read-only '
+ 'view of a\n'
+ ' "dict".\n'
+ '\n'
+ '\n'
'Dictionary view objects\n'
'=======================\n'
'\n'
@@ -13155,17 +13155,17 @@ topics = {'assert': 'The "assert" statement\n'
'value)"\n'
' tuple).\n'
'\n'
- 'reversed(dictview)\n'
- '\n'
- ' Return a reverse iterator over the keys, values or items '
- 'of the\n'
- ' dictionary. The view will be iterated in reverse order of '
- 'the\n'
- ' insertion.\n'
- '\n'
- ' Changed in version 3.8: Dictionary views are now '
- 'reversible.\n'
- '\n'
+ 'reversed(dictview)\n'
+ '\n'
+ ' Return a reverse iterator over the keys, values or items '
+ 'of the\n'
+ ' dictionary. The view will be iterated in reverse order of '
+ 'the\n'
+ ' insertion.\n'
+ '\n'
+ ' Changed in version 3.8: Dictionary views are now '
+ 'reversible.\n'
+ '\n'
'Keys views are set-like since their entries are unique and '
'hashable.\n'
'If all values are hashable, so that "(key, value)" pairs are '
@@ -13344,7 +13344,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" '
@@ -13487,14 +13487,14 @@ topics = {'assert': 'The "assert" statement\n'
'"None", it\n'
' is treated like "1".\n'
'\n'
- '6. Concatenating immutable sequences always results in a new '
- 'object.\n'
- ' This means that building up a sequence by repeated '
- 'concatenation\n'
- ' will have a quadratic runtime cost in the total sequence '
- 'length.\n'
- ' To get a linear runtime cost, you must switch to one of the\n'
- ' alternatives below:\n'
+ '6. Concatenating immutable sequences always results in a new '
+ 'object.\n'
+ ' This means that building up a sequence by repeated '
+ 'concatenation\n'
+ ' will have a quadratic runtime cost in the total sequence '
+ 'length.\n'
+ ' To get a linear runtime cost, you must switch to one of the\n'
+ ' alternatives below:\n'
'\n'
' * if concatenating "str" objects, you can build a list and '
'use\n'
@@ -13512,27 +13512,27 @@ topics = {'assert': 'The "assert" statement\n'
' * for other types, investigate the relevant class '
'documentation\n'
'\n'
- '7. Some sequence types (such as "range") only support item '
- 'sequences\n'
- ' that follow specific patterns, and hence don’t support '
+ '7. Some sequence types (such as "range") only support item '
+ 'sequences\n'
+ ' that follow specific patterns, and hence don’t support '
'sequence\n'
- ' concatenation or repetition.\n'
- '\n'
- '8. "index" raises "ValueError" when *x* is not found in *s*. Not '
- 'all\n'
- ' implementations support passing the additional arguments *i* '
- 'and\n'
- ' *j*. These arguments allow efficient searching of subsections '
- 'of\n'
- ' the sequence. Passing the extra arguments is roughly '
- 'equivalent to\n'
- ' using "s[i:j].index(x)", only without copying any data and '
- 'with the\n'
- ' returned index being relative to the start of the sequence '
- 'rather\n'
- ' than the start of the slice.\n'
- '\n'
- '\n'
+ ' concatenation or repetition.\n'
+ '\n'
+ '8. "index" raises "ValueError" when *x* is not found in *s*. Not '
+ 'all\n'
+ ' implementations support passing the additional arguments *i* '
+ 'and\n'
+ ' *j*. These arguments allow efficient searching of subsections '
+ 'of\n'
+ ' the sequence. Passing the extra arguments is roughly '
+ 'equivalent to\n'
+ ' using "s[i:j].index(x)", only without copying any data and '
+ 'with the\n'
+ ' returned index being relative to the start of the sequence '
+ 'rather\n'
+ ' than the start of the slice.\n'
+ '\n'
+ '\n'
'Immutable Sequence Types\n'
'========================\n'
'\n'
@@ -13575,7 +13575,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'
'| | '
@@ -13637,7 +13637,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | "s[i:i] = '
'[x]") | |\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
- '| "s.pop()" or "s.pop(i)" | retrieves the item at *i* '
+ '| "s.pop()" or "s.pop(i)" | retrieves the item at *i* '
'and | (2) |\n'
'| | also removes it from '
'*s* | |\n'
@@ -13658,25 +13658,25 @@ topics = {'assert': 'The "assert" statement\n'
'1. *t* must have the same length as the slice it is replacing.\n'
'\n'
'2. The optional argument *i* defaults to "-1", so that by '
- 'default the\n'
- ' last item is removed and returned.\n'
+ 'default the\n'
+ ' last item is removed and returned.\n'
'\n'
- '3. "remove()" raises "ValueError" when *x* is not found in *s*.\n'
+ '3. "remove()" raises "ValueError" when *x* is not found in *s*.\n'
'\n'
- '4. The "reverse()" method modifies the sequence in place for '
- 'economy\n'
- ' of space when reversing a large sequence. To remind users '
- 'that it\n'
- ' operates by side effect, it does not return the reversed '
- 'sequence.\n'
+ '4. The "reverse()" method modifies the sequence in place for '
+ 'economy\n'
+ ' of space when reversing a large sequence. To remind users '
+ 'that it\n'
+ ' operates by side effect, it does not return the reversed '
+ 'sequence.\n'
'\n'
'5. "clear()" and "copy()" are included for consistency with the\n'
' interfaces of mutable containers that don’t support slicing\n'
- ' operations (such as "dict" and "set"). "copy()" is not part '
- 'of the\n'
- ' "collections.abc.MutableSequence" ABC, but most concrete '
- 'mutable\n'
- ' sequence classes provide it.\n'
+ ' operations (such as "dict" and "set"). "copy()" is not part '
+ 'of the\n'
+ ' "collections.abc.MutableSequence" ABC, but most concrete '
+ 'mutable\n'
+ ' sequence classes provide it.\n'
'\n'
' New in version 3.3: "clear()" and "copy()" methods.\n'
'\n'
@@ -13705,9 +13705,9 @@ topics = {'assert': 'The "assert" statement\n'
' * Using a pair of square brackets to denote the empty list: '
'"[]"\n'
'\n'
- ' * Using square brackets, separating items with commas: "[a]", '
- '"[a,\n'
- ' b, c]"\n'
+ ' * Using square brackets, separating items with commas: "[a]", '
+ '"[a,\n'
+ ' b, c]"\n'
'\n'
' * Using a list comprehension: "[x for x in iterable]"\n'
'\n'
@@ -13788,10 +13788,10 @@ topics = {'assert': 'The "assert" statement\n'
'salary\n'
' grade).\n'
'\n'
- ' For sorting examples and a brief sorting tutorial, see '
- 'Sorting\n'
- ' HOW TO.\n'
- '\n'
+ ' For sorting examples and a brief sorting tutorial, see '
+ 'Sorting\n'
+ ' HOW TO.\n'
+ '\n'
' **CPython implementation detail:** While a list is being '
'sorted,\n'
' the effect of attempting to mutate, or even inspect, the '
@@ -13877,8 +13877,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' The arguments to the range constructor must be integers '
'(either\n'
- ' built-in "int" or any object that implements the '
- '"__index__()"\n'
+ ' built-in "int" or any object that implements the '
+ '"__index__()"\n'
' special method). If the *step* argument is omitted, it '
'defaults to\n'
' "1". If the *start* argument is omitted, it defaults to "0". '
@@ -14011,9 +14011,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'See also:\n'
'\n'
- ' * The linspace recipe shows how to implement a lazy version of '
- 'range\n'
- ' suitable for floating point applications.\n',
+ ' * The linspace recipe shows how to implement a lazy version of '
+ 'range\n'
+ ' suitable for floating point applications.\n',
'typesseq-mutable': 'Mutable Sequence Types\n'
'**********************\n'
'\n'
@@ -14038,7 +14038,7 @@ topics = {'assert': 'The "assert" statement\n'
'| Operation | '
'Result | Notes '
'|\n'
- '|================================|==================================|=======================|\n'
+ '|================================|==================================|=======================|\n'
'| "s[i] = x" | item *i* of *s* is '
'replaced by | |\n'
'| | '
@@ -14101,7 +14101,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | "s[i:i] = '
'[x]") | |\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
- '| "s.pop()" or "s.pop(i)" | retrieves the item at '
+ '| "s.pop()" or "s.pop(i)" | retrieves the item at '
'*i* and | (2) |\n'
'| | also removes it from '
'*s* | |\n'
@@ -14124,28 +14124,28 @@ topics = {'assert': 'The "assert" statement\n'
'replacing.\n'
'\n'
'2. The optional argument *i* defaults to "-1", so that '
- 'by default the\n'
- ' last item is removed and returned.\n'
+ 'by default the\n'
+ ' last item is removed and returned.\n'
'\n'
- '3. "remove()" raises "ValueError" when *x* is not found '
- 'in *s*.\n'
+ '3. "remove()" raises "ValueError" when *x* is not found '
+ 'in *s*.\n'
'\n'
'4. The "reverse()" method modifies the sequence in place '
- 'for economy\n'
- ' of space when reversing a large sequence. To remind '
- 'users that it\n'
- ' operates by side effect, it does not return the '
- 'reversed sequence.\n'
+ 'for economy\n'
+ ' of space when reversing a large sequence. To remind '
+ 'users that it\n'
+ ' operates by side effect, it does not return the '
+ 'reversed sequence.\n'
'\n'
'5. "clear()" and "copy()" are included for consistency '
'with the\n'
' interfaces of mutable containers that don’t support '
'slicing\n'
- ' operations (such as "dict" and "set"). "copy()" is '
- 'not part of the\n'
- ' "collections.abc.MutableSequence" ABC, but most '
- 'concrete mutable\n'
- ' sequence classes provide it.\n'
+ ' operations (such as "dict" and "set"). "copy()" is '
+ 'not part of the\n'
+ ' "collections.abc.MutableSequence" ABC, but most '
+ 'concrete mutable\n'
+ ' sequence classes provide it.\n'
'\n'
' New in version 3.3: "clear()" and "copy()" methods.\n'
'\n'
@@ -14166,21 +14166,21 @@ topics = {'assert': 'The "assert" statement\n'
' u_expr ::= power | "-" u_expr | "+" u_expr | "~" u_expr\n'
'\n'
'The unary "-" (minus) operator yields the negation of its numeric\n'
- 'argument; the operation can be overridden with the "__neg__()" '
- 'special\n'
- 'method.\n'
+ 'argument; the operation can be overridden with the "__neg__()" '
+ 'special\n'
+ 'method.\n'
'\n'
'The unary "+" (plus) operator yields its numeric argument '
- 'unchanged;\n'
- 'the operation can be overridden with the "__pos__()" special '
- 'method.\n'
+ 'unchanged;\n'
+ 'the operation can be overridden with the "__pos__()" special '
+ 'method.\n'
'\n'
'The unary "~" (invert) operator yields the bitwise inversion of '
'its\n'
'integer argument. The bitwise inversion of "x" is defined as\n'
- '"-(x+1)". It only applies to integral numbers or to custom '
- 'objects\n'
- 'that override the "__invert__()" special method.\n'
+ '"-(x+1)". It only applies to integral numbers or to custom '
+ 'objects\n'
+ 'that override the "__invert__()" special method.\n'
'\n'
'In all three cases, if the argument does not have the proper type, '
'a\n'
@@ -14191,7 +14191,7 @@ topics = {'assert': 'The "assert" statement\n'
'The "while" statement is used for repeated execution as long as an\n'
'expression is true:\n'
'\n'
- ' while_stmt ::= "while" assignment_expression ":" suite\n'
+ ' while_stmt ::= "while" assignment_expression ":" suite\n'
' ["else" ":" suite]\n'
'\n'
'This repeatedly tests the expression and, if it is true, executes '
@@ -14224,32 +14224,32 @@ topics = {'assert': 'The "assert" statement\n'
'The execution of the "with" statement with one “item” proceeds as\n'
'follows:\n'
'\n'
- '1. The context expression (the expression given in the "with_item") '
- 'is\n'
- ' evaluated to obtain a context manager.\n'
- '\n'
- '2. The context manager’s "__enter__()" is loaded for later use.\n'
+ '1. The context expression (the expression given in the "with_item") '
+ 'is\n'
+ ' evaluated to obtain a context manager.\n'
'\n'
- '3. The context manager’s "__exit__()" is loaded for later use.\n'
+ '2. The context manager’s "__enter__()" is loaded for later use.\n'
'\n'
- '4. The context manager’s "__enter__()" method is invoked.\n'
+ '3. The context manager’s "__exit__()" is loaded for later use.\n'
'\n'
- '5. If a target was included in the "with" statement, the return '
- 'value\n'
- ' from "__enter__()" is assigned to it.\n'
+ '4. The context manager’s "__enter__()" method is invoked.\n'
+ '\n'
+ '5. If a target was included in the "with" statement, the return '
+ 'value\n'
+ ' from "__enter__()" is assigned to it.\n'
'\n'
- ' Note:\n'
- '\n'
- ' The "with" statement guarantees that if the "__enter__()" '
- 'method\n'
- ' returns without an error, then "__exit__()" will always be\n'
+ ' Note:\n'
+ '\n'
+ ' The "with" statement guarantees that if the "__enter__()" '
+ 'method\n'
+ ' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to the\n'
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
'\n'
- '6. The suite is executed.\n'
+ '6. The suite is executed.\n'
'\n'
- '7. The context manager’s "__exit__()" method is invoked. If an\n'
+ '7. The context manager’s "__exit__()" method is invoked. If an\n'
' exception caused the suite to be exited, its type, value, and\n'
' traceback are passed as arguments to "__exit__()". Otherwise, '
'three\n'
@@ -14269,41 +14269,41 @@ topics = {'assert': 'The "assert" statement\n'
'proceeds\n'
' at the normal location for the kind of exit that was taken.\n'
'\n'
- 'The following code:\n'
- '\n'
- ' with EXPRESSION as TARGET:\n'
- ' SUITE\n'
- '\n'
- 'is semantically equivalent to:\n'
- '\n'
- ' manager = (EXPRESSION)\n'
- ' enter = type(manager).__enter__\n'
- ' exit = type(manager).__exit__\n'
- ' value = enter(manager)\n'
- ' hit_except = False\n'
- '\n'
- ' try:\n'
- ' TARGET = value\n'
- ' SUITE\n'
- ' except:\n'
- ' hit_except = True\n'
- ' if not exit(manager, *sys.exc_info()):\n'
- ' raise\n'
- ' finally:\n'
- ' if not hit_except:\n'
- ' exit(manager, None, None, None)\n'
- '\n'
+ 'The following code:\n'
+ '\n'
+ ' with EXPRESSION as TARGET:\n'
+ ' SUITE\n'
+ '\n'
+ 'is semantically equivalent to:\n'
+ '\n'
+ ' manager = (EXPRESSION)\n'
+ ' enter = type(manager).__enter__\n'
+ ' exit = type(manager).__exit__\n'
+ ' value = enter(manager)\n'
+ ' hit_except = False\n'
+ '\n'
+ ' try:\n'
+ ' TARGET = value\n'
+ ' SUITE\n'
+ ' except:\n'
+ ' hit_except = True\n'
+ ' if not exit(manager, *sys.exc_info()):\n'
+ ' raise\n'
+ ' finally:\n'
+ ' if not hit_except:\n'
+ ' exit(manager, None, None, None)\n'
+ '\n'
'With more than one item, the context managers are processed as if\n'
'multiple "with" statements were nested:\n'
'\n'
' with A() as a, B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
- 'is semantically equivalent to:\n'
+ 'is semantically equivalent to:\n'
'\n'
' with A() as a:\n'
' with B() as b:\n'
- ' SUITE\n'
+ ' SUITE\n'
'\n'
'Changed in version 3.1: Support for multiple context expressions.\n'
'\n'