aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Lib/pydoc_data
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.com>2024-12-23 19:39:02 +0300
committershadchin <shadchin@yandex-team.com>2024-12-23 19:54:20 +0300
commit65a5bf9d37a3b29eb394f560b9a09318196c40e8 (patch)
treee5cd68fb0682b2388e52d9806bb87adc348e21a8 /contrib/tools/python3/Lib/pydoc_data
parenta1dd87a52878ab3e46e5fd2dba5ecbba6113d7e0 (diff)
downloadydb-65a5bf9d37a3b29eb394f560b9a09318196c40e8.tar.gz
Update Python 3 to 3.12.8
commit_hash:c20045b8a987d8720e1f3328270357491d5530f3
Diffstat (limited to 'contrib/tools/python3/Lib/pydoc_data')
-rw-r--r--contrib/tools/python3/Lib/pydoc_data/topics.py824
1 files changed, 549 insertions, 275 deletions
diff --git a/contrib/tools/python3/Lib/pydoc_data/topics.py b/contrib/tools/python3/Lib/pydoc_data/topics.py
index b5464cb4d0..12523999ca 100644
--- a/contrib/tools/python3/Lib/pydoc_data/topics.py
+++ b/contrib/tools/python3/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Tue Oct 1 04:02:04 2024
+# Autogenerated by Sphinx on Tue Dec 3 19:41:14 2024
# as part of the release process.
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
@@ -29,13 +29,12 @@ topics = {'assert': 'The "assert" statement\n'
'(command\n'
'line option "-O"). The current code generator emits no code for '
'an\n'
- 'assert statement when optimization is requested at compile time. '
- 'Note\n'
- 'that it is unnecessary to include the source code for the '
- 'expression\n'
- 'that failed in the error message; it will be displayed as part of '
- 'the\n'
- 'stack trace.\n'
+ '"assert" statement when optimization is requested at compile '
+ 'time.\n'
+ 'Note that it is unnecessary to include the source code for the\n'
+ 'expression that failed in the error message; it will be displayed '
+ 'as\n'
+ 'part of the stack trace.\n'
'\n'
'Assignments to "__debug__" are illegal. The value for the '
'built-in\n'
@@ -673,7 +672,8 @@ topics = {'assert': 'The "assert" statement\n'
'should either\n'
' return the (computed) attribute value or raise an '
'"AttributeError"\n'
- ' exception.\n'
+ ' exception. The "object" class itself does not provide '
+ 'this method.\n'
'\n'
' Note that if the attribute is found through the '
'normal mechanism,\n'
@@ -856,7 +856,9 @@ topics = {'assert': 'The "assert" statement\n'
'parents). In the\n'
'examples below, “the attribute” refers to the attribute '
'whose name is\n'
- 'the key of the property in the owner class’ "__dict__".\n'
+ 'the key of the property in the owner class’ "__dict__". '
+ 'The "object"\n'
+ 'class itself does not implement any of these protocols.\n'
'\n'
'object.__get__(self, instance, owner=None)\n'
'\n'
@@ -1529,7 +1531,9 @@ topics = {'assert': 'The "assert" statement\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',
+ ' "type(x).__call__(x, arg1, ...)". The "object" class '
+ 'itself does\n'
+ ' not provide this method.\n',
'calls': 'Calls\n'
'*****\n'
'\n'
@@ -1714,6 +1718,9 @@ topics = {'assert': 'The "assert" statement\n'
' Function definitions. When the code block executes a "return"\n'
' statement, this specifies the return value of the function '
'call.\n'
+ ' If execution reaches the end of the code block without executing '
+ 'a\n'
+ ' "return" statement, the return value is "None".\n'
'\n'
'a built-in function or method:\n'
' The result is up to the interpreter; see Built-in Functions for '
@@ -2762,18 +2769,15 @@ topics = {'assert': 'The "assert" statement\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'
+ ' else:\n'
+ ' exit(manager, None, None, None)\n'
'\n'
'With more than one item, the context managers are processed as '
'if\n'
@@ -4389,6 +4393,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For more information on context managers, see Context '
'Manager Types.\n'
+ 'The "object" class itself does not provide the context '
+ 'manager\n'
+ 'methods.\n'
'\n'
'object.__enter__(self)\n'
'\n'
@@ -4658,17 +4665,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' This is typically used for debugging, so it is important '
'that the\n'
- ' representation is information-rich and unambiguous.\n'
+ ' representation is information-rich and unambiguous. A '
+ 'default\n'
+ ' implementation is provided by the "object" class '
+ 'itself.\n'
'\n'
'object.__str__(self)\n'
'\n'
- ' Called by "str(object)" and the built-in functions '
- '"format()" and\n'
- ' "print()" to compute the “informal” or nicely printable '
- 'string\n'
- ' representation of an object. The return value must be a '
- 'string\n'
- ' object.\n'
+ ' Called by "str(object)", the default "__format__()" '
+ 'implementation,\n'
+ ' and the built-in function "print()", to compute the '
+ '“informal” or\n'
+ ' nicely printable string representation of an object. '
+ 'The return\n'
+ ' value must be a str object.\n'
'\n'
' This method differs from "object.__repr__()" in that '
'there is no\n'
@@ -4684,7 +4694,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called by bytes to compute a byte-string representation '
'of an\n'
- ' object. This should return a "bytes" object.\n'
+ ' object. This should return a "bytes" object. The '
+ '"object" class\n'
+ ' itself does not provide this method.\n'
'\n'
'object.__format__(self, format_spec)\n'
'\n'
@@ -4712,6 +4724,11 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' The return value must be a string object.\n'
'\n'
+ ' The default implementation by the "object" class should '
+ 'be given an\n'
+ ' empty *format_spec* string. It delegates to '
+ '"__str__()".\n'
+ '\n'
' Changed in version 3.4: The __format__ method of '
'"object" itself\n'
' raises a "TypeError" if passed any non-empty string.\n'
@@ -4769,6 +4786,16 @@ topics = {'assert': 'The "assert" statement\n'
' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
+ ' By default, the "object" class provides implementations '
+ 'consistent\n'
+ ' with Value comparisons: equality compares according to '
+ 'object\n'
+ ' identity, and order comparisons raise "TypeError". Each '
+ 'default\n'
+ ' method may generate these results directly, but may also '
+ 'return\n'
+ ' "NotImplemented".\n'
+ '\n'
' See the paragraph on "__hash__()" for some important '
'notes on\n'
' creating *hashable* objects which support custom '
@@ -4855,12 +4882,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' User-defined classes have "__eq__()" and "__hash__()" '
'methods by\n'
- ' default; with them, all objects compare unequal (except '
- 'with\n'
- ' themselves) and "x.__hash__()" returns an appropriate '
- 'value such\n'
- ' that "x == y" implies both that "x is y" and "hash(x) == '
- 'hash(y)".\n'
+ ' default (inherited from the "object" class); with them, '
+ 'all objects\n'
+ ' compare unequal (except with themselves) and '
+ '"x.__hash__()" returns\n'
+ ' an appropriate value such that "x == y" implies both '
+ 'that "x is y"\n'
+ ' and "hash(x) == hash(y)".\n'
'\n'
' A class that overrides "__eq__()" and does not define '
'"__hash__()"\n'
@@ -4931,9 +4959,9 @@ topics = {'assert': 'The "assert" statement\n'
'the object is\n'
' considered true if its result is nonzero. If a class '
'defines\n'
- ' neither "__len__()" nor "__bool__()", all its instances '
- 'are\n'
- ' considered true.\n',
+ ' neither "__len__()" nor "__bool__()" (which is true of '
+ 'the "object"\n'
+ ' class itself), all its instances are considered true.\n',
'debugger': '"pdb" — The Python Debugger\n'
'***************************\n'
'\n'
@@ -6802,10 +6830,12 @@ topics = {'assert': 'The "assert" statement\n'
'printing fields |\n'
'| | in the form ‘+000000120’. This alignment '
'option is only |\n'
- '| | valid for numeric types. It becomes the '
- 'default for |\n'
- '| | numbers when ‘0’ immediately precedes the '
- 'field width. |\n'
+ '| | valid for numeric types, excluding "complex". '
+ 'It becomes |\n'
+ '| | the default for numbers when ‘0’ immediately '
+ 'precedes the |\n'
+ '| | field '
+ 'width. |\n'
'+-----------+------------------------------------------------------------+\n'
'| "\'^\'" | Forces the field to be centered within the '
'available |\n'
@@ -6912,9 +6942,9 @@ topics = {'assert': 'The "assert" statement\n'
'field by a\n'
'zero ("\'0\'") character enables sign-aware zero-padding '
'for numeric\n'
- 'types. This is equivalent to a *fill* character of "\'0\'" '
- 'with an\n'
- '*alignment* type of "\'=\'".\n'
+ 'types, excluding "complex". This is equivalent to a *fill* '
+ 'character\n'
+ 'of "\'0\'" with an *alignment* type of "\'=\'".\n'
'\n'
'Changed in version 3.10: Preceding the *width* field by '
'"\'0\'" no\n'
@@ -7045,12 +7075,10 @@ topics = {'assert': 'The "assert" statement\n'
'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'
+ ' | | coefficient digits for "Decimal". If '
+ '"p=0", the decimal |\n'
+ ' | | point is omitted unless the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'E\'" | Scientific notation. Same as "\'e\'" '
@@ -7069,12 +7097,10 @@ topics = {'assert': 'The "assert" statement\n'
'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'
+ ' | | coefficient digits for "Decimal". If '
+ '"p=0", the decimal |\n'
+ ' | | point is omitted unless the "#" option is '
+ 'used. |\n'
' '
'+-----------+------------------------------------------------------------+\n'
' | "\'F\'" | Fixed-point notation. Same as "\'f\'", '
@@ -7184,6 +7210,32 @@ topics = {'assert': 'The "assert" statement\n'
' '
'+-----------+------------------------------------------------------------+\n'
'\n'
+ 'The result should be correctly rounded to a given precision '
+ '"p" of\n'
+ 'digits after the decimal point. The rounding mode for '
+ '"float" matches\n'
+ 'that of the "round()" builtin. For "Decimal", the rounding '
+ 'mode of\n'
+ 'the current context will be used.\n'
+ '\n'
+ 'The available presentation types for "complex" are the same '
+ 'as those\n'
+ 'for "float" ("\'%\'" is not allowed). Both the real and '
+ 'imaginary\n'
+ 'components of a complex number are formatted as '
+ 'floating-point\n'
+ 'numbers, according to the specified presentation type. '
+ 'They are\n'
+ 'separated by the mandatory sign of the imaginary part, the '
+ 'latter\n'
+ 'being terminated by a "j" suffix. If the presentation type '
+ 'is\n'
+ 'missing, the result will match the output of "str()" '
+ '(complex numbers\n'
+ 'with a non-zero real part are also surrounded by '
+ 'parentheses),\n'
+ 'possibly altered by other format modifiers.\n'
+ '\n'
'\n'
'Format examples\n'
'===============\n'
@@ -7577,33 +7629,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' global_stmt ::= "global" identifier ("," identifier)*\n'
'\n'
- 'The "global" statement is a declaration which holds for the '
- 'entire\n'
- 'current code block. It means that the listed identifiers are to '
- 'be\n'
- 'interpreted as globals. It would be impossible to assign to a '
- 'global\n'
- 'variable without "global", although free variables may refer to\n'
- 'globals without being declared global.\n'
- '\n'
- 'Names listed in a "global" statement must not be used in the same '
- 'code\n'
- 'block textually preceding that "global" statement.\n'
- '\n'
- 'Names listed in a "global" statement must not be defined as '
- 'formal\n'
- 'parameters, or as targets in "with" statements or "except" '
- 'clauses, or\n'
- 'in a "for" target list, "class" definition, function definition,\n'
- '"import" statement, or variable annotation.\n'
+ 'The "global" statement causes the listed identifiers to be '
+ 'interpreted\n'
+ 'as globals. It would be impossible to assign to a global variable\n'
+ 'without "global", although free variables may refer to globals '
+ 'without\n'
+ 'being declared global.\n'
'\n'
- '**CPython implementation detail:** The current implementation does '
- 'not\n'
- 'enforce some of these restrictions, but programs should not abuse '
- 'this\n'
- 'freedom, as future implementations may enforce them or silently '
- 'change\n'
- 'the meaning of the program.\n'
+ 'The "global" statement applies to the entire scope of a function '
+ 'or\n'
+ 'class body. A "SyntaxError" is raised if a variable is used or\n'
+ 'assigned to prior to its global declaration in the scope.\n'
'\n'
'**Programmer’s note:** "global" is a directive to the parser. It\n'
'applies only to code parsed at the same time as the "global"\n'
@@ -7690,19 +7726,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Within the ASCII range (U+0001..U+007F), the valid characters '
'for\n'
- 'identifiers are the same as in Python 2.x: the uppercase and '
- 'lowercase\n'
- 'letters "A" through "Z", the underscore "_" and, except for '
- 'the first\n'
- 'character, the digits "0" through "9".\n'
- '\n'
- 'Python 3.0 introduces additional characters from outside the '
- 'ASCII\n'
- 'range (see **PEP 3131**). For these characters, the '
- 'classification\n'
- 'uses the version of the Unicode Character Database as '
- 'included in the\n'
- '"unicodedata" module.\n'
+ 'identifiers include the uppercase and lowercase letters "A" '
+ 'through\n'
+ '"Z", the underscore "_" and, except for the first character, '
+ 'the\n'
+ 'digits "0" through "9". Python 3.0 introduced additional '
+ 'characters\n'
+ 'from outside the ASCII range (see **PEP 3131**). For these\n'
+ 'characters, the classification uses the version of the '
+ 'Unicode\n'
+ 'Character Database as included in the "unicodedata" module.\n'
'\n'
'Identifiers are unlimited in length. Case is significant.\n'
'\n'
@@ -8666,8 +8699,8 @@ topics = {'assert': 'The "assert" statement\n'
'scope,\n'
'or if there is no nonlocal scope, a "SyntaxError" is raised.\n'
'\n'
- 'The nonlocal statement applies to the entire scope of a function '
- 'or\n'
+ 'The "nonlocal" statement applies to the entire scope of a '
+ 'function or\n'
'class body. A "SyntaxError" is raised if a variable is used or\n'
'assigned to prior to its nonlocal declaration in the scope.\n'
'\n'
@@ -9425,56 +9458,58 @@ 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()", '
+ 'None of them are provided by the "object" class itself. '
+ 'Containers\n'
+ 'usually are *sequences* (such as "lists" or "tuples") or '
+ '*mappings*\n'
+ '(like *dictionaries*), but can represent other containers '
+ 'as well.\n'
+ 'The first set of methods is used either to emulate a '
+ 'sequence or to\n'
+ 'emulate a mapping; the difference is that for a sequence, '
+ 'the\n'
+ 'allowable keys should be the integers *k* for which "0 <= '
+ 'k < N" where\n'
+ '*N* is the length of the sequence, or "slice" objects, '
+ 'which define a\n'
+ 'range of items. It is also recommended that mappings '
+ 'provide the\n'
+ 'methods "keys()", "values()", "items()", "get()", '
+ '"clear()",\n'
+ '"setdefault()", "pop()", "popitem()", "copy()", and '
+ '"update()"\n'
+ 'behaving similar to those for Python’s standard '
+ '"dictionary" objects.\n'
+ 'The "collections.abc" module provides a "MutableMapping" '
+ '*abstract\n'
+ 'base class* to help create those methods from a base set '
+ 'of\n'
+ '"__getitem__()", "__setitem__()", "__delitem__()", and '
+ '"keys()".\n'
+ 'Mutable sequences should provide methods "append()", '
+ '"count()",\n'
+ '"index()", "extend()", "insert()", "pop()", "remove()", '
+ '"reverse()"\n'
+ 'and "sort()", like Python standard "list" objects. '
+ 'Finally, sequence\n'
+ 'types should implement addition (meaning concatenation) '
'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'
+ 'multiplication (meaning repetition) by defining the '
+ 'methods\n'
+ '"__add__()", "__radd__()", "__iadd__()", "__mul__()", '
+ '"__rmul__()" and\n'
+ '"__imul__()" described below; they should not define other '
+ 'numerical\n'
+ 'operators. It is recommended that both mappings and '
+ 'sequences\n'
+ 'implement the "__contains__()" method to allow efficient '
+ 'use of the\n'
+ '"in" operator; for mappings, "in" should search the '
+ 'mapping’s keys;\n'
+ 'for sequences, it should search through the values. It is '
+ 'further\n'
+ 'recommended that both mappings and sequences implement '
+ 'the\n'
'"__iter__()" method to allow efficient iteration through '
'the\n'
'container; for mappings, "__iter__()" should iterate '
@@ -10014,17 +10049,19 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' This is typically used for debugging, so it is important '
'that the\n'
- ' representation is information-rich and unambiguous.\n'
+ ' representation is information-rich and unambiguous. A '
+ 'default\n'
+ ' implementation is provided by the "object" class itself.\n'
'\n'
'object.__str__(self)\n'
'\n'
- ' Called by "str(object)" and the built-in functions '
- '"format()" and\n'
- ' "print()" to compute the “informal” or nicely printable '
- 'string\n'
- ' representation of an object. The return value must be a '
- 'string\n'
- ' object.\n'
+ ' Called by "str(object)", the default "__format__()" '
+ 'implementation,\n'
+ ' and the built-in function "print()", to compute the '
+ '“informal” or\n'
+ ' nicely printable string representation of an object. The '
+ 'return\n'
+ ' value must be a str object.\n'
'\n'
' This method differs from "object.__repr__()" in that '
'there is no\n'
@@ -10040,7 +10077,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Called by bytes to compute a byte-string representation '
'of an\n'
- ' object. This should return a "bytes" object.\n'
+ ' object. This should return a "bytes" object. The "object" '
+ 'class\n'
+ ' itself does not provide this method.\n'
'\n'
'object.__format__(self, format_spec)\n'
'\n'
@@ -10068,6 +10107,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' The return value must be a string object.\n'
'\n'
+ ' The default implementation by the "object" class should '
+ 'be given an\n'
+ ' empty *format_spec* string. It delegates to "__str__()".\n'
+ '\n'
' Changed in version 3.4: The __format__ method of "object" '
'itself\n'
' raises a "TypeError" if passed any non-empty string.\n'
@@ -10125,6 +10168,16 @@ topics = {'assert': 'The "assert" statement\n'
' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n'
'\n'
+ ' By default, the "object" class provides implementations '
+ 'consistent\n'
+ ' with Value comparisons: equality compares according to '
+ 'object\n'
+ ' identity, and order comparisons raise "TypeError". Each '
+ 'default\n'
+ ' method may generate these results directly, but may also '
+ 'return\n'
+ ' "NotImplemented".\n'
+ '\n'
' See the paragraph on "__hash__()" for some important '
'notes on\n'
' creating *hashable* objects which support custom '
@@ -10210,12 +10263,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' User-defined classes have "__eq__()" and "__hash__()" '
'methods by\n'
- ' default; with them, all objects compare unequal (except '
- 'with\n'
- ' themselves) and "x.__hash__()" returns an appropriate '
- 'value such\n'
- ' that "x == y" implies both that "x is y" and "hash(x) == '
- 'hash(y)".\n'
+ ' default (inherited from the "object" class); with them, '
+ 'all objects\n'
+ ' compare unequal (except with themselves) and '
+ '"x.__hash__()" returns\n'
+ ' an appropriate value such that "x == y" implies both that '
+ '"x is y"\n'
+ ' and "hash(x) == hash(y)".\n'
'\n'
' A class that overrides "__eq__()" and does not define '
'"__hash__()"\n'
@@ -10284,9 +10338,9 @@ topics = {'assert': 'The "assert" statement\n'
'object is\n'
' considered true if its result is nonzero. If a class '
'defines\n'
- ' neither "__len__()" nor "__bool__()", all its instances '
- 'are\n'
- ' considered true.\n'
+ ' neither "__len__()" nor "__bool__()" (which is true of '
+ 'the "object"\n'
+ ' class itself), all its instances are considered true.\n'
'\n'
'\n'
'Customizing attribute access\n'
@@ -10310,7 +10364,8 @@ topics = {'assert': 'The "assert" statement\n'
'either\n'
' return the (computed) attribute value or raise an '
'"AttributeError"\n'
- ' exception.\n'
+ ' exception. The "object" class itself does not provide '
+ 'this method.\n'
'\n'
' Note that if the attribute is found through the normal '
'mechanism,\n'
@@ -10490,7 +10545,9 @@ topics = {'assert': 'The "assert" statement\n'
'parents). In the\n'
'examples below, “the attribute” refers to the attribute '
'whose name is\n'
- 'the key of the property in the owner class’ "__dict__".\n'
+ 'the key of the property in the owner class’ "__dict__". The '
+ '"object"\n'
+ 'class itself does not implement any of these protocols.\n'
'\n'
'object.__get__(self, instance, owner=None)\n'
'\n'
@@ -11373,7 +11430,9 @@ topics = {'assert': 'The "assert" statement\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'
+ ' "type(x).__call__(x, arg1, ...)". The "object" class '
+ 'itself does\n'
+ ' not provide this method.\n'
'\n'
'\n'
'Emulating container types\n'
@@ -11381,54 +11440,54 @@ 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" '
+ 'None of them are provided by the "object" class itself. '
+ 'Containers\n'
+ 'usually are *sequences* (such as "lists" or "tuples") or '
+ '*mappings*\n'
+ '(like *dictionaries*), but can represent other containers as '
+ 'well.\n'
+ 'The first set of methods is used either to emulate a '
+ 'sequence or to\n'
+ 'emulate a mapping; the difference is that for a sequence, '
+ 'the\n'
+ 'allowable keys should be the integers *k* for which "0 <= k '
+ '< N" where\n'
+ '*N* is the length of the sequence, or "slice" objects, which '
+ 'define a\n'
+ 'range of items. It is also recommended that mappings '
+ 'provide the\n'
+ 'methods "keys()", "values()", "items()", "get()", '
+ '"clear()",\n'
+ '"setdefault()", "pop()", "popitem()", "copy()", and '
+ '"update()"\n'
+ 'behaving similar to those for Python’s standard "dictionary" '
'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'
+ 'The "collections.abc" module provides a "MutableMapping" '
+ '*abstract\n'
+ 'base class* to help create those methods from a base set of\n'
+ '"__getitem__()", "__setitem__()", "__delitem__()", and '
+ '"keys()".\n'
+ 'Mutable sequences should provide methods "append()", '
+ '"count()",\n'
+ '"index()", "extend()", "insert()", "pop()", "remove()", '
+ '"reverse()"\n'
+ 'and "sort()", like Python standard "list" objects. Finally, '
+ 'sequence\n'
+ 'types should implement addition (meaning concatenation) and\n'
+ 'multiplication (meaning repetition) by defining the methods\n'
+ '"__add__()", "__radd__()", "__iadd__()", "__mul__()", '
+ '"__rmul__()" and\n'
+ '"__imul__()" described below; they should not define other '
+ 'numerical\n'
+ 'operators. It is recommended that both mappings and '
+ 'sequences\n'
+ 'implement the "__contains__()" method to allow efficient use '
+ 'of the\n'
+ '"in" operator; for mappings, "in" should search the '
+ 'mapping’s keys;\n'
+ 'for sequences, it should search through the values. It is '
+ 'further\n'
+ '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 '
@@ -11844,6 +11903,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For more information on context managers, see Context '
'Manager Types.\n'
+ 'The "object" class itself does not provide the context '
+ 'manager\n'
+ 'methods.\n'
'\n'
'object.__enter__(self)\n'
'\n'
@@ -14348,43 +14410,254 @@ topics = {'assert': 'The "assert" statement\n'
'e.g.,\n'
'"m.x = 1" is equivalent to "m.__dict__["x"] = 1".\n'
'\n'
- 'Predefined (writable) attributes:\n'
'\n'
- ' "__name__"\n'
- ' The module’s name.\n'
+ 'Import-related attributes on module objects\n'
+ '-------------------------------------------\n'
+ '\n'
+ 'Module objects have the following attributes that relate to the '
+ 'import\n'
+ 'system. When a module is created using the machinery associated '
+ 'with\n'
+ 'the import system, these attributes are filled in based on the\n'
+ 'module’s *spec*, before the *loader* executes and loads the '
+ 'module.\n'
+ '\n'
+ 'To create a module dynamically rather than using the import '
+ 'system,\n'
+ 'it’s recommended to use "importlib.util.module_from_spec()", which\n'
+ 'will set the various import-controlled attributes to appropriate\n'
+ 'values. It’s also possible to use the "types.ModuleType" '
+ 'constructor\n'
+ 'to create modules directly, but this technique is more error-prone, '
+ 'as\n'
+ 'most attributes must be manually set on the module object after it '
+ 'has\n'
+ 'been created when using this approach.\n'
+ '\n'
+ 'Caution:\n'
+ '\n'
+ ' With the exception of "__name__", it is **strongly** recommended\n'
+ ' that you rely on "__spec__" and its attributes instead of any of '
+ 'the\n'
+ ' other individual attributes listed in this subsection. Note that\n'
+ ' updating an attribute on "__spec__" will not update the\n'
+ ' corresponding attribute on the module itself:\n'
+ '\n'
+ ' >>> import typing\n'
+ ' >>> typing.__name__, typing.__spec__.name\n'
+ " ('typing', 'typing')\n"
+ " >>> typing.__spec__.name = 'spelling'\n"
+ ' >>> typing.__name__, typing.__spec__.name\n'
+ " ('typing', 'spelling')\n"
+ " >>> typing.__name__ = 'keyboard_smashing'\n"
+ ' >>> typing.__name__, typing.__spec__.name\n'
+ " ('keyboard_smashing', 'spelling')\n"
+ '\n'
+ 'module.__name__\n'
+ '\n'
+ ' The name used to uniquely identify the module in the import '
+ 'system.\n'
+ ' For a directly executed module, this will be set to '
+ '""__main__"".\n'
+ '\n'
+ ' This attribute must be set to the fully qualified name of the\n'
+ ' module. It is expected to match the value of\n'
+ ' "module.__spec__.name".\n'
+ '\n'
+ 'module.__spec__\n'
+ '\n'
+ ' A record of the module’s import-system-related state.\n'
+ '\n'
+ ' Set to the "module spec" that was used when importing the '
+ 'module.\n'
+ ' See Module specs for more details.\n'
+ '\n'
+ ' Added in version 3.4.\n'
+ '\n'
+ 'module.__package__\n'
+ '\n'
+ ' The *package* a module belongs to.\n'
+ '\n'
+ ' If the module is top-level (that is, not a part of any specific\n'
+ ' package) then the attribute should be set to "\'\'" (the empty\n'
+ ' string). Otherwise, it should be set to the name of the '
+ 'module’s\n'
+ ' package (which can be equal to "module.__name__" if the module\n'
+ ' itself is a package). See **PEP 366** for further details.\n'
+ '\n'
+ ' This attribute is used instead of "__name__" to calculate '
+ 'explicit\n'
+ ' relative imports for main modules. It defaults to "None" for\n'
+ ' modules created dynamically using the "types.ModuleType"\n'
+ ' constructor; use "importlib.util.module_from_spec()" instead to\n'
+ ' ensure the attribute is set to a "str".\n'
+ '\n'
+ ' It is **strongly** recommended that you use\n'
+ ' "module.__spec__.parent" instead of "module.__package__".\n'
+ ' "__package__" is now only used as a fallback if '
+ '"__spec__.parent"\n'
+ ' is not set, and this fallback path is deprecated.\n'
+ '\n'
+ ' Changed in version 3.4: This attribute now defaults to "None" '
+ 'for\n'
+ ' modules created dynamically using the "types.ModuleType"\n'
+ ' constructor. Previously the attribute was optional.\n'
+ '\n'
+ ' Changed in version 3.6: The value of "__package__" is expected '
+ 'to\n'
+ ' be the same as "__spec__.parent". "__package__" is now only used '
+ 'as\n'
+ ' a fallback during import resolution if "__spec__.parent" is not\n'
+ ' defined.\n'
+ '\n'
+ ' Changed in version 3.10: "ImportWarning" is raised if an import\n'
+ ' resolution falls back to "__package__" instead of\n'
+ ' "__spec__.parent".\n'
+ '\n'
+ ' Changed in version 3.12: Raise "DeprecationWarning" instead of\n'
+ ' "ImportWarning" when falling back to "__package__" during '
+ 'import\n'
+ ' resolution.\n'
+ '\n'
+ 'module.__loader__\n'
'\n'
- ' "__doc__"\n'
- ' The module’s documentation string, or "None" if unavailable.\n'
+ ' The *loader* object that the import machinery used to load the\n'
+ ' module.\n'
+ '\n'
+ ' This attribute is mostly useful for introspection, but can be '
+ 'used\n'
+ ' for additional loader-specific functionality, for example '
+ 'getting\n'
+ ' data associated with a loader.\n'
+ '\n'
+ ' "__loader__" defaults to "None" for modules created dynamically\n'
+ ' using the "types.ModuleType" constructor; use\n'
+ ' "importlib.util.module_from_spec()" instead to ensure the '
+ 'attribute\n'
+ ' is set to a *loader* object.\n'
'\n'
- ' "__file__"\n'
- ' The pathname of the file from which the module was loaded, if '
- 'it\n'
- ' was loaded from a file. The "__file__" attribute may be '
- 'missing\n'
- ' for certain types of modules, such as C modules that are\n'
- ' statically linked into the interpreter. For extension '
+ ' It is **strongly** recommended that you use\n'
+ ' "module.__spec__.loader" instead of "module.__loader__".\n'
+ '\n'
+ ' Changed in version 3.4: This attribute now defaults to "None" '
+ 'for\n'
+ ' modules created dynamically using the "types.ModuleType"\n'
+ ' constructor. Previously the attribute was optional.\n'
+ '\n'
+ ' Deprecated since version 3.12, will be removed in version 3.16:\n'
+ ' Setting "__loader__" on a module while failing to set\n'
+ ' "__spec__.loader" is deprecated. In Python 3.16, "__loader__" '
+ 'will\n'
+ ' cease to be set or taken into consideration by the import system '
+ 'or\n'
+ ' the standard library.\n'
+ '\n'
+ 'module.__path__\n'
+ '\n'
+ ' A (possibly empty) *sequence* of strings enumerating the '
+ 'locations\n'
+ ' where the package’s submodules will be found. Non-package '
'modules\n'
- ' loaded dynamically from a shared library, it’s the pathname '
- 'of\n'
- ' the shared library file.\n'
+ ' should not have a "__path__" attribute. See __path__ attributes '
+ 'on\n'
+ ' modules for more details.\n'
+ '\n'
+ ' It is **strongly** recommended that you use\n'
+ ' "module.__spec__.submodule_search_locations" instead of\n'
+ ' "module.__path__".\n'
+ '\n'
+ 'module.__file__\n'
+ '\n'
+ 'module.__cached__\n'
+ '\n'
+ ' "__file__" and "__cached__" are both optional attributes that '
+ 'may\n'
+ ' or may not be set. Both attributes should be a "str" when they '
+ 'are\n'
+ ' available.\n'
+ '\n'
+ ' "__file__" indicates the pathname of the file from which the '
+ 'module\n'
+ ' was loaded (if loaded from a file), or the pathname of the '
+ 'shared\n'
+ ' library file for extension modules loaded dynamically from a '
+ 'shared\n'
+ ' library. It might be missing for certain types of modules, such '
+ 'as\n'
+ ' C modules that are statically linked into the interpreter, and '
+ 'the\n'
+ ' import system may opt to leave it unset if it has no semantic\n'
+ ' meaning (for example, a module loaded from a database).\n'
+ '\n'
+ ' If "__file__" is set then the "__cached__" attribute might also '
+ 'be\n'
+ ' set, which is the path to any compiled version of the code '
+ '(for\n'
+ ' example, a byte-compiled file). The file does not need to exist '
+ 'to\n'
+ ' set this attribute; the path can simply point to where the '
+ 'compiled\n'
+ ' file *would* exist (see **PEP 3147**).\n'
+ '\n'
+ ' Note that "__cached__" may be set even if "__file__" is not '
+ 'set.\n'
+ ' However, that scenario is quite atypical. Ultimately, the '
+ '*loader*\n'
+ ' is what makes use of the module spec provided by the *finder* '
+ '(from\n'
+ ' which "__file__" and "__cached__" are derived). So if a loader '
+ 'can\n'
+ ' load from a cached module but otherwise does not load from a '
+ 'file,\n'
+ ' that atypical scenario may be appropriate.\n'
+ '\n'
+ ' It is **strongly** recommended that you use\n'
+ ' "module.__spec__.cached" instead of "module.__cached__".\n'
+ '\n'
+ '\n'
+ 'Other writable attributes on module objects\n'
+ '-------------------------------------------\n'
+ '\n'
+ 'As well as the import-related attributes listed above, module '
+ 'objects\n'
+ 'also have the following writable attributes:\n'
+ '\n'
+ 'module.__doc__\n'
+ '\n'
+ ' The module’s documentation string, or "None" if unavailable. '
+ 'See\n'
+ ' also: "__doc__ attributes".\n'
'\n'
- ' "__annotations__"\n'
- ' A dictionary containing *variable annotations* collected '
- 'during\n'
- ' module body execution. For best practices on working with\n'
- ' "__annotations__", please see Annotations Best Practices.\n'
+ 'module.__annotations__\n'
'\n'
- 'Special read-only attribute: "__dict__" is the module’s namespace '
- 'as a\n'
- 'dictionary object.\n'
+ ' A dictionary containing *variable annotations* collected during\n'
+ ' module body execution. For best practices on working with\n'
+ ' "__annotations__", please see Annotations Best Practices.\n'
'\n'
- '**CPython implementation detail:** Because of the way CPython '
- 'clears\n'
- 'module dictionaries, the module dictionary will be cleared when '
+ '\n'
+ 'Module dictionaries\n'
+ '-------------------\n'
+ '\n'
+ 'Module objects also have the following special read-only '
+ 'attribute:\n'
+ '\n'
+ 'module.__dict__\n'
+ '\n'
+ ' The module’s namespace as a dictionary object. Uniquely among '
+ 'the\n'
+ ' attributes listed here, "__dict__" cannot be accessed as a '
+ 'global\n'
+ ' variable from within a module; it can only be accessed as an\n'
+ ' attribute on module objects.\n'
+ '\n'
+ ' **CPython implementation detail:** Because of the way CPython\n'
+ ' clears module dictionaries, the module dictionary will be '
+ 'cleared\n'
+ ' when the module falls out of scope even if the dictionary still '
+ 'has\n'
+ ' live references. To avoid this, copy the dictionary or keep '
'the\n'
- 'module falls out of scope even if the dictionary still has live\n'
- 'references. To avoid this, copy the dictionary or keep the module\n'
- 'around while using its dictionary directly.\n'
+ ' module around while using its dictionary directly.\n'
'\n'
'\n'
'Custom classes\n'
@@ -14719,7 +14992,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | version '
'3.12: This attribute of code objects is |\n'
'| | deprecated, '
- 'and may be removed in Python 3.14. |\n'
+ 'and may be removed in Python 3.15. |\n'
'+----------------------------------------------------+----------------------------------------------------+\n'
'| codeobject.co_stacksize | The required '
'stack size of the code object |\n'
@@ -15174,21 +15447,23 @@ topics = {'assert': 'The "assert" statement\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 '
- 'object, a\n'
- ' dictionary is created with the same key-value pairs as '
- 'the mapping\n'
- ' object. Otherwise, the positional argument must be an '
- '*iterable*\n'
- ' object. Each item in the iterable must itself be an '
- 'iterable with\n'
- ' exactly two objects. The first object of each item '
- 'becomes a key\n'
- ' in the new dictionary, and the second object the '
- 'corresponding\n'
- ' value. If a key occurs more than once, the last value '
- 'for that key\n'
- ' becomes the corresponding value in the new dictionary.\n'
+ ' If a positional argument is given and it defines a '
+ '"keys()" method,\n'
+ ' a dictionary is created by calling "__getitem__()" on the '
+ 'argument\n'
+ ' with each returned key from the method. Otherwise, the '
+ 'positional\n'
+ ' argument must be an *iterable* object. Each item in the '
+ 'iterable\n'
+ ' must itself be an iterable with exactly two elements. '
+ 'The first\n'
+ ' element of each item becomes a key in the new dictionary, '
+ 'and the\n'
+ ' second element the corresponding value. If a key occurs '
+ 'more than\n'
+ ' once, the last value for that key becomes the '
+ 'corresponding value\n'
+ ' in the new dictionary.\n'
'\n'
' If keyword arguments are given, the keyword arguments and '
'their\n'
@@ -15383,15 +15658,17 @@ topics = {'assert': 'The "assert" statement\n'
'*other*,\n'
' overwriting existing keys. Return "None".\n'
'\n'
- ' "update()" accepts either another dictionary object or '
- 'an\n'
- ' iterable of key/value pairs (as tuples or other '
- 'iterables of\n'
- ' length two). If keyword arguments are specified, the '
- 'dictionary\n'
- ' is then updated with those key/value pairs: '
- '"d.update(red=1,\n'
- ' blue=2)".\n'
+ ' "update()" accepts either another object with a '
+ '"keys()" method\n'
+ ' (in which case "__getitem__()" is called with every '
+ 'key returned\n'
+ ' from the method) or an iterable of key/value pairs (as '
+ 'tuples or\n'
+ ' other iterables of length two). If keyword arguments '
+ 'are\n'
+ ' specified, the dictionary is then updated with those '
+ 'key/value\n'
+ ' pairs: "d.update(red=1, blue=2)".\n'
'\n'
' values()\n'
'\n'
@@ -16699,18 +16976,15 @@ topics = {'assert': 'The "assert" statement\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'
+ ' else:\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'
@@ -16751,7 +17025,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'A "yield" statement is semantically equivalent to a yield '
'expression.\n'
- 'The yield statement can be used to omit the parentheses that would\n'
+ 'The "yield" statement can be used to omit the parentheses that '
+ 'would\n'
'otherwise be required in the equivalent yield expression '
'statement.\n'
'For example, the yield statements\n'
@@ -16767,10 +17042,9 @@ topics = {'assert': 'The "assert" statement\n'
'Yield expressions and statements are only used when defining a\n'
'*generator* function, and are only used in the body of the '
'generator\n'
- 'function. Using yield in a function definition is sufficient to '
- 'cause\n'
- 'that definition to create a generator function instead of a normal\n'
- 'function.\n'
+ 'function. Using "yield" in a function definition is sufficient to\n'
+ 'cause that definition to create a generator function instead of a\n'
+ 'normal function.\n'
'\n'
'For full details of "yield" semantics, refer to the Yield '
'expressions\n'