]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Python 3.11.6 v3.11.6
authorPablo Galindo <pablogsal@gmail.com>
Mon, 2 Oct 2023 13:26:51 +0000 (14:26 +0100)
committerPablo Galindo <pablogsal@gmail.com>
Mon, 2 Oct 2023 13:29:10 +0000 (14:29 +0100)
59 files changed:
Include/patchlevel.h
Lib/pydoc_data/topics.py
Misc/NEWS.d/3.11.6.rst [new file with mode: 0644]
Misc/NEWS.d/next/Build/2023-09-01-01-39-26.gh-issue-108740.JHExAQ.rst [deleted file]
Misc/NEWS.d/next/Build/2023-09-02-18-04-15.gh-issue-63760.r8hJ6q.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-08-30-15-41-47.gh-issue-108520.u0ZGP_.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-09-05-20-52-17.gh-issue-108959.6z45Sy.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-09-07-16-05-36.gh-issue-88943.rH_X3W.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-09-09-21-17-18.gh-issue-109179.ZR8qs2.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-09-10-18-53-55.gh-issue-109207.Fei8bY.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2023-09-12-16-00-42.gh-issue-109351.kznGeR.rst [deleted file]
Misc/NEWS.d/next/Documentation/2023-03-19-09-39-31.gh-issue-102823.OzsOz0.rst [deleted file]
Misc/NEWS.d/next/Documentation/2023-05-29-14-10-24.gh-issue-105052.MGFwbm.rst [deleted file]
Misc/NEWS.d/next/Documentation/2023-09-10-02-39-06.gh-issue-109209.0LBewo.rst [deleted file]
Misc/NEWS.d/next/Library/2022-12-24-12-50-54.gh-issue-84867.OhaLbU.rst [deleted file]
Misc/NEWS.d/next/Library/2023-05-22-18-39-53.gh-issue-104372.7tDRaK.rst [deleted file]
Misc/NEWS.d/next/Library/2023-08-14-11-18-13.gh-issue-107913.4ooY6i.rst [deleted file]
Misc/NEWS.d/next/Library/2023-08-22-22-29-42.gh-issue-64662.jHl_Bt.rst [deleted file]
Misc/NEWS.d/next/Library/2023-08-26-12-35-39.gh-issue-105829.kyYhWI.rst [deleted file]
Misc/NEWS.d/next/Library/2023-08-30-20-10-28.gh-issue-108682.c2gzLQ.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-06-04-30-05.gh-issue-108843.WJMhsS.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-08-12-09-55.gh-issue-108987.x5AIG8.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-09-15-08-37.gh-issue-50644.JUAZOh.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-11-00-32-18.gh-issue-107219.3zqyFT.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-20-17-45-46.gh-issue-109613.P13ogN.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-22-20-16-44.gh-issue-109593.LboaNM.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-25-23-00-37.gh-issue-109631.eWSqpO.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-28-18-50-33.gh-issue-110038.nx_gCu.rst [deleted file]
Misc/NEWS.d/next/Library/2023-09-28-18-53-11.gh-issue-110036.fECxTj.rst [deleted file]
Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst [deleted file]
Misc/NEWS.d/next/Tests/2022-10-20-17-49-50.gh-issue-95027.viRpJB.rst [deleted file]
Misc/NEWS.d/next/Tests/2022-10-31-14-47-49.gh-issue-98903.7KinCV.rst [deleted file]
Misc/NEWS.d/next/Tests/2022-12-08-00-03-37.gh-issue-100086.1zYpto.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-06-28-02-51-08.gh-issue-101634.Rayczr.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-08-24-04-23-35.gh-issue-108388.mr0MeE.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-08-24-06-10-36.gh-issue-108388.YCVB0D.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-02-19-06-52.gh-issue-108822.arTbBI.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-03-21-18-35.gh-issue-108851.CCuHyI.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-03-21-41-10.gh-issue-108851.xFTYOE.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-05-23-00-09.gh-issue-108962.R4NwuU.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-06-15-36-51.gh-issue-91960.P3nD5v.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-06-18-27-53.gh-issue-109015.1dS1AQ.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-10-19-59-57.gh-issue-109230.SRNLFQ.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-10-22-32-20.gh-issue-109237.SvgKwD.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-13-05-58-09.gh-issue-104736.lA25Fu.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-20-02-32-17.gh-issue-103053.AoUJuK.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-28-14-47-14.gh-issue-109594.DB5KPP.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-28-18-14-52.gh-issue-110033.2yHMx0.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-29-12-48-42.gh-issue-110088.qUhRga.rst [deleted file]
Misc/NEWS.d/next/Tests/2023-09-29-14-11-30.gh-issue-110031.fQnFnc.rst [deleted file]
Misc/NEWS.d/next/Tools-Demos/2023-09-27-23-31-54.gh-issue-109991.sUUYY8.rst [deleted file]
Misc/NEWS.d/next/Windows/2023-09-05-10-08-47.gh-issue-107565.CIMftz.rst [deleted file]
Misc/NEWS.d/next/Windows/2023-09-28-17-09-23.gh-issue-109991.CIMftz.rst [deleted file]
Misc/NEWS.d/next/macOS/2023-09-27-22-35-22.gh-issue-109991.-xJzaF.rst [deleted file]
README.rst

index 59f90803983732def666dc8c2f85680388634589..70d71c11377ede0a4835c4df66d993a2d7fed291 100644 (file)
 /*--start constants--*/
 #define PY_MAJOR_VERSION        3
 #define PY_MINOR_VERSION        11
-#define PY_MICRO_VERSION        5
+#define PY_MICRO_VERSION        6
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_FINAL
 #define PY_RELEASE_SERIAL       0
 
 /* Version as a string */
-#define PY_VERSION              "3.11.5+"
+#define PY_VERSION              "3.11.6"
 /*--end constants--*/
 
 /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
index 1b1251b690998ec2aca9c4c3152bd197bef27cc5..06422d21c6b9441d083496d433d687e5b7881e11 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Thu Aug 24 13:07:17 2023
+# Autogenerated by Sphinx on Mon Oct  2 14:27:48 2023
 # as part of the release process.
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
@@ -1076,9 +1076,7 @@ topics = {'assert': 'The "assert" statement\n'
                      'for each\n'
                      '   instance.\n'
                      '\n'
-                     '\n'
-                     'Notes on using *__slots__*\n'
-                     '--------------------------\n'
+                     'Notes on using *__slots__*:\n'
                      '\n'
                      '* When inheriting from a class without *__slots__*, the '
                      '"__dict__" and\n'
@@ -10003,9 +10001,7 @@ topics = {'assert': 'The "assert" statement\n'
                  'each\n'
                  '   instance.\n'
                  '\n'
-                 '\n'
-                 'Notes on using *__slots__*\n'
-                 '~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+                 'Notes on using *__slots__*:\n'
                  '\n'
                  '* When inheriting from a class without *__slots__*, the '
                  '"__dict__" and\n'
@@ -12374,71 +12370,71 @@ topics = {'assert': 'The "assert" statement\n'
             'those\n'
             'used by Standard C.  The recognized escape sequences are:\n'
             '\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| Escape Sequence   | Meaning                           | Notes   '
-            '|\n'
-            '|===================|===================================|=========|\n'
-            '| "\\"<newline>      | Backslash and newline ignored     | '
-            '(1)     |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\\\"              | Backslash ("\\")                   '
-            '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\\'"              | Single quote ("\'")                '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| Escape Sequence           | Meaning                           | '
+            'Notes   |\n'
+            '|===========================|===================================|=========|\n'
+            '| "\\"<newline>              | Backslash and newline ignored     '
+            '| (1)     |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\\\"                      | Backslash '
+            '("\\")                   |         |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\\'"                      | Single quote '
+            '("\'")                |         |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\""                      | Double quote (""")                '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\""              | Double quote (""")                '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\a"                      | ASCII Bell (BEL)                  '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\a"              | ASCII Bell (BEL)                  '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\b"                      | ASCII Backspace (BS)              '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\b"              | ASCII Backspace (BS)              '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\f"                      | ASCII Formfeed (FF)               '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\f"              | ASCII Formfeed (FF)               '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\n"                      | ASCII Linefeed (LF)               '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\n"              | ASCII Linefeed (LF)               '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\r"                      | ASCII Carriage Return (CR)        '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\r"              | ASCII Carriage Return (CR)        '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\t"                      | ASCII Horizontal Tab (TAB)        '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\t"              | ASCII Horizontal Tab (TAB)        '
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\v"                      | ASCII Vertical Tab (VT)           '
             '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\v"              | ASCII Vertical Tab (VT)           '
-            '|         |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\ooo"            | Character with octal value *ooo*  | '
-            '(2,4)   |\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\xhh"            | Character with hex value *hh*     | '
-            '(3,4)   |\n'
-            '+-------------------+-----------------------------------+---------+\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\*ooo*"                  | Character with octal value *ooo*  '
+            '| (2,4)   |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\x*hh*"                  | Character with hex value *hh*     '
+            '| (3,4)   |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
             '\n'
             'Escape sequences only recognized in string literals are:\n'
             '\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| Escape Sequence   | Meaning                           | Notes   '
-            '|\n'
-            '|===================|===================================|=========|\n'
-            '| "\\N{name}"        | Character named *name* in the     | '
-            '(5)     |\n'
-            '|                   | Unicode database                  |         '
-            '|\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\uxxxx"          | Character with 16-bit hex value   | '
-            '(6)     |\n'
-            '|                   | *xxxx*                            |         '
-            '|\n'
-            '+-------------------+-----------------------------------+---------+\n'
-            '| "\\Uxxxxxxxx"      | Character with 32-bit hex value   | '
-            '(7)     |\n'
-            '|                   | *xxxxxxxx*                        |         '
-            '|\n'
-            '+-------------------+-----------------------------------+---------+\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| Escape Sequence           | Meaning                           | '
+            'Notes   |\n'
+            '|===========================|===================================|=========|\n'
+            '| "\\N{*name*}"              | Character named *name* in the     '
+            '(5)     |\n'
+            '|                           | Unicode database                  '
+            '|         |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\u*xxxx*"                | Character with 16-bit hex value   '
+            '(6)     |\n'
+            '|                           | *xxxx*                            '
+            '|         |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
+            '| "\\U*xxxxxxxx*"            | Character with 32-bit hex value   '
+            '(7)     |\n'
+            '|                           | *xxxxxxxx*                        '
+            '|         |\n'
+            '+---------------------------+-----------------------------------+---------+\n'
             '\n'
             'Notes:\n'
             '\n'
@@ -12896,1145 +12892,1172 @@ topics = {'assert': 'The "assert" statement\n'
           'definition\n'
           'may change in the future.\n'
           '\n'
+          '\n'
           'None\n'
-          '   This type has a single value.  There is a single object with '
-          'this\n'
-          '   value. This object is accessed through the built-in name "None". '
-          'It\n'
-          '   is used to signify the absence of a value in many situations, '
-          'e.g.,\n'
-          '   it is returned from functions that don’t explicitly return\n'
-          '   anything. Its truth value is false.\n'
+          '====\n'
+          '\n'
+          'This type has a single value.  There is a single object with this\n'
+          'value. This object is accessed through the built-in name "None". It '
+          'is\n'
+          'used to signify the absence of a value in many situations, e.g., it '
+          'is\n'
+          'returned from functions that don’t explicitly return anything. Its\n'
+          'truth value is false.\n'
+          '\n'
           '\n'
           'NotImplemented\n'
-          '   This type has a single value.  There is a single object with '
-          'this\n'
-          '   value. This object is accessed through the built-in name\n'
-          '   "NotImplemented". Numeric methods and rich comparison methods\n'
-          '   should return this value if they do not implement the operation '
-          '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'
+          '==============\n'
+          '\n'
+          'This type has a single value.  There is a single object with this\n'
+          'value. This object is accessed through the built-in name\n'
+          '"NotImplemented". Numeric methods and rich comparison methods '
+          'should\n'
+          'return this value if they do not implement the operation for the\n'
+          'operands provided.  (The interpreter will then try the reflected\n'
+          'operation, or some other fallback, depending on the operator.)  It\n'
+          'should not be evaluated in a boolean context.\n'
           '\n'
-          '   See Implementing the arithmetic operations for more details.\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 '
+          'will\n'
+          'emit a "DeprecationWarning". It will raise a "TypeError" in a '
+          'future\n'
+          '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'
-          '   value. This object is accessed through the literal "..." or the\n'
-          '   built-in name "Ellipsis".  Its truth value is true.\n'
+          '========\n'
+          '\n'
+          'This type has a single value.  There is a single object with this\n'
+          'value. This object is accessed through the literal "..." or the '
+          'built-\n'
+          'in name "Ellipsis".  Its truth value is true.\n'
+          '\n'
           '\n'
           '"numbers.Number"\n'
-          '   These are created by numeric literals and returned as results '
-          'by\n'
-          '   arithmetic operators and arithmetic built-in functions.  '
-          'Numeric\n'
-          '   objects are immutable; once created their value never changes.\n'
-          '   Python numbers are of course strongly related to mathematical\n'
-          '   numbers, but subject to the limitations of numerical '
-          '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 '
+          '================\n'
+          '\n'
+          'These are created by numeric literals and returned as results by\n'
+          'arithmetic operators and arithmetic built-in functions.  Numeric\n'
+          'objects are immutable; once created their value never changes.  '
+          'Python\n'
+          'numbers are of course strongly related to mathematical numbers, '
+          'but\n'
+          'subject to the limitations of numerical representation 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'
+          '  constructor, produce an object having the value of the original\n'
+          '  numeric.\n'
           '\n'
-          '   * The representation is in base 10, when possible.\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'
+          '* 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'
+          '* 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'
+          '* A sign is shown only when the number is negative.\n'
           '\n'
-          '   Python distinguishes between integers, floating point numbers, '
-          'and\n'
-          '   complex numbers:\n'
+          'Python distinguishes between integers, floating point numbers, and\n'
+          'complex numbers:\n'
           '\n'
-          '   "numbers.Integral"\n'
-          '      These represent elements from the mathematical set of '
-          'integers\n'
-          '      (positive and negative).\n'
           '\n'
-          '      There are two types of integers:\n'
+          '"numbers.Integral"\n'
+          '------------------\n'
           '\n'
-          '      Integers ("int")\n'
-          '         These represent numbers in an unlimited range, subject to\n'
-          '         available (virtual) memory only.  For the purpose of '
-          'shift\n'
-          '         and mask operations, a binary representation is assumed, '
-          'and\n'
-          '         negative numbers are represented in a variant of 2’s\n'
-          '         complement which gives the illusion of an infinite string '
-          'of\n'
-          '         sign bits extending to the left.\n'
+          'These represent elements from the mathematical set of integers\n'
+          '(positive and negative).\n'
           '\n'
-          '      Booleans ("bool")\n'
-          '         These represent the truth values False and True.  The two\n'
-          '         objects representing the values "False" and "True" are '
-          'the\n'
-          '         only Boolean objects. The Boolean type is a subtype of '
+          'Note:\n'
+          '\n'
+          '  The rules for integer representation are intended to give the '
+          'most\n'
+          '  meaningful interpretation of shift and mask operations involving\n'
+          '  negative integers.\n'
+          '\n'
+          'There are two types of integers:\n'
+          '\n'
+          'Integers ("int")\n'
+          '   These represent numbers in an unlimited range, subject to '
+          'available\n'
+          '   (virtual) memory only.  For the purpose of shift and mask\n'
+          '   operations, a binary representation is assumed, and negative\n'
+          '   numbers are represented in a variant of 2’s complement which '
+          'gives\n'
+          '   the illusion of an infinite string of sign bits extending to '
           'the\n'
-          '         integer type, and Boolean values behave like the values 0 '
-          'and\n'
-          '         1, respectively, in almost all contexts, the exception '
-          'being\n'
-          '         that when converted to a string, the strings ""False"" or\n'
-          '         ""True"" are returned, respectively.\n'
+          '   left.\n'
+          '\n'
+          'Booleans ("bool")\n'
+          '   These represent the truth values False and True.  The two '
+          'objects\n'
+          '   representing the values "False" and "True" are the only Boolean\n'
+          '   objects. The Boolean type is a subtype of the integer type, and\n'
+          '   Boolean values behave like the values 0 and 1, respectively, in\n'
+          '   almost all contexts, the exception being that when converted to '
+          'a\n'
+          '   string, the strings ""False"" or ""True"" are returned,\n'
+          '   respectively.\n'
+          '\n'
+          '\n'
+          '"numbers.Real" ("float")\n'
+          '------------------------\n'
           '\n'
-          '      The rules for integer representation are intended to give '
+          'These represent machine-level double precision floating point '
+          'numbers.\n'
+          'You are at the mercy of the underlying machine architecture (and C '
+          'or\n'
+          'Java implementation) for the accepted range and handling of '
+          'overflow.\n'
+          'Python does not support single-precision floating point numbers; '
           'the\n'
-          '      most meaningful interpretation of shift and mask operations\n'
-          '      involving negative integers.\n'
-          '\n'
-          '   "numbers.Real" ("float")\n'
-          '      These represent machine-level double precision floating '
-          'point\n'
-          '      numbers. You are at the mercy of the underlying machine\n'
-          '      architecture (and C or Java implementation) for the accepted\n'
-          '      range and handling of overflow. Python does not support '
-          'single-\n'
-          '      precision floating point numbers; the savings in processor '
-          'and\n'
-          '      memory usage that are usually the reason for using these are\n'
-          '      dwarfed by the overhead of using objects in Python, so there '
-          'is\n'
-          '      no reason to complicate the language with two kinds of '
-          'floating\n'
-          '      point numbers.\n'
-          '\n'
-          '   "numbers.Complex" ("complex")\n'
-          '      These represent complex numbers as a pair of machine-level\n'
-          '      double precision floating point numbers.  The same caveats '
-          'apply\n'
-          '      as for floating point numbers. The real and imaginary parts '
-          'of a\n'
-          '      complex number "z" can be retrieved through the read-only\n'
-          '      attributes "z.real" and "z.imag".\n'
+          'savings in processor and memory usage that are usually the reason '
+          'for\n'
+          'using these are dwarfed by the overhead of using objects in Python, '
+          'so\n'
+          'there is no reason to complicate the language with two kinds of\n'
+          'floating point numbers.\n'
+          '\n'
+          '\n'
+          '"numbers.Complex" ("complex")\n'
+          '-----------------------------\n'
+          '\n'
+          'These represent complex numbers as a pair of machine-level double\n'
+          'precision floating point numbers.  The same caveats apply as for\n'
+          'floating point numbers. The real and imaginary parts of a complex\n'
+          'number "z" can be retrieved through the read-only attributes '
+          '"z.real"\n'
+          'and "z.imag".\n'
+          '\n'
           '\n'
           'Sequences\n'
-          '   These represent finite ordered sets indexed by non-negative\n'
-          '   numbers. The built-in function "len()" returns the number of '
-          'items\n'
-          '   of a sequence. When the length of a sequence is *n*, the index '
+          '=========\n'
+          '\n'
+          'These represent finite ordered sets indexed by non-negative '
+          'numbers.\n'
+          'The built-in function "len()" returns the number of items of a\n'
+          'sequence. When the length of a sequence is *n*, the index set '
+          'contains\n'
+          'the numbers 0, 1, …, *n*-1.  Item *i* of sequence *a* is selected '
+          'by\n'
+          '"a[i]".\n'
+          '\n'
+          'Sequences also support slicing: "a[i:j]" selects all items with '
+          'index\n'
+          '*k* such that *i* "<=" *k* "<" *j*.  When used as an expression, a\n'
+          'slice is a sequence of the same type.  This implies that the index '
           'set\n'
-          '   contains the numbers 0, 1, …, *n*-1.  Item *i* of sequence *a* '
-          'is\n'
-          '   selected by "a[i]".\n'
+          'is renumbered so that it starts at 0.\n'
           '\n'
-          '   Sequences also support slicing: "a[i:j]" selects all items with\n'
-          '   index *k* such that *i* "<=" *k* "<" *j*.  When used as an\n'
-          '   expression, a slice is a sequence of the same type.  This '
-          'implies\n'
-          '   that the index set is renumbered so that it starts at 0.\n'
+          'Some sequences also support “extended slicing” with a third “step”\n'
+          'parameter: "a[i:j:k]" selects all items of *a* with index *x* where '
+          '"x\n'
+          '= i + n*k", *n* ">=" "0" and *i* "<=" *x* "<" *j*.\n'
           '\n'
-          '   Some sequences also support “extended slicing” with a third '
-          '“step”\n'
-          '   parameter: "a[i:j:k]" selects all items of *a* with index *x* '
-          'where\n'
-          '   "x = i + n*k", *n* ">=" "0" and *i* "<=" *x* "<" *j*.\n'
+          'Sequences are distinguished according to their mutability:\n'
           '\n'
-          '   Sequences are distinguished according to their mutability:\n'
           '\n'
-          '   Immutable sequences\n'
-          '      An object of an immutable sequence type cannot change once it '
-          'is\n'
-          '      created.  (If the object contains references to other '
-          'objects,\n'
-          '      these other objects may be mutable and may be changed; '
-          'however,\n'
-          '      the collection of objects directly referenced by an '
-          'immutable\n'
-          '      object cannot change.)\n'
+          'Immutable sequences\n'
+          '-------------------\n'
           '\n'
-          '      The following types are immutable sequences:\n'
+          'An object of an immutable sequence type cannot change once it is\n'
+          'created.  (If the object contains references to other objects, '
+          'these\n'
+          'other objects may be mutable and may be changed; however, the\n'
+          'collection of objects directly referenced by an immutable object\n'
+          'cannot change.)\n'
           '\n'
-          '      Strings\n'
-          '         A string is a sequence of values that represent Unicode '
-          'code\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'
-          '         type; instead, every code point in the string is '
-          'represented\n'
-          '         as a string object with length "1".  The built-in '
-          'function\n'
-          '         "ord()" converts a code point from its string form to an\n'
-          '         integer in the range "0 - 10FFFF"; "chr()" converts an\n'
-          '         integer in the range "0 - 10FFFF" to the corresponding '
-          'length\n'
-          '         "1" string object. "str.encode()" can be used to convert '
-          'a\n'
-          '         "str" to "bytes" using the given text encoding, and\n'
-          '         "bytes.decode()" can be used to achieve the opposite.\n'
+          'The following types are immutable sequences:\n'
           '\n'
-          '      Tuples\n'
-          '         The items of a tuple are arbitrary Python objects. Tuples '
-          'of\n'
-          '         two or more items are formed by comma-separated lists of\n'
-          '         expressions.  A tuple of one item (a ‘singleton’) can be\n'
-          '         formed by affixing a comma to an expression (an expression '
-          'by\n'
-          '         itself does not create a tuple, since parentheses must be\n'
-          '         usable for grouping of expressions).  An empty tuple can '
+          'Strings\n'
+          '   A string is a sequence of values that represent Unicode code\n'
+          '   points. All the code points in the range "U+0000 - U+10FFFF" can '
           'be\n'
-          '         formed by an empty pair of parentheses.\n'
-          '\n'
-          '      Bytes\n'
-          '         A bytes object is an immutable array.  The items are '
-          '8-bit\n'
-          '         bytes, represented by integers in the range 0 <= x < 256.\n'
-          '         Bytes literals (like "b\'abc\'") and the built-in '
-          '"bytes()"\n'
-          '         constructor can be used to create bytes objects.  Also, '
-          'bytes\n'
-          '         objects can be decoded to strings via the "decode()" '
-          'method.\n'
+          '   represented in a string.  Python doesn’t have a char type; '
+          'instead,\n'
+          '   every code point in the string is represented as a string '
+          'object\n'
+          '   with length "1".  The built-in function "ord()" converts a code\n'
+          '   point from its string form to an integer in the range "0 - '
+          '10FFFF";\n'
+          '   "chr()" converts an integer in the range "0 - 10FFFF" to the\n'
+          '   corresponding length "1" string object. "str.encode()" can be '
+          'used\n'
+          '   to convert a "str" to "bytes" using the given text encoding, '
+          'and\n'
+          '   "bytes.decode()" can be used to achieve the opposite.\n'
           '\n'
-          '   Mutable sequences\n'
-          '      Mutable sequences can be changed after they are created.  '
-          'The\n'
-          '      subscription and slicing notations can be used as the target '
+          'Tuples\n'
+          '   The items of a tuple are arbitrary Python objects. Tuples of two '
+          'or\n'
+          '   more items are formed by comma-separated lists of expressions.  '
+          'A\n'
+          '   tuple of one item (a ‘singleton’) can be formed by affixing a '
+          'comma\n'
+          '   to an expression (an expression by itself does not create a '
+          'tuple,\n'
+          '   since parentheses must be usable for grouping of expressions).  '
+          'An\n'
+          '   empty tuple can be formed by an empty pair of parentheses.\n'
+          '\n'
+          'Bytes\n'
+          '   A bytes object is an immutable array.  The items are 8-bit '
+          'bytes,\n'
+          '   represented by integers in the range 0 <= x < 256.  Bytes '
+          'literals\n'
+          '   (like "b\'abc\'") and the built-in "bytes()" constructor can be '
+          'used\n'
+          '   to create bytes objects.  Also, bytes objects can be decoded to\n'
+          '   strings via the "decode()" method.\n'
+          '\n'
+          '\n'
+          'Mutable sequences\n'
+          '-----------------\n'
+          '\n'
+          'Mutable sequences can be changed after they are created.  The\n'
+          'subscription and slicing notations can be used as the target of\n'
+          'assignment and "del" (delete) statements.\n'
+          '\n'
+          'Note:\n'
+          '\n'
+          '  The "collections" and "array" module provide additional examples '
           'of\n'
-          '      assignment and "del" (delete) statements.\n'
+          '  mutable sequence types.\n'
           '\n'
-          '      There are currently two intrinsic mutable sequence types:\n'
+          'There are currently two intrinsic mutable sequence types:\n'
           '\n'
-          '      Lists\n'
-          '         The items of a list are arbitrary Python objects.  Lists '
-          'are\n'
-          '         formed by placing a comma-separated list of expressions '
-          'in\n'
-          '         square brackets. (Note that there are no special cases '
-          'needed\n'
-          '         to form lists of length 0 or 1.)\n'
+          'Lists\n'
+          '   The items of a list are arbitrary Python objects.  Lists are '
+          'formed\n'
+          '   by placing a comma-separated list of expressions in square\n'
+          '   brackets. (Note that there are no special cases needed to form\n'
+          '   lists of length 0 or 1.)\n'
           '\n'
-          '      Byte Arrays\n'
-          '         A bytearray object is a mutable array. They are created '
-          'by\n'
-          '         the built-in "bytearray()" constructor.  Aside from being\n'
-          '         mutable (and hence unhashable), byte arrays otherwise '
-          'provide\n'
-          '         the same interface and functionality as immutable "bytes"\n'
-          '         objects.\n'
+          'Byte Arrays\n'
+          '   A bytearray object is a mutable array. They are created by the\n'
+          '   built-in "bytearray()" constructor.  Aside from being mutable '
+          '(and\n'
+          '   hence unhashable), byte arrays otherwise provide the same '
+          'interface\n'
+          '   and functionality as immutable "bytes" objects.\n'
           '\n'
-          '      The extension module "array" provides an additional example '
-          'of a\n'
-          '      mutable sequence type, as does the "collections" module.\n'
           '\n'
           'Set types\n'
-          '   These represent unordered, finite sets of unique, immutable\n'
-          '   objects. As such, they cannot be indexed by any subscript. '
-          'However,\n'
-          '   they can be iterated over, and the built-in function "len()"\n'
-          '   returns the number of items in a set. Common uses for sets are '
-          'fast\n'
-          '   membership testing, removing duplicates from a sequence, and\n'
-          '   computing mathematical operations such as intersection, union,\n'
-          '   difference, and symmetric difference.\n'
-          '\n'
-          '   For set elements, the same immutability rules apply as for\n'
-          '   dictionary keys. Note that numeric types obey the normal rules '
-          'for\n'
-          '   numeric comparison: if two numbers compare equal (e.g., "1" and\n'
-          '   "1.0"), only one of them can be contained in a set.\n'
+          '=========\n'
+          '\n'
+          'These represent unordered, finite sets of unique, immutable '
+          'objects.\n'
+          'As such, they cannot be indexed by any subscript. However, they can '
+          'be\n'
+          'iterated over, and the built-in function "len()" returns the number '
+          'of\n'
+          'items in a set. Common uses for sets are fast membership testing,\n'
+          'removing duplicates from a sequence, and computing mathematical\n'
+          'operations such as intersection, union, difference, and symmetric\n'
+          'difference.\n'
+          '\n'
+          'For set elements, the same immutability rules apply as for '
+          'dictionary\n'
+          'keys. Note that numeric types obey the normal rules for numeric\n'
+          'comparison: if two numbers compare equal (e.g., "1" and "1.0"), '
+          'only\n'
+          'one of them can be contained in a set.\n'
+          '\n'
+          'There are currently two intrinsic set types:\n'
           '\n'
-          '   There are currently two intrinsic set types:\n'
+          'Sets\n'
+          '   These represent a mutable set. They are created by the built-in\n'
+          '   "set()" constructor and can be modified afterwards by several\n'
+          '   methods, such as "add()".\n'
           '\n'
-          '   Sets\n'
-          '      These represent a mutable set. They are created by the '
+          'Frozen sets\n'
+          '   These represent an immutable set.  They are created by the '
           'built-in\n'
-          '      "set()" constructor and can be modified afterwards by '
-          'several\n'
-          '      methods, such as "add()".\n'
-          '\n'
-          '   Frozen sets\n'
-          '      These represent an immutable set.  They are created by the\n'
-          '      built-in "frozenset()" constructor.  As a frozenset is '
-          'immutable\n'
-          '      and *hashable*, it can be used again as an element of '
-          'another\n'
-          '      set, or as a dictionary key.\n'
+          '   "frozenset()" constructor.  As a frozenset is immutable and\n'
+          '   *hashable*, it can be used again as an element of another set, '
+          'or\n'
+          '   as a dictionary key.\n'
+          '\n'
           '\n'
           'Mappings\n'
-          '   These represent finite sets of objects indexed by arbitrary '
-          'index\n'
-          '   sets. The subscript notation "a[k]" selects the item indexed by '
+          '========\n'
+          '\n'
+          'These represent finite sets of objects indexed by arbitrary index\n'
+          'sets. The subscript notation "a[k]" selects the item indexed by '
           '"k"\n'
-          '   from the mapping "a"; this can be used in expressions and as '
-          'the\n'
-          '   target of assignments or "del" statements. The built-in '
-          'function\n'
-          '   "len()" returns the number of items in a mapping.\n'
+          'from the mapping "a"; this can be used in expressions and as the\n'
+          'target of assignments or "del" statements. The built-in function\n'
+          '"len()" returns the number of items in a mapping.\n'
           '\n'
-          '   There is currently a single intrinsic mapping type:\n'
+          'There is currently a single intrinsic mapping type:\n'
           '\n'
-          '   Dictionaries\n'
-          '      These represent finite sets of objects indexed by nearly\n'
-          '      arbitrary values.  The only types of values not acceptable '
-          'as\n'
-          '      keys are values containing lists or dictionaries or other\n'
-          '      mutable types that are compared by value rather than by '
-          'object\n'
-          '      identity, the reason being that the efficient implementation '
-          'of\n'
-          '      dictionaries requires a key’s hash value to remain constant.\n'
-          '      Numeric types used for keys obey the normal rules for '
-          'numeric\n'
-          '      comparison: if two numbers compare equal (e.g., "1" and '
-          '"1.0")\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 '
+          '\n'
+          'Dictionaries\n'
+          '------------\n'
+          '\n'
+          'These represent finite sets of objects indexed by nearly arbitrary\n'
+          'values.  The only types of values not acceptable as keys are '
+          'values\n'
+          'containing lists or dictionaries or other mutable types that are\n'
+          'compared by value rather than by object identity, the reason being\n'
+          'that the efficient implementation of dictionaries requires a key’s\n'
+          'hash value to remain constant. Numeric types used for keys obey '
           'the\n'
-          '      end instead of keeping its old place.\n'
+          'normal rules for numeric comparison: if two numbers compare equal\n'
+          '(e.g., "1" and "1.0") then they can be used interchangeably to '
+          'index\n'
+          'the same dictionary entry.\n'
           '\n'
-          '      Dictionaries are mutable; they can be created by the "{...}"\n'
-          '      notation (see section Dictionary displays).\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 end\n'
+          'instead of keeping its old place.\n'
           '\n'
-          '      The extension modules "dbm.ndbm" and "dbm.gnu" provide\n'
-          '      additional examples of mapping types, as does the '
-          '"collections"\n'
-          '      module.\n'
+          'Dictionaries are mutable; they can be created by the "{...}" '
+          'notation\n'
+          '(see section Dictionary displays).\n'
+          '\n'
+          'The extension modules "dbm.ndbm" and "dbm.gnu" provide additional\n'
+          'examples of mapping types, as does the "collections" module.\n'
+          '\n'
+          'Changed in version 3.7: Dictionaries did not preserve insertion '
+          'order\n'
+          'in versions of Python before 3.6. In CPython 3.6, insertion order '
+          'was\n'
+          'preserved, but it was considered an implementation detail at that '
+          'time\n'
+          'rather than a language 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'
+          '==============\n'
           '\n'
-          '   User-defined functions\n'
-          '      A user-defined function object is created by a function\n'
-          '      definition (see section Function definitions).  It should be\n'
-          '      called with an argument list containing the same number of '
-          'items\n'
-          '      as the function’s formal parameter list.\n'
+          'These are the types to which the function call operation (see '
+          'section\n'
+          'Calls) can be applied:\n'
           '\n'
-          '      Special attributes:\n'
           '\n'
-          '      '
+          'User-defined functions\n'
+          '----------------------\n'
+          '\n'
+          'A user-defined function object is created by a function definition\n'
+          '(see section Function definitions).  It should be called with an\n'
+          'argument list containing the same number of items as the '
+          'function’s\n'
+          'formal parameter list.\n'
+          '\n'
+          'Special attributes:\n'
+          '\n'
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | Attribute                 | Meaning                         '
+          '| Attribute                 | Meaning                         '
           '|             |\n'
-          '      '
           '|===========================|=================================|=============|\n'
-          '      | "__doc__"                 | The function’s documentation    '
-          'Writable    |\n'
-          '      |                           | string, or "None" if            '
+          '| "__doc__"                 | The function’s documentation    | '
+          'Writable    |\n'
+          '|                           | string, or "None" if            '
           '|             |\n'
-          '      |                           | unavailable; not inherited by   '
+          '|                           | unavailable; not inherited by   '
           '|             |\n'
-          '      |                           | subclasses.                     '
+          '|                           | subclasses.                     '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__name__"                | The function’s name.            '
-          '| Writable    |\n'
-          '      '
+          '| "__name__"                | The function’s name.            | '
+          'Writable    |\n'
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__qualname__"            | The function’s *qualified       '
-          'Writable    |\n'
-          '      |                           | name*.  New in version 3.3.     '
+          '| "__qualname__"            | The function’s *qualified       | '
+          'Writable    |\n'
+          '|                           | name*.  New in version 3.3.     '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__module__"              | The name of the module the      '
-          'Writable    |\n'
-          '      |                           | function was defined in, or     '
+          '| "__module__"              | The name of the module the      | '
+          'Writable    |\n'
+          '|                           | function was defined in, or     '
           '|             |\n'
-          '      |                           | "None" if unavailable.          '
+          '|                           | "None" if unavailable.          '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__defaults__"            | A tuple containing default      '
-          'Writable    |\n'
-          '      |                           | argument values for those       '
+          '| "__defaults__"            | A tuple containing default      | '
+          'Writable    |\n'
+          '|                           | argument values for those       '
           '|             |\n'
-          '      |                           | arguments that have defaults,   '
+          '|                           | arguments that have defaults,   '
           '|             |\n'
-          '      |                           | or "None" if no arguments have  '
+          '|                           | or "None" if no arguments have  '
           '|             |\n'
-          '      |                           | a default value.                '
+          '|                           | a default value.                '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__code__"                | The code object representing    '
-          'Writable    |\n'
-          '      |                           | the compiled function body.     '
+          '| "__code__"                | The code object representing    | '
+          'Writable    |\n'
+          '|                           | the compiled function body.     '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__globals__"             | A reference to the dictionary   '
-          'Read-only   |\n'
-          '      |                           | that holds the function’s       '
+          '| "__globals__"             | A reference to the dictionary   | '
+          'Read-only   |\n'
+          '|                           | that holds the function’s       '
           '|             |\n'
-          '      |                           | global variables — the global   '
+          '|                           | global variables — the global   '
           '|             |\n'
-          '      |                           | namespace of the module in      '
+          '|                           | namespace of the module in      '
           '|             |\n'
-          '      |                           | which the function was defined. '
+          '|                           | which the function was defined. '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__dict__"                | The namespace supporting        '
-          'Writable    |\n'
-          '      |                           | arbitrary function attributes.  '
+          '| "__dict__"                | The namespace supporting        | '
+          'Writable    |\n'
+          '|                           | arbitrary function attributes.  '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__closure__"             | "None" or a tuple of cells that '
-          'Read-only   |\n'
-          '      |                           | contain bindings for the        '
+          '| "__closure__"             | "None" or a tuple of cells that | '
+          'Read-only   |\n'
+          '|                           | contain bindings for the        '
           '|             |\n'
-          '      |                           | function’s free variables. See  '
+          '|                           | function’s free variables. See  '
           '|             |\n'
-          '      |                           | below for information on the    '
+          '|                           | below for information on the    '
           '|             |\n'
-          '      |                           | "cell_contents" attribute.      '
+          '|                           | "cell_contents" attribute.      '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__annotations__"         | A dict containing annotations   '
-          '| Writable    |\n'
-          '      |                           | of parameters.  The keys of the '
+          '| "__annotations__"         | A dict containing annotations   | '
+          'Writable    |\n'
+          '|                           | of parameters.  The keys of the '
+          '|             |\n'
+          '|                           | dict are the parameter names,   '
           '|             |\n'
-          '      |                           | dict are the parameter names,   '
+          '|                           | and "\'return\'" for the return   '
           '|             |\n'
-          '      |                           | and "\'return\'" for the '
-          'return   |             |\n'
-          '      |                           | annotation, if provided.  For   '
+          '|                           | annotation, if provided.  For   '
           '|             |\n'
-          '      |                           | more information on working     '
+          '|                           | more information on working     '
           '|             |\n'
-          '      |                           | with this attribute, see        '
+          '|                           | with this attribute, see        '
           '|             |\n'
-          '      |                           | Annotations Best Practices.     '
+          '|                           | Annotations Best Practices.     '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
-          '      | "__kwdefaults__"          | A dict containing defaults for  '
-          'Writable    |\n'
-          '      |                           | keyword-only parameters.        '
+          '| "__kwdefaults__"          | A dict containing defaults for  | '
+          'Writable    |\n'
+          '|                           | keyword-only parameters.        '
           '|             |\n'
-          '      '
           '+---------------------------+---------------------------------+-------------+\n'
           '\n'
-          '      Most of the attributes labelled “Writable” check the type of '
-          'the\n'
-          '      assigned value.\n'
+          'Most of the attributes labelled “Writable” check the type of the\n'
+          'assigned value.\n'
           '\n'
-          '      Function objects also support getting and setting arbitrary\n'
-          '      attributes, which can be used, for example, to attach '
-          'metadata\n'
-          '      to functions.  Regular attribute dot-notation is used to get '
-          'and\n'
-          '      set such attributes. *Note that the current implementation '
-          'only\n'
-          '      supports function attributes on user-defined functions. '
-          'Function\n'
-          '      attributes on built-in functions may be supported in the\n'
-          '      future.*\n'
-          '\n'
-          '      A cell object has the attribute "cell_contents". This can be\n'
-          '      used to get the value of the cell, as well as set the value.\n'
-          '\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'
-          '\n'
-          '   Instance methods\n'
-          '      An instance method object combines a class, a class instance '
-          'and\n'
-          '      any callable object (normally a user-defined function).\n'
-          '\n'
-          '      Special read-only attributes: "__self__" is the class '
-          'instance\n'
-          '      object, "__func__" is the function object; "__doc__" is the\n'
-          '      method’s documentation (same as "__func__.__doc__"); '
-          '"__name__"\n'
-          '      is the method name (same as "__func__.__name__"); '
-          '"__module__"\n'
-          '      is the name of the module the method was defined in, or '
-          '"None"\n'
-          '      if unavailable.\n'
+          'Function objects also support getting and setting arbitrary\n'
+          'attributes, which can be used, for example, to attach metadata to\n'
+          'functions.  Regular attribute dot-notation is used to get and set '
+          'such\n'
+          'attributes. *Note that the current implementation only supports\n'
+          'function attributes on user-defined functions. Function attributes '
+          'on\n'
+          'built-in functions may be supported in the future.*\n'
           '\n'
-          '      Methods also support accessing (but not setting) the '
-          'arbitrary\n'
-          '      function attributes on the underlying function object.\n'
+          'A cell object has the attribute "cell_contents". This can be used '
+          'to\n'
+          'get the value of the cell, as well as set the value.\n'
           '\n'
-          '      User-defined method objects may be created when getting an\n'
-          '      attribute of a class (perhaps via an instance of that class), '
-          'if\n'
-          '      that attribute is a user-defined function object or a class\n'
-          '      method object.\n'
-          '\n'
-          '      When an instance method object is created by retrieving a '
-          'user-\n'
-          '      defined function object from a class via one of its '
-          'instances,\n'
-          '      its "__self__" attribute is the instance, and the method '
-          'object\n'
-          '      is said to be bound.  The new method’s "__func__" attribute '
-          'is\n'
-          '      the original function object.\n'
+          'Additional information about a function’s definition can be '
+          'retrieved\n'
+          'from its code object; see the description of internal types below. '
+          'The\n'
+          '"cell" type can be accessed in the "types" module.\n'
           '\n'
-          '      When an instance method object is created by retrieving a '
-          'class\n'
-          '      method object from a class or instance, its "__self__" '
-          'attribute\n'
-          '      is the class itself, and its "__func__" attribute is the\n'
-          '      function object underlying the class method.\n'
           '\n'
-          '      When an instance method object is called, the underlying\n'
-          '      function ("__func__") is called, inserting the class '
-          'instance\n'
-          '      ("__self__") in front of the argument list.  For instance, '
-          'when\n'
-          '      "C" is a class which contains a definition for a function '
-          '"f()",\n'
-          '      and "x" is an instance of "C", calling "x.f(1)" is equivalent '
-          'to\n'
-          '      calling "C.f(x, 1)".\n'
+          'Instance methods\n'
+          '----------------\n'
+          '\n'
+          'An instance method object combines a class, a class instance and '
+          'any\n'
+          'callable object (normally a user-defined function).\n'
           '\n'
-          '      When an instance method object is derived from a class '
+          'Special read-only attributes: "__self__" is the class instance '
+          'object,\n'
+          '"__func__" is the function object; "__doc__" is the method’s\n'
+          'documentation (same as "__func__.__doc__"); "__name__" is the '
           'method\n'
-          '      object, the “class instance” stored in "__self__" will '
-          'actually\n'
-          '      be the class itself, so that calling either "x.f(1)" or '
-          '"C.f(1)"\n'
-          '      is equivalent to calling "f(C,1)" where "f" is the '
-          'underlying\n'
-          '      function.\n'
-          '\n'
-          '      Note that the transformation from function object to '
-          'instance\n'
-          '      method object happens each time the attribute is retrieved '
-          'from\n'
-          '      the instance.  In some cases, a fruitful optimization is to\n'
-          '      assign the attribute to a local variable and call that local\n'
-          '      variable. Also notice that this transformation only happens '
-          'for\n'
-          '      user-defined functions; other callable objects (and all non-\n'
-          '      callable objects) are retrieved without transformation.  It '
-          'is\n'
-          '      also important to note that user-defined functions which are\n'
-          '      attributes of a class instance are not converted to bound\n'
-          '      methods; this *only* happens when the function is an '
+          'name (same as "__func__.__name__"); "__module__" is the name of '
+          'the\n'
+          'module the method was defined in, or "None" if unavailable.\n'
+          '\n'
+          'Methods also support accessing (but not setting) the arbitrary\n'
+          'function attributes on the underlying function object.\n'
+          '\n'
+          'User-defined method objects may be created when getting an '
+          'attribute\n'
+          'of a class (perhaps via an instance of that class), if that '
           'attribute\n'
-          '      of the class.\n'
+          'is a user-defined function object or a class method object.\n'
           '\n'
-          '   Generator functions\n'
-          '      A function or method which uses the "yield" statement (see\n'
-          '      section The yield statement) is called a *generator '
-          'function*.\n'
-          '      Such a function, when called, always returns an *iterator*\n'
-          '      object which can be used to execute the body of the '
-          'function:\n'
-          '      calling the iterator’s "iterator.__next__()" method will '
-          'cause\n'
-          '      the function to execute until it provides a value using the\n'
-          '      "yield" statement.  When the function executes a "return"\n'
-          '      statement or falls off the end, a "StopIteration" exception '
-          'is\n'
-          '      raised and the iterator will have reached the end of the set '
+          'When an instance method object is created by retrieving a '
+          'user-defined\n'
+          'function object from a class via one of its instances, its '
+          '"__self__"\n'
+          'attribute is the instance, and the method object is said to be '
+          'bound.\n'
+          'The new method’s "__func__" attribute is the original function '
+          'object.\n'
+          '\n'
+          'When an instance method object is created by retrieving a class '
+          'method\n'
+          'object from a class or instance, its "__self__" attribute is the '
+          'class\n'
+          'itself, and its "__func__" attribute is the function object '
+          'underlying\n'
+          'the class method.\n'
+          '\n'
+          'When an instance method object is called, the underlying function\n'
+          '("__func__") is called, inserting the class instance ("__self__") '
+          'in\n'
+          'front of the argument list.  For instance, when "C" is a class '
+          'which\n'
+          'contains a definition for a function "f()", and "x" is an instance '
           'of\n'
-          '      values to be returned.\n'
-          '\n'
-          '   Coroutine functions\n'
-          '      A function or method which is defined using "async def" is\n'
-          '      called a *coroutine function*.  Such a function, when '
-          'called,\n'
-          '      returns a *coroutine* object.  It may contain "await"\n'
-          '      expressions, as well as "async with" and "async for" '
-          'statements.\n'
-          '      See also the Coroutine Objects section.\n'
-          '\n'
-          '   Asynchronous generator functions\n'
-          '      A function or method which is defined using "async def" and\n'
-          '      which uses the "yield" statement is called a *asynchronous\n'
-          '      generator function*.  Such a function, when called, returns '
-          'an\n'
-          '      *asynchronous iterator* object which can be used in an '
-          '"async\n'
-          '      for" statement to execute the body of the function.\n'
+          '"C", calling "x.f(1)" is equivalent to calling "C.f(x, 1)".\n'
           '\n'
-          '      Calling the asynchronous iterator’s "aiterator.__anext__" '
+          'When an instance method object is derived from a class method '
+          'object,\n'
+          'the “class instance” stored in "__self__" will actually be the '
+          'class\n'
+          'itself, so that calling either "x.f(1)" or "C.f(1)" is equivalent '
+          'to\n'
+          'calling "f(C,1)" where "f" is the underlying function.\n'
+          '\n'
+          'Note that the transformation from function object to instance '
           'method\n'
-          '      will return an *awaitable* which when awaited will execute '
+          'object happens each time the attribute is retrieved from the '
+          'instance.\n'
+          'In some cases, a fruitful optimization is to assign the attribute '
+          'to a\n'
+          'local variable and call that local variable. Also notice that this\n'
+          'transformation only happens for user-defined functions; other '
+          'callable\n'
+          'objects (and all non-callable objects) are retrieved without\n'
+          'transformation.  It is also important to note that user-defined\n'
+          'functions which are attributes of a class instance are not '
+          'converted\n'
+          'to bound methods; this *only* happens when the function is an\n'
+          'attribute of the class.\n'
+          '\n'
+          '\n'
+          'Generator functions\n'
+          '-------------------\n'
+          '\n'
+          'A function or method which uses the "yield" statement (see section '
+          'The\n'
+          'yield statement) is called a *generator function*.  Such a '
+          'function,\n'
+          'when called, always returns an *iterator* object which can be used '
+          'to\n'
+          'execute the body of the function:  calling the iterator’s\n'
+          '"iterator.__next__()" method will cause the function to execute '
           'until\n'
-          '      it provides a value using the "yield" expression.  When the\n'
-          '      function executes an empty "return" statement or falls off '
+          'it provides a value using the "yield" statement.  When the '
+          'function\n'
+          'executes a "return" statement or falls off the end, a '
+          '"StopIteration"\n'
+          'exception is raised and the iterator will have reached the end of '
           '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'
+          'set of values to be returned.\n'
           '\n'
-          '   Built-in functions\n'
-          '      A built-in function object is a wrapper around a C function.\n'
-          '      Examples of built-in functions are "len()" and "math.sin()"\n'
-          '      ("math" is a standard built-in module). The number and type '
-          'of\n'
-          '      the arguments are determined by the C function. Special '
-          'read-\n'
-          '      only attributes: "__doc__" is the function’s documentation\n'
-          '      string, or "None" if unavailable; "__name__" is the '
-          'function’s\n'
-          '      name; "__self__" is set to "None" (but see the next item);\n'
-          '      "__module__" is the name of the module the function was '
-          'defined\n'
-          '      in or "None" if unavailable.\n'
           '\n'
-          '   Built-in methods\n'
-          '      This is really a different disguise of a built-in function, '
-          'this\n'
-          '      time containing an object passed to the C function as an\n'
-          '      implicit extra argument.  An example of a built-in method is\n'
-          '      "alist.append()", assuming *alist* is a list object. In this\n'
-          '      case, the special read-only attribute "__self__" is set to '
+          'Coroutine functions\n'
+          '-------------------\n'
+          '\n'
+          'A function or method which is defined using "async def" is called '
+          'a\n'
+          '*coroutine function*.  Such a function, when called, returns a\n'
+          '*coroutine* object.  It may contain "await" expressions, as well '
+          'as\n'
+          '"async with" and "async for" statements. See also the Coroutine\n'
+          'Objects section.\n'
+          '\n'
+          '\n'
+          'Asynchronous generator functions\n'
+          '--------------------------------\n'
+          '\n'
+          'A function or method which is defined using "async def" and which '
+          'uses\n'
+          'the "yield" statement is called a *asynchronous generator '
+          'function*.\n'
+          'Such a function, when called, returns an *asynchronous iterator*\n'
+          'object which can be used in an "async for" statement to execute '
           'the\n'
-          '      object denoted by *alist*.\n'
+          'body of the function.\n'
+          '\n'
+          'Calling the asynchronous iterator’s "aiterator.__anext__" method '
+          'will\n'
+          'return an *awaitable* which when awaited will execute until it\n'
+          'provides a value using the "yield" expression.  When the function\n'
+          'executes an empty "return" statement or falls off the end, a\n'
+          '"StopAsyncIteration" exception is raised and the asynchronous '
+          'iterator\n'
+          'will have reached the end of the set of values to be yielded.\n'
+          '\n'
+          '\n'
+          'Built-in functions\n'
+          '------------------\n'
+          '\n'
+          'A built-in function object is a wrapper around a C function.  '
+          'Examples\n'
+          'of built-in functions are "len()" and "math.sin()" ("math" is a\n'
+          'standard built-in module). The number and type of the arguments '
+          'are\n'
+          'determined by the C function. Special read-only attributes: '
+          '"__doc__"\n'
+          'is the function’s documentation string, or "None" if unavailable;\n'
+          '"__name__" is the function’s name; "__self__" is set to "None" '
+          '(but\n'
+          'see the next item); "__module__" is the name of the module the\n'
+          'function was defined in or "None" if unavailable.\n'
+          '\n'
+          '\n'
+          'Built-in methods\n'
+          '----------------\n'
+          '\n'
+          'This is really a different disguise of a built-in function, this '
+          'time\n'
+          'containing an object passed to the C function as an implicit extra\n'
+          'argument.  An example of a built-in method is "alist.append()",\n'
+          'assuming *alist* is a list object. In this case, the special '
+          'read-only\n'
+          'attribute "__self__" is set to the object denoted by *alist*.\n'
+          '\n'
+          '\n'
+          'Classes\n'
+          '-------\n'
+          '\n'
+          'Classes are callable.  These objects normally act as factories for '
+          'new\n'
+          'instances of themselves, but variations are possible for class '
+          'types\n'
+          'that override "__new__()".  The arguments of the call are passed '
+          'to\n'
+          '"__new__()" and, in the typical case, to "__init__()" to '
+          'initialize\n'
+          'the new instance.\n'
           '\n'
-          '   Classes\n'
-          '      Classes are callable.  These objects normally act as '
-          'factories\n'
-          '      for new instances of themselves, but variations are possible '
-          'for\n'
-          '      class types that override "__new__()".  The arguments of the\n'
-          '      call are passed to "__new__()" and, in the typical case, to\n'
-          '      "__init__()" to initialize the new instance.\n'
           '\n'
-          '   Class Instances\n'
-          '      Instances of arbitrary classes can be made callable by '
-          'defining\n'
-          '      a "__call__()" method in their class.\n'
+          'Class Instances\n'
+          '---------------\n'
+          '\n'
+          'Instances of arbitrary classes can be made callable by defining a\n'
+          '"__call__()" method in their class.\n'
+          '\n'
           '\n'
           'Modules\n'
-          '   Modules are a basic organizational unit of Python code, and are\n'
-          '   created by the import system as invoked either by the "import"\n'
-          '   statement, or by calling functions such as\n'
-          '   "importlib.import_module()" and built-in "__import__()".  A '
-          'module\n'
-          '   object has a namespace implemented by a dictionary object (this '
-          'is\n'
-          '   the dictionary referenced by the "__globals__" attribute of\n'
-          '   functions defined in the module).  Attribute references are\n'
-          '   translated to lookups in this dictionary, e.g., "m.x" is '
-          'equivalent\n'
-          '   to "m.__dict__["x"]". A module object does not contain the code\n'
-          '   object used to initialize the module (since it isn’t needed '
-          'once\n'
-          '   the initialization is done).\n'
+          '=======\n'
+          '\n'
+          'Modules are a basic organizational unit of Python code, and are\n'
+          'created by the import system as invoked either by the "import"\n'
+          'statement, or by calling functions such as '
+          '"importlib.import_module()"\n'
+          'and built-in "__import__()".  A module object has a namespace\n'
+          'implemented by a dictionary object (this is the dictionary '
+          'referenced\n'
+          'by the "__globals__" attribute of functions defined in the '
+          'module).\n'
+          'Attribute references are translated to lookups in this dictionary,\n'
+          'e.g., "m.x" is equivalent to "m.__dict__["x"]". A module object '
+          'does\n'
+          'not contain the code object used to initialize the module (since '
+          'it\n'
+          'isn’t needed once the initialization is done).\n'
+          '\n'
+          'Attribute assignment updates the module’s namespace dictionary, '
+          'e.g.,\n'
+          '"m.x = 1" is equivalent to "m.__dict__["x"] = 1".\n'
           '\n'
-          '   Attribute assignment updates the module’s namespace dictionary,\n'
-          '   e.g., "m.x = 1" is equivalent to "m.__dict__["x"] = 1".\n'
+          'Predefined (writable) attributes:\n'
           '\n'
-          '   Predefined (writable) attributes:\n'
+          '   "__name__"\n'
+          '      The module’s name.\n'
           '\n'
-          '      "__name__"\n'
-          '         The module’s name.\n'
+          '   "__doc__"\n'
+          '      The module’s documentation string, or "None" if unavailable.\n'
           '\n'
-          '      "__doc__"\n'
-          '         The module’s documentation string, or "None" if '
-          'unavailable.\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 '
+          'modules\n'
+          '      loaded dynamically from a shared library, it’s the pathname '
+          'of\n'
+          '      the shared library file.\n'
           '\n'
-          '      "__file__"\n'
-          '         The pathname of the file from which the module was loaded, '
-          'if\n'
-          '         it was loaded from a file. The "__file__" attribute may '
-          'be\n'
-          '         missing for certain types of modules, such as C modules '
-          'that\n'
-          '         are statically linked into the interpreter.  For '
-          'extension\n'
-          '         modules loaded dynamically from a shared library, it’s '
-          'the\n'
-          '         pathname of the shared library file.\n'
-          '\n'
-          '      "__annotations__"\n'
-          '         A dictionary containing *variable annotations* collected\n'
-          '         during module body execution.  For best practices on '
-          'working\n'
-          '         with "__annotations__", please see Annotations Best\n'
-          '         Practices.\n'
-          '\n'
-          '   Special read-only attribute: "__dict__" is the module’s '
-          'namespace\n'
-          '   as a dictionary object.\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 '
+          '   "__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'
+          '\n'
+          'Special read-only attribute: "__dict__" is the module’s namespace '
+          'as a\n'
+          'dictionary object.\n'
+          '\n'
+          '**CPython implementation detail:** Because of the way CPython '
+          'clears\n'
+          'module dictionaries, the module dictionary will be cleared when '
           'the\n'
-          '   module around while using its dictionary directly.\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'
+          '\n'
           '\n'
           'Custom classes\n'
-          '   Custom class types are typically created by class definitions '
-          '(see\n'
-          '   section Class definitions).  A class has a namespace implemented '
-          'by\n'
-          '   a dictionary object. Class attribute references are translated '
-          'to\n'
-          '   lookups in this dictionary, e.g., "C.x" is translated to\n'
-          '   "C.__dict__["x"]" (although there are a number of hooks which '
+          '==============\n'
+          '\n'
+          'Custom class types are typically created by class definitions (see\n'
+          'section Class definitions).  A class has a namespace implemented by '
+          'a\n'
+          'dictionary object. Class attribute references are translated to\n'
+          'lookups in this dictionary, e.g., "C.x" is translated to\n'
+          '"C.__dict__["x"]" (although there are a number of hooks which '
           'allow\n'
-          '   for other means of locating attributes). When the attribute name '
+          'for other means of locating attributes). When the attribute name '
           'is\n'
-          '   not found there, the attribute search continues in the base\n'
-          '   classes. This search of the base classes uses the C3 method\n'
-          '   resolution order which behaves correctly even in the presence '
-          'of\n'
-          '   ‘diamond’ inheritance structures where there are multiple\n'
-          '   inheritance paths leading back to a common ancestor. Additional\n'
-          '   details on the C3 MRO used by Python can be found in the\n'
-          '   documentation accompanying the 2.3 release at\n'
-          '   https://www.python.org/download/releases/2.3/mro/.\n'
-          '\n'
-          '   When a class attribute reference (for class "C", say) would '
-          'yield a\n'
-          '   class method object, it is transformed into an instance method\n'
-          '   object whose "__self__" attribute is "C".  When it would yield '
+          'not found there, the attribute search continues in the base '
+          'classes.\n'
+          'This search of the base classes uses the C3 method resolution '
+          'order\n'
+          'which behaves correctly even in the presence of ‘diamond’ '
+          'inheritance\n'
+          'structures where there are multiple inheritance paths leading back '
+          'to\n'
+          'a common ancestor. Additional details on the C3 MRO used by Python '
+          'can\n'
+          'be found in the documentation accompanying the 2.3 release at\n'
+          'https://www.python.org/download/releases/2.3/mro/.\n'
+          '\n'
+          'When a class attribute reference (for class "C", say) would yield '
           'a\n'
-          '   static method object, it is transformed into the object wrapped '
-          'by\n'
-          '   the static method object. See section Implementing Descriptors '
-          'for\n'
-          '   another way in which attributes retrieved from a class may '
-          'differ\n'
-          '   from those actually contained in its "__dict__".\n'
+          'class method object, it is transformed into an instance method '
+          'object\n'
+          'whose "__self__" attribute is "C".  When it would yield a static\n'
+          'method object, it is transformed into the object wrapped by the '
+          'static\n'
+          'method object. See section Implementing Descriptors for another way '
+          'in\n'
+          'which attributes retrieved from a class may differ from those '
+          'actually\n'
+          'contained in its "__dict__".\n'
           '\n'
-          '   Class attribute assignments update the class’s dictionary, '
-          'never\n'
-          '   the dictionary of a base class.\n'
+          'Class attribute assignments update the class’s dictionary, never '
+          'the\n'
+          'dictionary of a base class.\n'
+          '\n'
+          'A class object can be called (see above) to yield a class instance\n'
+          '(see below).\n'
           '\n'
-          '   A class object can be called (see above) to yield a class '
-          'instance\n'
-          '   (see below).\n'
+          'Special attributes:\n'
           '\n'
-          '   Special attributes:\n'
+          '   "__name__"\n'
+          '      The class name.\n'
           '\n'
-          '      "__name__"\n'
-          '         The class name.\n'
+          '   "__module__"\n'
+          '      The name of the module in which the class was defined.\n'
           '\n'
-          '      "__module__"\n'
-          '         The name of the module in which the class was defined.\n'
+          '   "__dict__"\n'
+          '      The dictionary containing the class’s namespace.\n'
           '\n'
-          '      "__dict__"\n'
-          '         The dictionary containing the class’s namespace.\n'
+          '   "__bases__"\n'
+          '      A tuple containing the base classes, in the order of their\n'
+          '      occurrence in the base class list.\n'
           '\n'
-          '      "__bases__"\n'
-          '         A tuple containing the base classes, in the order of '
-          'their\n'
-          '         occurrence in the base class list.\n'
+          '   "__doc__"\n'
+          '      The class’s documentation string, or "None" if undefined.\n'
           '\n'
-          '      "__doc__"\n'
-          '         The class’s documentation string, or "None" if undefined.\n'
+          '   "__annotations__"\n'
+          '      A dictionary containing *variable annotations* collected '
+          'during\n'
+          '      class body execution.  For best practices on working with\n'
+          '      "__annotations__", please see Annotations Best Practices.\n'
           '\n'
-          '      "__annotations__"\n'
-          '         A dictionary containing *variable annotations* collected\n'
-          '         during class body execution.  For best practices on '
-          'working\n'
-          '         with "__annotations__", please see Annotations Best\n'
-          '         Practices.\n'
           '\n'
           'Class instances\n'
-          '   A class instance is created by calling a class object (see '
-          'above).\n'
-          '   A class instance has a namespace implemented as a dictionary '
-          'which\n'
-          '   is the first place in which attribute references are searched.\n'
-          '   When an attribute is not found there, and the instance’s class '
-          'has\n'
-          '   an attribute by that name, the search continues with the class\n'
-          '   attributes.  If a class attribute is found that is a '
-          'user-defined\n'
-          '   function object, it is transformed into an instance method '
-          'object\n'
-          '   whose "__self__" attribute is the instance.  Static method and\n'
-          '   class method objects are also transformed; see above under\n'
-          '   “Classes”.  See section Implementing Descriptors for another way '
-          'in\n'
-          '   which attributes of a class retrieved via its instances may '
-          'differ\n'
-          '   from the objects actually stored in the class’s "__dict__".  If '
-          'no\n'
-          '   class attribute is found, and the object’s class has a\n'
-          '   "__getattr__()" method, that is called to satisfy the lookup.\n'
+          '===============\n'
           '\n'
-          '   Attribute assignments and deletions update the instance’s\n'
-          '   dictionary, never a class’s dictionary.  If the class has a\n'
-          '   "__setattr__()" or "__delattr__()" method, this is called '
-          'instead\n'
-          '   of updating the instance dictionary directly.\n'
+          'A class instance is created by calling a class object (see above).  '
+          'A\n'
+          'class instance has a namespace implemented as a dictionary which '
+          'is\n'
+          'the first place in which attribute references are searched.  When '
+          'an\n'
+          'attribute is not found there, and the instance’s class has an\n'
+          'attribute by that name, the search continues with the class\n'
+          'attributes.  If a class attribute is found that is a user-defined\n'
+          'function object, it is transformed into an instance method object\n'
+          'whose "__self__" attribute is the instance.  Static method and '
+          'class\n'
+          'method objects are also transformed; see above under “Classes”.  '
+          'See\n'
+          'section Implementing Descriptors for another way in which '
+          'attributes\n'
+          'of a class retrieved via its instances may differ from the objects\n'
+          'actually stored in the class’s "__dict__".  If no class attribute '
+          'is\n'
+          'found, and the object’s class has a "__getattr__()" method, that '
+          'is\n'
+          'called to satisfy the lookup.\n'
           '\n'
-          '   Class instances can pretend to be numbers, sequences, or '
-          'mappings\n'
-          '   if they have methods with certain special names.  See section\n'
-          '   Special method names.\n'
+          'Attribute assignments and deletions update the instance’s '
+          'dictionary,\n'
+          'never a class’s dictionary.  If the class has a "__setattr__()" or\n'
+          '"__delattr__()" method, this is called instead of updating the\n'
+          'instance dictionary directly.\n'
+          '\n'
+          'Class instances can pretend to be numbers, sequences, or mappings '
+          'if\n'
+          'they have methods with certain special names.  See section Special\n'
+          'method names.\n'
+          '\n'
+          'Special attributes: "__dict__" is the attribute dictionary;\n'
+          '"__class__" is the instance’s class.\n'
           '\n'
-          '   Special attributes: "__dict__" is the attribute dictionary;\n'
-          '   "__class__" is the instance’s class.\n'
           '\n'
           'I/O objects (also known as file objects)\n'
-          '   A *file object* represents an open file.  Various shortcuts are\n'
-          '   available to create file objects: the "open()" built-in '
-          'function,\n'
-          '   and also "os.popen()", "os.fdopen()", and the "makefile()" '
-          'method\n'
-          '   of socket objects (and perhaps by other functions or methods\n'
-          '   provided by extension modules).\n'
+          '========================================\n'
+          '\n'
+          'A *file object* represents an open file.  Various shortcuts are\n'
+          'available to create file objects: the "open()" built-in function, '
+          'and\n'
+          'also "os.popen()", "os.fdopen()", and the "makefile()" method of\n'
+          'socket objects (and perhaps by other functions or methods provided '
+          'by\n'
+          'extension modules).\n'
+          '\n'
+          'The objects "sys.stdin", "sys.stdout" and "sys.stderr" are '
+          'initialized\n'
+          'to file objects corresponding to the interpreter’s standard input,\n'
+          'output and error streams; they are all open in text mode and '
+          'therefore\n'
+          'follow the interface defined by the "io.TextIOBase" abstract '
+          'class.\n'
           '\n'
-          '   The objects "sys.stdin", "sys.stdout" and "sys.stderr" are\n'
-          '   initialized to file objects corresponding to the interpreter’s\n'
-          '   standard input, output and error streams; they are all open in '
-          'text\n'
-          '   mode and therefore follow the interface defined by the\n'
-          '   "io.TextIOBase" abstract class.\n'
           '\n'
           'Internal types\n'
-          '   A few types used internally by the interpreter are exposed to '
-          'the\n'
-          '   user. Their definitions may change with future versions of the\n'
-          '   interpreter, but they are mentioned here for completeness.\n'
-          '\n'
-          '   Code objects\n'
-          '      Code objects represent *byte-compiled* executable Python '
-          'code,\n'
-          '      or *bytecode*. The difference between a code object and a\n'
-          '      function object is that the function object contains an '
-          'explicit\n'
-          '      reference to the function’s globals (the module in which it '
-          'was\n'
-          '      defined), while a code object contains no context; also the\n'
-          '      default argument values are stored in the function object, '
-          'not\n'
-          '      in the code object (because they represent values calculated '
-          'at\n'
-          '      run-time).  Unlike function objects, code objects are '
-          'immutable\n'
-          '      and contain no references (directly or indirectly) to '
-          'mutable\n'
-          '      objects.\n'
-          '\n'
-          '      Special read-only attributes: "co_name" gives the function '
-          'name;\n'
-          '      "co_qualname" gives the fully qualified 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 '
-          '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'
+          '==============\n'
+          '\n'
+          'A few types used internally by the interpreter are exposed to the\n'
+          'user. Their definitions may change with future versions of the\n'
+          'interpreter, but they are mentioned here for completeness.\n'
           '\n'
-          '      The following flag bits are defined for "co_flags": bit '
-          '"0x04"\n'
-          '      is set if the function uses the "*arguments" syntax to accept '
-          'an\n'
-          '      arbitrary number of positional arguments; bit "0x08" is set '
-          'if\n'
-          '      the function uses the "**keywords" syntax to accept '
-          'arbitrary\n'
-          '      keyword arguments; bit "0x20" is set if the function is a\n'
-          '      generator.\n'
           '\n'
-          '      Future feature declarations ("from __future__ import '
-          'division")\n'
-          '      also use bits in "co_flags" to indicate whether a code '
+          'Code objects\n'
+          '------------\n'
+          '\n'
+          'Code objects represent *byte-compiled* executable Python code, or\n'
+          '*bytecode*. The difference between a code object and a function '
           'object\n'
-          '      was compiled with a particular feature enabled: bit "0x2000" '
+          'is that the function object contains an explicit reference to the\n'
+          'function’s globals (the module in which it was defined), while a '
+          'code\n'
+          'object contains no context; also the default argument values are\n'
+          'stored in the function object, not in the code object (because '
+          'they\n'
+          'represent values calculated at run-time).  Unlike function '
+          'objects,\n'
+          'code objects are immutable and contain no references (directly or\n'
+          'indirectly) to mutable objects.\n'
+          '\n'
+          'Special read-only attributes: "co_name" gives the function name;\n'
+          '"co_qualname" gives the fully qualified function name; '
+          '"co_argcount"\n'
+          'is the total number of positional arguments (including '
+          'positional-only\n'
+          'arguments and arguments with default values); "co_posonlyargcount" '
           'is\n'
-          '      set if the function was compiled with future division '
-          'enabled;\n'
-          '      bits "0x10" and "0x1000" were used in earlier versions of\n'
-          '      Python.\n'
+          'the number of positional-only arguments (including arguments with\n'
+          'default values); "co_kwonlyargcount" is the number of keyword-only\n'
+          'arguments (including arguments with default values); "co_nlocals" '
+          'is\n'
+          'the number of local variables used by the function (including\n'
+          'arguments); "co_varnames" is a tuple containing the names of the '
+          'local\n'
+          'variables (starting with the argument names); "co_cellvars" is a '
+          'tuple\n'
+          'containing the names of local variables that are referenced by '
+          'nested\n'
+          'functions; "co_freevars" is a tuple containing the names of free\n'
+          'variables; "co_code" is a string representing the sequence of '
+          'bytecode\n'
+          'instructions; "co_consts" is a tuple containing the literals used '
+          'by\n'
+          'the 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 '
+          'function;\n'
+          '"co_lnotab" is a string encoding the mapping from bytecode offsets '
+          'to\n'
+          'line numbers (for details see the source code of the interpreter);\n'
+          '"co_stacksize" is the required stack size; "co_flags" is an '
+          'integer\n'
+          'encoding a number of flags for the interpreter.\n'
           '\n'
-          '      Other bits in "co_flags" are reserved for internal use.\n'
+          'The following flag bits are defined for "co_flags": bit "0x04" is '
+          'set\n'
+          'if the function uses the "*arguments" syntax to accept an '
+          'arbitrary\n'
+          'number of positional arguments; bit "0x08" is set if the function '
+          'uses\n'
+          'the "**keywords" syntax to accept arbitrary keyword arguments; bit\n'
+          '"0x20" is set if the function is a generator.\n'
+          '\n'
+          'Future feature declarations ("from __future__ import division") '
+          'also\n'
+          'use bits in "co_flags" to indicate whether a code object was '
+          'compiled\n'
+          'with a particular feature enabled: bit "0x2000" is set if the '
+          'function\n'
+          'was compiled with future division enabled; bits "0x10" and '
+          '"0x1000"\n'
+          'were used in earlier versions of Python.\n'
           '\n'
-          '      If a code object represents a function, the first item in\n'
-          '      "co_consts" is the documentation string of the function, or\n'
-          '      "None" if undefined.\n'
+          'Other bits in "co_flags" are reserved for internal use.\n'
           '\n'
-          '      codeobject.co_positions()\n'
+          'If a code object represents a function, the first item in '
+          '"co_consts"\n'
+          'is the documentation string of the function, or "None" if '
+          'undefined.\n'
           '\n'
-          '         Returns an iterable over the source code positions of '
-          'each\n'
-          '         bytecode instruction in the code object.\n'
+          'codeobject.co_positions()\n'
           '\n'
-          '         The iterator returns tuples containing the "(start_line,\n'
-          '         end_line, start_column, end_column)". The *i-th* tuple\n'
-          '         corresponds to the position of the source code that '
-          'compiled\n'
-          '         to the *i-th* instruction. Column information is '
-          '0-indexed\n'
-          '         utf-8 byte offsets on the given source line.\n'
+          '   Returns an iterable over the source code positions of each '
+          'bytecode\n'
+          '   instruction in the code object.\n'
           '\n'
-          '         This positional information can be missing. A '
-          'non-exhaustive\n'
-          '         lists of cases where this may happen:\n'
+          '   The iterator returns tuples containing the "(start_line, '
+          'end_line,\n'
+          '   start_column, end_column)". The *i-th* tuple corresponds to the\n'
+          '   position of the source code that compiled to the *i-th*\n'
+          '   instruction. Column information is 0-indexed utf-8 byte offsets '
+          'on\n'
+          '   the given source line.\n'
           '\n'
-          '         * Running the interpreter with "-X" "no_debug_ranges".\n'
+          '   This positional information can be missing. A non-exhaustive '
+          'lists\n'
+          '   of cases where this may happen:\n'
           '\n'
-          '         * Loading a pyc file compiled while using "-X"\n'
-          '           "no_debug_ranges".\n'
+          '   * Running the interpreter with "-X" "no_debug_ranges".\n'
           '\n'
-          '         * Position tuples corresponding to artificial '
-          'instructions.\n'
+          '   * Loading a pyc file compiled while using "-X" '
+          '"no_debug_ranges".\n'
           '\n'
-          '         * Line and column numbers that can’t be represented due '
-          'to\n'
-          '           implementation specific limitations.\n'
+          '   * Position tuples corresponding to artificial instructions.\n'
           '\n'
-          '         When this occurs, some or all of the tuple elements can '
-          'be\n'
-          '         "None".\n'
+          '   * Line and column numbers that can’t be represented due to\n'
+          '     implementation specific limitations.\n'
           '\n'
-          '         New in version 3.11.\n'
+          '   When this occurs, some or all of the tuple elements can be '
+          '"None".\n'
           '\n'
-          '         Note:\n'
+          '   New in version 3.11.\n'
           '\n'
-          '           This feature requires storing column positions in code\n'
-          '           objects which may result in a small increase of disk '
-          'usage\n'
-          '           of compiled Python files or interpreter memory usage. '
-          'To\n'
-          '           avoid storing the extra information and/or deactivate\n'
-          '           printing the extra traceback information, the "-X"\n'
-          '           "no_debug_ranges" command line flag or the\n'
-          '           "PYTHONNODEBUGRANGES" environment variable can be used.\n'
+          '   Note:\n'
           '\n'
-          '   Frame objects\n'
-          '      Frame objects represent execution frames.  They may occur in\n'
-          '      traceback objects (see below), and are also passed to '
-          'registered\n'
-          '      trace functions.\n'
+          '     This feature requires storing column positions in code '
+          'objects\n'
+          '     which may result in a small increase of disk usage of '
+          'compiled\n'
+          '     Python files or interpreter memory usage. To avoid storing '
+          'the\n'
+          '     extra information and/or deactivate printing the extra '
+          'traceback\n'
+          '     information, the "-X" "no_debug_ranges" command line flag or '
+          'the\n'
+          '     "PYTHONNODEBUGRANGES" environment variable can be used.\n'
+          '\n'
+          '\n'
+          'Frame objects\n'
+          '-------------\n'
+          '\n'
+          'Frame objects represent execution frames.  They may occur in '
+          'traceback\n'
+          'objects (see below), and are also passed to registered trace\n'
+          'functions.\n'
+          '\n'
+          'Special read-only attributes: "f_back" is to the previous stack '
+          'frame\n'
+          '(towards the caller), or "None" if this is the bottom stack frame;\n'
+          '"f_code" is the code object being executed in this frame; '
+          '"f_locals"\n'
+          'is the dictionary used to look up local variables; "f_globals" is '
+          'used\n'
+          'for global variables; "f_builtins" is used for built-in '
+          '(intrinsic)\n'
+          'names; "f_lasti" gives the precise instruction (this is an index '
+          'into\n'
+          'the bytecode string of the code object).\n'
+          '\n'
+          'Accessing "f_code" raises an auditing event "object.__getattr__" '
+          'with\n'
+          'arguments "obj" and ""f_code"".\n'
+          '\n'
+          'Special writable attributes: "f_trace", if not "None", is a '
+          'function\n'
+          'called for various events during code execution (this is used by '
+          'the\n'
+          'debugger). Normally an event is triggered for each new source line '
+          '-\n'
+          'this can be disabled by setting "f_trace_lines" to "False".\n'
           '\n'
-          '      Special read-only attributes: "f_back" is to the previous '
-          'stack\n'
-          '      frame (towards the caller), or "None" if this is the bottom\n'
-          '      stack frame; "f_code" is the code object being executed in '
+          'Implementations *may* allow per-opcode events to be requested by\n'
+          'setting "f_trace_opcodes" to "True". Note that this may lead to\n'
+          'undefined interpreter behaviour if exceptions raised by the trace\n'
+          'function escape to the function being traced.\n'
+          '\n'
+          '"f_lineno" is the current line number of the frame — writing to '
           'this\n'
-          '      frame; "f_locals" is the dictionary used to look up local\n'
-          '      variables; "f_globals" is used for global variables;\n'
-          '      "f_builtins" is used for built-in (intrinsic) names; '
-          '"f_lasti"\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'
-          '      Special writable attributes: "f_trace", if not "None", is a\n'
-          '      function called for various events during code execution '
-          '(this\n'
-          '      is used by the debugger). Normally an event is triggered for\n'
-          '      each new source line - this can be disabled by setting\n'
-          '      "f_trace_lines" to "False".\n'
-          '\n'
-          '      Implementations *may* allow per-opcode events to be requested '
-          'by\n'
-          '      setting "f_trace_opcodes" to "True". Note that this may lead '
-          'to\n'
-          '      undefined interpreter behaviour if exceptions raised by the\n'
-          '      trace function escape to the function being traced.\n'
+          'from within a trace function jumps to the given line (only for the\n'
+          'bottom-most frame).  A debugger can implement a Jump command (aka '
+          'Set\n'
+          'Next Statement) by writing to f_lineno.\n'
           '\n'
-          '      "f_lineno" is the current line number of the frame — writing '
-          'to\n'
-          '      this from within a trace function jumps to the given line '
-          '(only\n'
-          '      for the bottom-most frame).  A debugger can implement a Jump\n'
-          '      command (aka Set Next Statement) by writing to f_lineno.\n'
+          'Frame objects support one method:\n'
           '\n'
-          '      Frame objects support one method:\n'
+          'frame.clear()\n'
           '\n'
-          '      frame.clear()\n'
+          '   This method clears all references to local variables held by '
+          'the\n'
+          '   frame.  Also, if the frame belonged to a generator, the '
+          'generator\n'
+          '   is finalized.  This helps break reference cycles involving '
+          'frame\n'
+          '   objects (for example when catching an exception and storing its\n'
+          '   traceback for later use).\n'
           '\n'
-          '         This method clears all references to local variables held '
-          'by\n'
-          '         the frame.  Also, if the frame belonged to a generator, '
+          '   "RuntimeError" is raised if the frame is currently executing.\n'
+          '\n'
+          '   New in version 3.4.\n'
+          '\n'
+          '\n'
+          'Traceback objects\n'
+          '-----------------\n'
+          '\n'
+          'Traceback objects represent a stack trace of an exception.  A\n'
+          'traceback object is implicitly created when an exception occurs, '
+          'and\n'
+          'may also be explicitly created by calling "types.TracebackType".\n'
+          '\n'
+          'For implicitly created tracebacks, when the search for an '
+          'exception\n'
+          'handler unwinds the execution stack, at each unwound level a '
+          'traceback\n'
+          'object is inserted in front of the current traceback.  When an\n'
+          'exception handler is entered, the stack trace is made available to '
           'the\n'
-          '         generator is finalized.  This helps break reference '
-          'cycles\n'
-          '         involving frame objects (for example when catching an\n'
-          '         exception and storing its traceback for later use).\n'
+          'program. (See section The try statement.) It is accessible as the\n'
+          'third item of the tuple returned by "sys.exc_info()", and as the\n'
+          '"__traceback__" attribute of the caught exception.\n'
           '\n'
-          '         "RuntimeError" is raised if the frame is currently '
-          'executing.\n'
+          'When the program contains no suitable handler, the stack trace is\n'
+          'written (nicely formatted) to the standard error stream; if the\n'
+          'interpreter is interactive, it is also made available to the user '
+          'as\n'
+          '"sys.last_traceback".\n'
           '\n'
-          '         New in version 3.4.\n'
+          'For explicitly created tracebacks, it is up to the creator of the\n'
+          'traceback to determine how the "tb_next" attributes should be '
+          'linked\n'
+          'to form a full stack trace.\n'
           '\n'
-          '   Traceback objects\n'
-          '      Traceback objects represent a stack trace of an exception.  '
-          'A\n'
-          '      traceback object is implicitly created when an exception '
-          'occurs,\n'
-          '      and may also be explicitly created by calling\n'
-          '      "types.TracebackType".\n'
-          '\n'
-          '      For implicitly created tracebacks, when the search for an\n'
-          '      exception handler unwinds the execution stack, at each '
-          'unwound\n'
-          '      level a traceback object is inserted in front of the current\n'
-          '      traceback.  When an exception handler is entered, the stack\n'
-          '      trace is made available to the program. (See section The try\n'
-          '      statement.) It is accessible as the third item of the tuple\n'
-          '      returned by "sys.exc_info()", and as the "__traceback__"\n'
-          '      attribute of the caught exception.\n'
-          '\n'
-          '      When the program contains no suitable handler, the stack '
-          'trace\n'
-          '      is written (nicely formatted) to the standard error stream; '
-          'if\n'
-          '      the interpreter is interactive, it is also made available to '
+          'Special read-only attributes: "tb_frame" points to the execution '
+          'frame\n'
+          'of the current level; "tb_lineno" gives the line number where the\n'
+          'exception occurred; "tb_lasti" indicates the precise instruction. '
+          'The\n'
+          'line number and last instruction in the traceback may differ from '
           'the\n'
-          '      user as "sys.last_traceback".\n'
+          'line number of its frame object if the exception occurred in a '
+          '"try"\n'
+          'statement with no matching except clause or with a finally clause.\n'
           '\n'
-          '      For explicitly created tracebacks, it is up to the creator '
-          'of\n'
-          '      the traceback to determine how the "tb_next" attributes '
-          'should\n'
-          '      be linked to form a full stack trace.\n'
-          '\n'
-          '      Special read-only attributes: "tb_frame" points to the '
-          'execution\n'
-          '      frame of the current level; "tb_lineno" gives the line '
-          'number\n'
-          '      where the exception occurred; "tb_lasti" indicates the '
-          'precise\n'
-          '      instruction. The line number and last instruction in the\n'
-          '      traceback may differ from the line number of its frame object '
+          'Accessing "tb_frame" raises an auditing event "object.__getattr__"\n'
+          'with arguments "obj" and ""tb_frame"".\n'
+          '\n'
+          'Special writable attribute: "tb_next" is the next level in the '
+          'stack\n'
+          'trace (towards the frame where the exception occurred), or "None" '
           'if\n'
-          '      the exception occurred in a "try" statement with no matching\n'
-          '      except clause or with a finally clause.\n'
+          'there is no next level.\n'
           '\n'
-          '      Accessing "tb_frame" raises an auditing event\n'
-          '      "object.__getattr__" with arguments "obj" and ""tb_frame"".\n'
+          'Changed in version 3.7: Traceback objects can now be explicitly\n'
+          'instantiated from Python code, and the "tb_next" attribute of '
+          'existing\n'
+          'instances can be updated.\n'
           '\n'
-          '      Special writable attribute: "tb_next" is the next level in '
-          'the\n'
-          '      stack trace (towards the frame where the exception occurred), '
-          'or\n'
-          '      "None" if there is no next level.\n'
           '\n'
-          '      Changed in version 3.7: Traceback objects can now be '
-          'explicitly\n'
-          '      instantiated from Python code, and the "tb_next" attribute '
-          'of\n'
-          '      existing instances can be updated.\n'
+          'Slice objects\n'
+          '-------------\n'
           '\n'
-          '   Slice objects\n'
-          '      Slice objects are used to represent slices for '
-          '"__getitem__()"\n'
-          '      methods.  They are also created by the built-in "slice()"\n'
-          '      function.\n'
+          'Slice objects are used to represent slices for "__getitem__()"\n'
+          'methods.  They are also created by the built-in "slice()" '
+          'function.\n'
           '\n'
-          '      Special read-only attributes: "start" is the lower bound; '
-          '"stop"\n'
-          '      is the upper bound; "step" is the step value; each is "None" '
-          'if\n'
-          '      omitted.  These attributes can have any type.\n'
+          'Special read-only attributes: "start" is the lower bound; "stop" '
+          'is\n'
+          'the upper bound; "step" is the step value; each is "None" if '
+          'omitted.\n'
+          'These attributes can have any type.\n'
           '\n'
-          '      Slice objects support one method:\n'
+          'Slice objects support one method:\n'
           '\n'
-          '      slice.indices(self, length)\n'
+          'slice.indices(self, length)\n'
           '\n'
-          '         This method takes a single integer argument *length* and\n'
-          '         computes information about the slice that the slice '
-          'object\n'
-          '         would describe if applied to a sequence of *length* '
-          'items.\n'
-          '         It returns a tuple of three integers; respectively these '
-          'are\n'
-          '         the *start* and *stop* indices and the *step* or stride\n'
-          '         length of the slice. Missing or out-of-bounds indices are\n'
-          '         handled in a manner consistent with regular slices.\n'
-          '\n'
-          '   Static method objects\n'
-          '      Static method objects provide a way of defeating the\n'
-          '      transformation of function objects to method objects '
-          'described\n'
-          '      above. A static method object is a wrapper around any other\n'
-          '      object, usually a user-defined method object. When a static\n'
-          '      method object is retrieved from a class or a class instance, '
-          'the\n'
-          '      object actually returned is the wrapped object, which is not\n'
-          '      subject to any further transformation. Static method objects '
-          'are\n'
-          '      also callable. Static method objects are created by the '
-          'built-in\n'
-          '      "staticmethod()" constructor.\n'
+          '   This method takes a single integer argument *length* and '
+          'computes\n'
+          '   information about the slice that the slice object would describe '
+          'if\n'
+          '   applied to a sequence of *length* items.  It returns a tuple of\n'
+          '   three integers; respectively these are the *start* and *stop*\n'
+          '   indices and the *step* or stride length of the slice. Missing '
+          'or\n'
+          '   out-of-bounds indices are handled in a manner consistent with\n'
+          '   regular slices.\n'
           '\n'
-          '   Class method objects\n'
-          '      A class method object, like a static method object, is a '
-          'wrapper\n'
-          '      around another object that alters the way in which that '
-          'object\n'
-          '      is retrieved from classes and class instances. The behaviour '
+          '\n'
+          'Static method objects\n'
+          '---------------------\n'
+          '\n'
+          'Static method objects provide a way of defeating the transformation '
           'of\n'
-          '      class method objects upon such retrieval is described above,\n'
-          '      under “User-defined methods”. Class method objects are '
-          'created\n'
-          '      by the built-in "classmethod()" constructor.\n',
+          'function objects to method objects described above. A static '
+          'method\n'
+          'object is a wrapper around any other object, usually a '
+          'user-defined\n'
+          'method object. When a static method object is retrieved from a '
+          'class\n'
+          'or a class instance, the object actually returned is the wrapped\n'
+          'object, which is not subject to any further transformation. Static\n'
+          'method objects are also callable. Static method objects are created '
+          'by\n'
+          'the built-in "staticmethod()" constructor.\n'
+          '\n'
+          '\n'
+          'Class method objects\n'
+          '--------------------\n'
+          '\n'
+          'A class method object, like a static method object, is a wrapper\n'
+          'around another object that alters the way in which that object is\n'
+          'retrieved from classes and class instances. The behaviour of class\n'
+          'method objects upon such retrieval is described above, under '
+          '“User-\n'
+          'defined methods”. Class method objects are created by the built-in\n'
+          '"classmethod()" constructor.\n',
  'typesfunctions': 'Functions\n'
                    '*********\n'
                    '\n'
diff --git a/Misc/NEWS.d/3.11.6.rst b/Misc/NEWS.d/3.11.6.rst
new file mode 100644 (file)
index 0000000..f3fbe96
--- /dev/null
@@ -0,0 +1,607 @@
+.. date: 2023-09-12-16-00-42
+.. gh-issue: 109351
+.. nonce: kznGeR
+.. release date: 2023-10-02
+.. section: Core and Builtins
+
+Fix crash when compiling an invalid AST involving a named (walrus)
+expression.
+
+..
+
+.. date: 2023-09-10-18-53-55
+.. gh-issue: 109207
+.. nonce: Fei8bY
+.. section: Core and Builtins
+
+Fix a SystemError in ``__repr__`` of symtable entry object.
+
+..
+
+.. date: 2023-09-09-21-17-18
+.. gh-issue: 109179
+.. nonce: ZR8qs2
+.. section: Core and Builtins
+
+Fix bug where the C traceback display drops notes from :exc:`SyntaxError`.
+
+..
+
+.. date: 2023-09-07-16-05-36
+.. gh-issue: 88943
+.. nonce: rH_X3W
+.. section: Core and Builtins
+
+Improve syntax error for non-ASCII character that follows a numerical
+literal. It now points on the invalid non-ASCII character, not on the valid
+numerical literal.
+
+..
+
+.. date: 2023-09-05-20-52-17
+.. gh-issue: 108959
+.. nonce: 6z45Sy
+.. section: Core and Builtins
+
+Fix caret placement for error locations for subscript and binary operations
+that involve non-semantic parentheses and spaces. Patch by Pablo Galindo
+
+..
+
+.. date: 2023-08-30-15-41-47
+.. gh-issue: 108520
+.. nonce: u0ZGP_
+.. section: Core and Builtins
+
+Fix :meth:`multiprocessing.synchronize.SemLock.__setstate__` to properly
+initialize :attr:`multiprocessing.synchronize.SemLock._is_fork_ctx`. This
+fixes a regression when passing a SemLock accross nested processes.
+
+Rename :attr:`multiprocessing.synchronize.SemLock.is_fork_ctx` to
+:attr:`multiprocessing.synchronize.SemLock._is_fork_ctx` to avoid exposing
+it as public API.
+
+..
+
+.. date: 2023-09-28-18-53-11
+.. gh-issue: 110036
+.. nonce: fECxTj
+.. section: Library
+
+On Windows, multiprocessing ``Popen.terminate()`` now catchs
+:exc:`PermissionError` and get the process exit code. If the process is
+still running, raise again the :exc:`PermissionError`. Otherwise, the
+process terminated as expected: store its exit code. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-09-28-18-50-33
+.. gh-issue: 110038
+.. nonce: nx_gCu
+.. section: Library
+
+Fixed an issue that caused :meth:`KqueueSelector.select` to not return all
+the ready events in some cases when a file descriptor is registered for both
+read and write.
+
+..
+
+.. date: 2023-09-25-23-00-37
+.. gh-issue: 109631
+.. nonce: eWSqpO
+.. section: Library
+
+:mod:`re` functions such as :func:`re.findall`, :func:`re.split`,
+:func:`re.search` and :func:`re.sub` which perform short repeated matches
+can now be interrupted by user.
+
+..
+
+.. date: 2023-09-22-20-16-44
+.. gh-issue: 109593
+.. nonce: LboaNM
+.. section: Library
+
+Avoid deadlocking on a reentrant call to the multiprocessing resource
+tracker. Such a reentrant call, though unlikely, can happen if a GC pass
+invokes the finalizer for a multiprocessing object such as SemLock.
+
+..
+
+.. date: 2023-09-20-17-45-46
+.. gh-issue: 109613
+.. nonce: P13ogN
+.. section: Library
+
+Fix :func:`os.stat` and :meth:`os.DirEntry.stat`: check for exceptions.
+Previously, on Python built in debug mode, these functions could trigger a
+fatal Python error (and abort the process) when a function succeeded with an
+exception set. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-13-17-22-44
+.. gh-issue: 109375
+.. nonce: ijJHZ9
+.. section: Library
+
+The :mod:`pdb` ``alias`` command now prevents registering aliases without
+arguments.
+
+..
+
+.. date: 2023-09-11-00-32-18
+.. gh-issue: 107219
+.. nonce: 3zqyFT
+.. section: Library
+
+Fix a race condition in ``concurrent.futures``. When a process in the
+process pool was terminated abruptly (while the future was running or
+pending), close the connection write end. If the call queue is blocked on
+sending bytes to a worker process, closing the connection write end
+interrupts the send, so the queue can be closed. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-09-15-08-37
+.. gh-issue: 50644
+.. nonce: JUAZOh
+.. section: Library
+
+Attempts to pickle or create a shallow or deep copy of :mod:`codecs` streams
+now raise a TypeError. Previously, copying failed with a RecursionError,
+while pickling produced wrong results that eventually caused unpickling to
+fail with a RecursionError.
+
+..
+
+.. date: 2023-09-08-12-09-55
+.. gh-issue: 108987
+.. nonce: x5AIG8
+.. section: Library
+
+Fix :func:`_thread.start_new_thread` race condition. If a thread is created
+during Python finalization, the newly spawned thread now exits immediately
+instead of trying to access freed memory and lead to a crash. Patch by
+Victor Stinner.
+
+..
+
+.. date: 2023-09-06-04-30-05
+.. gh-issue: 108843
+.. nonce: WJMhsS
+.. section: Library
+
+Fix an issue in :func:`ast.unparse` when unparsing f-strings containing many
+quote types.
+
+..
+
+.. date: 2023-08-30-20-10-28
+.. gh-issue: 108682
+.. nonce: c2gzLQ
+.. section: Library
+
+Enum: raise :exc:`TypeError` if ``super().__new__()`` is called from a
+custom ``__new__``.
+
+..
+
+.. date: 2023-08-26-12-35-39
+.. gh-issue: 105829
+.. nonce: kyYhWI
+.. section: Library
+
+Fix concurrent.futures.ProcessPoolExecutor deadlock
+
+..
+
+.. date: 2023-08-22-22-29-42
+.. gh-issue: 64662
+.. nonce: jHl_Bt
+.. section: Library
+
+Fix support for virtual tables in :meth:`sqlite3.Connection.iterdump`. Patch
+by Aviv Palivoda.
+
+..
+
+.. date: 2023-08-14-11-18-13
+.. gh-issue: 107913
+.. nonce: 4ooY6i
+.. section: Library
+
+Fix possible losses of ``errno`` and ``winerror`` values in :exc:`OSError`
+exceptions if they were cleared or modified by the cleanup code before
+creating the exception object.
+
+..
+
+.. date: 2023-05-22-18-39-53
+.. gh-issue: 104372
+.. nonce: 7tDRaK
+.. section: Library
+
+On Linux where :mod:`subprocess` can use the ``vfork()`` syscall for faster
+spawning, prevent the parent process from blocking other threads by dropping
+the GIL while it waits for the vfork'ed child process ``exec()`` outcome.
+This prevents spawning a binary from a slow filesystem from blocking the
+rest of the application.
+
+..
+
+.. date: 2022-12-24-12-50-54
+.. gh-issue: 84867
+.. nonce: OhaLbU
+.. section: Library
+
+:class:`unittest.TestLoader` no longer loads test cases from exact
+:class:`unittest.TestCase` and :class:`unittest.FunctionTestCase` classes.
+
+..
+
+.. date: 2023-09-10-02-39-06
+.. gh-issue: 109209
+.. nonce: 0LBewo
+.. section: Documentation
+
+The minimum Sphinx version required for the documentation is now 4.2.
+
+..
+
+.. date: 2023-05-29-14-10-24
+.. gh-issue: 105052
+.. nonce: MGFwbm
+.. section: Documentation
+
+Update ``timeit`` doc to specify that time in seconds is just the default.
+
+..
+
+.. date: 2023-03-19-09-39-31
+.. gh-issue: 102823
+.. nonce: OzsOz0
+.. section: Documentation
+
+Document the return type of ``x // y`` when ``x`` and ``y`` have type
+:class:`float`.
+
+..
+
+.. date: 2023-09-29-14-11-30
+.. gh-issue: 110031
+.. nonce: fQnFnc
+.. section: Tests
+
+Skip test_threading tests using thread+fork if Python is built with Address
+Sanitizer (ASAN). Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-29-12-48-42
+.. gh-issue: 110088
+.. nonce: qUhRga
+.. section: Tests
+
+Fix test_asyncio timeouts: don't measure the maximum duration, a test should
+not measure a CI performance. Only measure the minimum duration when a task
+has a timeout or delay. Add ``CLOCK_RES`` to ``test_asyncio.utils``. Patch
+by Victor Stinner.
+
+..
+
+.. date: 2023-09-28-18-14-52
+.. gh-issue: 110033
+.. nonce: 2yHMx0
+.. section: Tests
+
+Fix ``test_interprocess_signal()`` of ``test_signal``. Make sure that the
+``subprocess.Popen`` object is deleted before the test raising an exception
+in a signal handler. Otherwise, ``Popen.__del__()`` can get the exception
+which is logged as ``Exception ignored in: ...`` and the test fails. Patch
+by Victor Stinner.
+
+..
+
+.. date: 2023-09-28-14-47-14
+.. gh-issue: 109594
+.. nonce: DB5KPP
+.. section: Tests
+
+Fix test_timeout() of test_concurrent_futures.test_wait. Remove the future
+which may or may not complete depending if it takes longer than the timeout
+ot not. Keep the second future which does not complete before wait()
+timeout. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-26-00-49-18
+.. gh-issue: 109748
+.. nonce: nxlT1i
+.. section: Tests
+
+Fix ``test_zippath_from_non_installed_posix()`` of test_venv: don't copy
+``__pycache__/`` sub-directories, because they can be modified by other
+Python tests running in parallel. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-20-02-32-17
+.. gh-issue: 103053
+.. nonce: AoUJuK
+.. section: Tests
+
+Skip test_freeze_simple_script() of test_tools.test_freeze if Python is
+built with ``./configure --enable-optimizations``, which means with Profile
+Guided Optimization (PGO): it just makes the test too slow. The freeze tool
+is tested by many other CIs with other (faster) compiler flags. Patch by
+Victor Stinner.
+
+..
+
+.. date: 2023-09-14-22-58-47
+.. gh-issue: 109396
+.. nonce: J1a4jR
+.. section: Tests
+
+Fix ``test_socket.test_hmac_sha1()`` in FIPS mode. Use a longer key: FIPS
+mode requires at least of at least 112 bits. The previous key was only 32
+bits. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-13-05-58-09
+.. gh-issue: 104736
+.. nonce: lA25Fu
+.. section: Tests
+
+Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: Fedora
+38). Search patterns in gdb "bt" command output to detect when gdb fails to
+retrieve the traceback. For example, skip a test if ``Backtrace stopped:
+frame did not save the PC`` is found. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-10-22-32-20
+.. gh-issue: 109237
+.. nonce: SvgKwD
+.. section: Tests
+
+Fix ``test_site.test_underpth_basic()`` when the working directory contains
+at least one non-ASCII character: encode the ``._pth`` file to UTF-8 and
+enable the UTF-8 Mode to use UTF-8 for the child process stdout. Patch by
+Victor Stinner.
+
+..
+
+.. date: 2023-09-10-19-59-57
+.. gh-issue: 109230
+.. nonce: SRNLFQ
+.. section: Tests
+
+Fix ``test_pyexpat.test_exception()``: it can now be run from a directory
+different than Python source code directory. Before, the test failed in this
+case.  Skip the test if Modules/pyexpat.c source is not available. Skip also
+the test on Python implementations other than CPython. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-09-06-18-27-53
+.. gh-issue: 109015
+.. nonce: 1dS1AQ
+.. section: Tests
+
+Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD if the TCP
+blackhole is enabled (``sysctl net.inet.tcp.blackhole``). Skip the few tests
+which failed with ``ETIMEDOUT`` which such non standard configuration.
+Currently, the `FreeBSD GCP image enables TCP and UDP blackhole
+<https://reviews.freebsd.org/D41751>`_ (``sysctl net.inet.tcp.blackhole=2``
+and ``sysctl net.inet.udp.blackhole=1``).  Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-06-15-36-51
+.. gh-issue: 91960
+.. nonce: P3nD5v
+.. section: Tests
+
+Skip ``test_gdb`` if gdb is unable to retrieve Python frame objects: if a
+frame is ``<optimized out>``. When Python is built with "clang -Og", gdb can
+fail to retrive the *frame* parameter of ``_PyEval_EvalFrameDefault()``. In
+this case, tests like ``py_bt()`` are likely to fail. Without getting access
+to Python frames, ``python-gdb.py`` is mostly clueless on retrieving the
+Python traceback. Moreover, ``test_gdb`` is no longer skipped on macOS if
+Python is built with Clang. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-05-23-00-09
+.. gh-issue: 108962
+.. nonce: R4NwuU
+.. section: Tests
+
+Skip ``test_tempfile.test_flags()`` if ``chflags()`` fails with "OSError:
+[Errno 45] Operation not supported" (ex: on FreeBSD 13). Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-09-04-15-18-14
+.. gh-issue: 89392
+.. nonce: 8A4T5p
+.. section: Tests
+
+Removed support of ``test_main()`` function in tests. They now always use
+normal unittest test runner.
+
+..
+
+.. date: 2023-09-03-21-41-10
+.. gh-issue: 108851
+.. nonce: xFTYOE
+.. section: Tests
+
+Fix ``test_tomllib`` recursion tests for WASI buildbots: reduce the
+recursion limit and compute the maximum nested array/dict depending on the
+current available recursion limit. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-03-21-18-35
+.. gh-issue: 108851
+.. nonce: CCuHyI
+.. section: Tests
+
+Add ``get_recursion_available()`` and ``get_recursion_depth()`` functions to
+the :mod:`test.support` module. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-02-19-06-52
+.. gh-issue: 108822
+.. nonce: arTbBI
+.. section: Tests
+
+``regrtest`` now computes statistics on all tests: successes, failures and
+skipped. ``test_netrc``, ``test_pep646_syntax`` and ``test_xml_etree`` now
+return results in their ``test_main()`` function. Patch by Victor Stinner
+and Alex Waygood.
+
+..
+
+.. date: 2023-08-24-06-10-36
+.. gh-issue: 108388
+.. nonce: YCVB0D
+.. section: Tests
+
+Convert test_concurrent_futures to a package of 7 sub-tests. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-08-24-04-23-35
+.. gh-issue: 108388
+.. nonce: mr0MeE
+.. section: Tests
+
+Split test_multiprocessing_fork, test_multiprocessing_forkserver and
+test_multiprocessing_spawn into test packages. Each package is made of 4
+sub-tests: processes, threads, manager and misc. It allows running more
+tests in parallel and so reduce the total test duration. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-06-28-02-51-08
+.. gh-issue: 101634
+.. nonce: Rayczr
+.. section: Tests
+
+When running the Python test suite with ``-jN`` option, if a worker stdout
+cannot be decoded from the locale encoding report a failed testn so the
+exitcode is non-zero. Patch by Victor Stinner.
+
+..
+
+.. date: 2022-12-08-00-03-37
+.. gh-issue: 100086
+.. nonce: 1zYpto
+.. section: Tests
+
+The Python test runner (libregrtest) now logs Python build information like
+"debug" vs "release" build, or LTO and PGO optimizations. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2022-10-31-14-47-49
+.. gh-issue: 98903
+.. nonce: 7KinCV
+.. section: Tests
+
+The Python test suite now fails wit exit code 4 if no tests ran. It should
+help detecting typos in test names and test methods.
+
+..
+
+.. date: 2022-10-20-17-49-50
+.. gh-issue: 95027
+.. nonce: viRpJB
+.. section: Tests
+
+On Windows, when the Python test suite is run with the ``-jN`` option, the
+ANSI code page is now used as the encoding for the stdout temporary file,
+rather than using UTF-8 which can lead to decoding errors. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2022-06-16-17-50-58
+.. gh-issue: 93353
+.. nonce: JdpATx
+.. section: Tests
+
+regrtest now checks if a test leaks temporary files or directories if run
+with -jN option. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-02-18-04-15
+.. gh-issue: 63760
+.. nonce: r8hJ6q
+.. section: Build
+
+Fix Solaris build: no longer redefine the ``gethostname()`` function.
+Solaris defines the function since 2005. Patch by Victor Stinner, original
+patch by Jakub Kulík.
+
+..
+
+.. date: 2023-09-01-01-39-26
+.. gh-issue: 108740
+.. nonce: JHExAQ
+.. section: Build
+
+Fix a race condition in ``make regen-all``. The ``deepfreeze.c`` source and
+files generated by Argument Clinic are now generated or updated before
+generating "global objects". Previously, some identifiers may miss depending
+on the order in which these files were generated. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-09-28-17-09-23
+.. gh-issue: 109991
+.. nonce: CIMftz
+.. section: Windows
+
+Update Windows build to use OpenSSL 3.0.11.
+
+..
+
+.. date: 2023-09-05-10-08-47
+.. gh-issue: 107565
+.. nonce: CIMftz
+.. section: Windows
+
+Update Windows build to use OpenSSL 3.0.10.
+
+..
+
+.. date: 2023-09-27-22-35-22
+.. gh-issue: 109991
+.. nonce: -xJzaF
+.. section: macOS
+
+Update macOS installer to use OpenSSL 3.0.11.
+
+..
+
+.. date: 2023-09-27-23-31-54
+.. gh-issue: 109991
+.. nonce: sUUYY8
+.. section: Tools/Demos
+
+Update GitHub CI workflows to use OpenSSL 3.0.11 and multissltests to use
+1.1.1w, 3.0.11, and 3.1.3.
diff --git a/Misc/NEWS.d/next/Build/2023-09-01-01-39-26.gh-issue-108740.JHExAQ.rst b/Misc/NEWS.d/next/Build/2023-09-01-01-39-26.gh-issue-108740.JHExAQ.rst
deleted file mode 100644 (file)
index 190d503..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix a race condition in ``make regen-all``. The ``deepfreeze.c`` source and
-files generated by Argument Clinic are now generated or updated before
-generating "global objects". Previously, some identifiers may miss depending
-on the order in which these files were generated. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Build/2023-09-02-18-04-15.gh-issue-63760.r8hJ6q.rst b/Misc/NEWS.d/next/Build/2023-09-02-18-04-15.gh-issue-63760.r8hJ6q.rst
deleted file mode 100644 (file)
index 9a7249e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix Solaris build: no longer redefine the ``gethostname()`` function. Solaris
-defines the function since 2005. Patch by Victor Stinner, original patch by
-Jakub Kulík.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-08-30-15-41-47.gh-issue-108520.u0ZGP_.rst b/Misc/NEWS.d/next/Core and Builtins/2023-08-30-15-41-47.gh-issue-108520.u0ZGP_.rst
deleted file mode 100644 (file)
index 44131fb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :meth:`multiprocessing.synchronize.SemLock.__setstate__` to properly initialize :attr:`multiprocessing.synchronize.SemLock._is_fork_ctx`. This fixes a regression when passing a SemLock accross nested processes.\r
-\r
-Rename :attr:`multiprocessing.synchronize.SemLock.is_fork_ctx` to :attr:`multiprocessing.synchronize.SemLock._is_fork_ctx` to avoid exposing it as public API.\r
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-05-20-52-17.gh-issue-108959.6z45Sy.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-05-20-52-17.gh-issue-108959.6z45Sy.rst
deleted file mode 100644 (file)
index 792bbc4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix caret placement for error locations for subscript and binary operations
-that involve non-semantic parentheses and spaces. Patch by Pablo Galindo
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-07-16-05-36.gh-issue-88943.rH_X3W.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-07-16-05-36.gh-issue-88943.rH_X3W.rst
deleted file mode 100644 (file)
index a99830f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Improve syntax error for non-ASCII character that follows a numerical
-literal. It now points on the invalid non-ASCII character, not on the valid
-numerical literal.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-09-21-17-18.gh-issue-109179.ZR8qs2.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-09-21-17-18.gh-issue-109179.ZR8qs2.rst
deleted file mode 100644 (file)
index dd95a8e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug where the C traceback display drops notes from :exc:`SyntaxError`.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-10-18-53-55.gh-issue-109207.Fei8bY.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-10-18-53-55.gh-issue-109207.Fei8bY.rst
deleted file mode 100644 (file)
index f9da3ac..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix a SystemError in ``__repr__`` of symtable entry object.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-09-12-16-00-42.gh-issue-109351.kznGeR.rst b/Misc/NEWS.d/next/Core and Builtins/2023-09-12-16-00-42.gh-issue-109351.kznGeR.rst
deleted file mode 100644 (file)
index 23b81c1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix crash when compiling an invalid AST involving a named (walrus)
-expression.
diff --git a/Misc/NEWS.d/next/Documentation/2023-03-19-09-39-31.gh-issue-102823.OzsOz0.rst b/Misc/NEWS.d/next/Documentation/2023-03-19-09-39-31.gh-issue-102823.OzsOz0.rst
deleted file mode 100644 (file)
index 1e32f3c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Document the return type of ``x // y`` when ``x`` and ``y`` have type
-:class:`float`.
diff --git a/Misc/NEWS.d/next/Documentation/2023-05-29-14-10-24.gh-issue-105052.MGFwbm.rst b/Misc/NEWS.d/next/Documentation/2023-05-29-14-10-24.gh-issue-105052.MGFwbm.rst
deleted file mode 100644 (file)
index 8fdc38d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update ``timeit`` doc to specify that time in seconds is just the default.
diff --git a/Misc/NEWS.d/next/Documentation/2023-09-10-02-39-06.gh-issue-109209.0LBewo.rst b/Misc/NEWS.d/next/Documentation/2023-09-10-02-39-06.gh-issue-109209.0LBewo.rst
deleted file mode 100644 (file)
index 79cc0b7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-The minimum Sphinx version required for the documentation is now 4.2.
diff --git a/Misc/NEWS.d/next/Library/2022-12-24-12-50-54.gh-issue-84867.OhaLbU.rst b/Misc/NEWS.d/next/Library/2022-12-24-12-50-54.gh-issue-84867.OhaLbU.rst
deleted file mode 100644 (file)
index 8b45dce..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-:class:`unittest.TestLoader` no longer loads test cases from exact
-:class:`unittest.TestCase` and :class:`unittest.FunctionTestCase` classes.
diff --git a/Misc/NEWS.d/next/Library/2023-05-22-18-39-53.gh-issue-104372.7tDRaK.rst b/Misc/NEWS.d/next/Library/2023-05-22-18-39-53.gh-issue-104372.7tDRaK.rst
deleted file mode 100644 (file)
index ea13ec8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-On Linux where :mod:`subprocess` can use the ``vfork()`` syscall for faster
-spawning, prevent the parent process from blocking other threads by dropping
-the GIL while it waits for the vfork'ed child process ``exec()`` outcome.
-This prevents spawning a binary from a slow filesystem from blocking the
-rest of the application.
diff --git a/Misc/NEWS.d/next/Library/2023-08-14-11-18-13.gh-issue-107913.4ooY6i.rst b/Misc/NEWS.d/next/Library/2023-08-14-11-18-13.gh-issue-107913.4ooY6i.rst
deleted file mode 100644 (file)
index de5e21a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix possible losses of ``errno`` and ``winerror`` values in :exc:`OSError`
-exceptions if they were cleared or modified by the cleanup code before
-creating the exception object.
diff --git a/Misc/NEWS.d/next/Library/2023-08-22-22-29-42.gh-issue-64662.jHl_Bt.rst b/Misc/NEWS.d/next/Library/2023-08-22-22-29-42.gh-issue-64662.jHl_Bt.rst
deleted file mode 100644 (file)
index 1b4c33a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix support for virtual tables in :meth:`sqlite3.Connection.iterdump`. Patch
-by Aviv Palivoda.
diff --git a/Misc/NEWS.d/next/Library/2023-08-26-12-35-39.gh-issue-105829.kyYhWI.rst b/Misc/NEWS.d/next/Library/2023-08-26-12-35-39.gh-issue-105829.kyYhWI.rst
deleted file mode 100644 (file)
index eaa2a5a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix concurrent.futures.ProcessPoolExecutor deadlock
diff --git a/Misc/NEWS.d/next/Library/2023-08-30-20-10-28.gh-issue-108682.c2gzLQ.rst b/Misc/NEWS.d/next/Library/2023-08-30-20-10-28.gh-issue-108682.c2gzLQ.rst
deleted file mode 100644 (file)
index 148d432..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Enum: raise :exc:`TypeError` if ``super().__new__()`` is called from a
-custom ``__new__``.
diff --git a/Misc/NEWS.d/next/Library/2023-09-06-04-30-05.gh-issue-108843.WJMhsS.rst b/Misc/NEWS.d/next/Library/2023-09-06-04-30-05.gh-issue-108843.WJMhsS.rst
deleted file mode 100644 (file)
index 0f15761..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix an issue in :func:`ast.unparse` when unparsing f-strings containing many quote types.
diff --git a/Misc/NEWS.d/next/Library/2023-09-08-12-09-55.gh-issue-108987.x5AIG8.rst b/Misc/NEWS.d/next/Library/2023-09-08-12-09-55.gh-issue-108987.x5AIG8.rst
deleted file mode 100644 (file)
index 16526ee..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix :func:`_thread.start_new_thread` race condition. If a thread is created
-during Python finalization, the newly spawned thread now exits immediately
-instead of trying to access freed memory and lead to a crash. Patch by
-Victor Stinner.
diff --git a/Misc/NEWS.d/next/Library/2023-09-09-15-08-37.gh-issue-50644.JUAZOh.rst b/Misc/NEWS.d/next/Library/2023-09-09-15-08-37.gh-issue-50644.JUAZOh.rst
deleted file mode 100644 (file)
index a7a442e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Attempts to pickle or create a shallow or deep copy of :mod:`codecs` streams
-now raise a TypeError. Previously, copying failed with a RecursionError,
-while pickling produced wrong results that eventually caused unpickling
-to fail with a RecursionError.
diff --git a/Misc/NEWS.d/next/Library/2023-09-11-00-32-18.gh-issue-107219.3zqyFT.rst b/Misc/NEWS.d/next/Library/2023-09-11-00-32-18.gh-issue-107219.3zqyFT.rst
deleted file mode 100644 (file)
index 10afbcf..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix a race condition in ``concurrent.futures``. When a process in the
-process pool was terminated abruptly (while the future was running or
-pending), close the connection write end. If the call queue is blocked on
-sending bytes to a worker process, closing the connection write end interrupts
-the send, so the queue can be closed. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst b/Misc/NEWS.d/next/Library/2023-09-13-17-22-44.gh-issue-109375.ijJHZ9.rst
deleted file mode 100644 (file)
index 9b7a85d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-The :mod:`pdb` ``alias`` command now prevents registering aliases without arguments.
diff --git a/Misc/NEWS.d/next/Library/2023-09-20-17-45-46.gh-issue-109613.P13ogN.rst b/Misc/NEWS.d/next/Library/2023-09-20-17-45-46.gh-issue-109613.P13ogN.rst
deleted file mode 100644 (file)
index e21a758..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix :func:`os.stat` and :meth:`os.DirEntry.stat`: check for exceptions.
-Previously, on Python built in debug mode, these functions could trigger a
-fatal Python error (and abort the process) when a function succeeded with an
-exception set. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Library/2023-09-22-20-16-44.gh-issue-109593.LboaNM.rst b/Misc/NEWS.d/next/Library/2023-09-22-20-16-44.gh-issue-109593.LboaNM.rst
deleted file mode 100644 (file)
index 292aea0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Avoid deadlocking on a reentrant call to the multiprocessing resource tracker. Such a reentrant call, though unlikely, can happen if a GC pass invokes the finalizer for a multiprocessing object such as SemLock.
diff --git a/Misc/NEWS.d/next/Library/2023-09-25-23-00-37.gh-issue-109631.eWSqpO.rst b/Misc/NEWS.d/next/Library/2023-09-25-23-00-37.gh-issue-109631.eWSqpO.rst
deleted file mode 100644 (file)
index 58af2e5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:mod:`re` functions such as :func:`re.findall`, :func:`re.split`,
-:func:`re.search` and :func:`re.sub` which perform short repeated matches
-can now be interrupted by user.
diff --git a/Misc/NEWS.d/next/Library/2023-09-28-18-50-33.gh-issue-110038.nx_gCu.rst b/Misc/NEWS.d/next/Library/2023-09-28-18-50-33.gh-issue-110038.nx_gCu.rst
deleted file mode 100644 (file)
index 6b2abd8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fixed an issue that caused :meth:`KqueueSelector.select` to not return all
-the ready events in some cases when a file descriptor is registered for both
-read and write.
diff --git a/Misc/NEWS.d/next/Library/2023-09-28-18-53-11.gh-issue-110036.fECxTj.rst b/Misc/NEWS.d/next/Library/2023-09-28-18-53-11.gh-issue-110036.fECxTj.rst
deleted file mode 100644 (file)
index ddb11b5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-On Windows, multiprocessing ``Popen.terminate()`` now catchs
-:exc:`PermissionError` and get the process exit code. If the process is
-still running, raise again the :exc:`PermissionError`. Otherwise, the
-process terminated as expected: store its exit code. Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst b/Misc/NEWS.d/next/Tests/2022-06-16-17-50-58.gh-issue-93353.JdpATx.rst
deleted file mode 100644 (file)
index 4e23294..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-regrtest now checks if a test leaks temporary files or directories if run
-with -jN option. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2022-10-20-17-49-50.gh-issue-95027.viRpJB.rst b/Misc/NEWS.d/next/Tests/2022-10-20-17-49-50.gh-issue-95027.viRpJB.rst
deleted file mode 100644 (file)
index 8bf1a9d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-On Windows, when the Python test suite is run with the ``-jN`` option, the
-ANSI code page is now used as the encoding for the stdout temporary file,
-rather than using UTF-8 which can lead to decoding errors. Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2022-10-31-14-47-49.gh-issue-98903.7KinCV.rst b/Misc/NEWS.d/next/Tests/2022-10-31-14-47-49.gh-issue-98903.7KinCV.rst
deleted file mode 100644 (file)
index 65636ab..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-The Python test suite now fails wit exit code 4 if no tests ran. It should
-help detecting typos in test names and test methods.
diff --git a/Misc/NEWS.d/next/Tests/2022-12-08-00-03-37.gh-issue-100086.1zYpto.rst b/Misc/NEWS.d/next/Tests/2022-12-08-00-03-37.gh-issue-100086.1zYpto.rst
deleted file mode 100644 (file)
index a5f1bb9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The Python test runner (libregrtest) now logs Python build information like
-"debug" vs "release" build, or LTO and PGO optimizations. Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-06-28-02-51-08.gh-issue-101634.Rayczr.rst b/Misc/NEWS.d/next/Tests/2023-06-28-02-51-08.gh-issue-101634.Rayczr.rst
deleted file mode 100644 (file)
index 6fbfc84..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-When running the Python test suite with ``-jN`` option, if a worker stdout
-cannot be decoded from the locale encoding report a failed testn so the
-exitcode is non-zero. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-08-24-04-23-35.gh-issue-108388.mr0MeE.rst b/Misc/NEWS.d/next/Tests/2023-08-24-04-23-35.gh-issue-108388.mr0MeE.rst
deleted file mode 100644 (file)
index 8cf77b1..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Split test_multiprocessing_fork, test_multiprocessing_forkserver and
-test_multiprocessing_spawn into test packages. Each package is made of 4
-sub-tests: processes, threads, manager and misc. It allows running more tests
-in parallel and so reduce the total test duration. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-08-24-06-10-36.gh-issue-108388.YCVB0D.rst b/Misc/NEWS.d/next/Tests/2023-08-24-06-10-36.gh-issue-108388.YCVB0D.rst
deleted file mode 100644 (file)
index ddff07b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Convert test_concurrent_futures to a package of 7 sub-tests. Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-02-19-06-52.gh-issue-108822.arTbBI.rst b/Misc/NEWS.d/next/Tests/2023-09-02-19-06-52.gh-issue-108822.arTbBI.rst
deleted file mode 100644 (file)
index e1c6df2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-``regrtest`` now computes statistics on all tests: successes, failures and
-skipped. ``test_netrc``, ``test_pep646_syntax`` and ``test_xml_etree`` now
-return results in their ``test_main()`` function. Patch by Victor Stinner
-and Alex Waygood.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-03-21-18-35.gh-issue-108851.CCuHyI.rst b/Misc/NEWS.d/next/Tests/2023-09-03-21-18-35.gh-issue-108851.CCuHyI.rst
deleted file mode 100644 (file)
index 7a5b305..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Add ``get_recursion_available()`` and ``get_recursion_depth()`` functions to
-the :mod:`test.support` module. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-03-21-41-10.gh-issue-108851.xFTYOE.rst b/Misc/NEWS.d/next/Tests/2023-09-03-21-41-10.gh-issue-108851.xFTYOE.rst
deleted file mode 100644 (file)
index b35aaeb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix ``test_tomllib`` recursion tests for WASI buildbots: reduce the recursion
-limit and compute the maximum nested array/dict depending on the current
-available recursion limit. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst b/Misc/NEWS.d/next/Tests/2023-09-04-15-18-14.gh-issue-89392.8A4T5p.rst
deleted file mode 100644 (file)
index e1dea8e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Removed support of ``test_main()`` function in tests. They now always use
-normal unittest test runner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-05-23-00-09.gh-issue-108962.R4NwuU.rst b/Misc/NEWS.d/next/Tests/2023-09-05-23-00-09.gh-issue-108962.R4NwuU.rst
deleted file mode 100644 (file)
index 380fb20..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Skip ``test_tempfile.test_flags()`` if ``chflags()`` fails with "OSError:
-[Errno 45] Operation not supported" (ex: on FreeBSD 13). Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-06-15-36-51.gh-issue-91960.P3nD5v.rst b/Misc/NEWS.d/next/Tests/2023-09-06-15-36-51.gh-issue-91960.P3nD5v.rst
deleted file mode 100644 (file)
index 46472ab..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-Skip ``test_gdb`` if gdb is unable to retrieve Python frame objects: if a
-frame is ``<optimized out>``. When Python is built with "clang -Og", gdb can
-fail to retrive the *frame* parameter of ``_PyEval_EvalFrameDefault()``. In
-this case, tests like ``py_bt()`` are likely to fail. Without getting access
-to Python frames, ``python-gdb.py`` is mostly clueless on retrieving the
-Python traceback. Moreover, ``test_gdb`` is no longer skipped on macOS if
-Python is built with Clang. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-06-18-27-53.gh-issue-109015.1dS1AQ.rst b/Misc/NEWS.d/next/Tests/2023-09-06-18-27-53.gh-issue-109015.1dS1AQ.rst
deleted file mode 100644 (file)
index cb641be..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD if the TCP
-blackhole is enabled (``sysctl net.inet.tcp.blackhole``). Skip the few tests
-which failed with ``ETIMEDOUT`` which such non standard configuration.
-Currently, the `FreeBSD GCP image enables TCP and UDP blackhole
-<https://reviews.freebsd.org/D41751>`_ (``sysctl net.inet.tcp.blackhole=2``
-and ``sysctl net.inet.udp.blackhole=1``).  Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-10-19-59-57.gh-issue-109230.SRNLFQ.rst b/Misc/NEWS.d/next/Tests/2023-09-10-19-59-57.gh-issue-109230.SRNLFQ.rst
deleted file mode 100644 (file)
index 18e1e85..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix ``test_pyexpat.test_exception()``: it can now be run from a directory
-different than Python source code directory. Before, the test failed in this
-case.  Skip the test if Modules/pyexpat.c source is not available. Skip also
-the test on Python implementations other than CPython. Patch by Victor
-Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-10-22-32-20.gh-issue-109237.SvgKwD.rst b/Misc/NEWS.d/next/Tests/2023-09-10-22-32-20.gh-issue-109237.SvgKwD.rst
deleted file mode 100644 (file)
index 1d762bb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix ``test_site.test_underpth_basic()`` when the working directory contains
-at least one non-ASCII character: encode the ``._pth`` file to UTF-8 and
-enable the UTF-8 Mode to use UTF-8 for the child process stdout. Patch by
-Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-13-05-58-09.gh-issue-104736.lA25Fu.rst b/Misc/NEWS.d/next/Tests/2023-09-13-05-58-09.gh-issue-104736.lA25Fu.rst
deleted file mode 100644 (file)
index 85c370f..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: Fedora
-38). Search patterns in gdb "bt" command output to detect when gdb fails to
-retrieve the traceback. For example, skip a test if ``Backtrace stopped: frame
-did not save the PC`` is found. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst b/Misc/NEWS.d/next/Tests/2023-09-14-22-58-47.gh-issue-109396.J1a4jR.rst
deleted file mode 100644 (file)
index 71150ec..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix ``test_socket.test_hmac_sha1()`` in FIPS mode. Use a longer key: FIPS
-mode requires at least of at least 112 bits. The previous key was only 32
-bits. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-20-02-32-17.gh-issue-103053.AoUJuK.rst b/Misc/NEWS.d/next/Tests/2023-09-20-02-32-17.gh-issue-103053.AoUJuK.rst
deleted file mode 100644 (file)
index 6d67bf2..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Skip test_freeze_simple_script() of test_tools.test_freeze if Python is built
-with ``./configure --enable-optimizations``, which means with Profile Guided
-Optimization (PGO): it just makes the test too slow. The freeze tool is tested
-by many other CIs with other (faster) compiler flags. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst b/Misc/NEWS.d/next/Tests/2023-09-26-00-49-18.gh-issue-109748.nxlT1i.rst
deleted file mode 100644 (file)
index 840366b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix ``test_zippath_from_non_installed_posix()`` of test_venv: don't copy
-``__pycache__/`` sub-directories, because they can be modified by other Python
-tests running in parallel. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-28-14-47-14.gh-issue-109594.DB5KPP.rst b/Misc/NEWS.d/next/Tests/2023-09-28-14-47-14.gh-issue-109594.DB5KPP.rst
deleted file mode 100644 (file)
index 5a4ae2b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix test_timeout() of test_concurrent_futures.test_wait. Remove the future
-which may or may not complete depending if it takes longer than the timeout
-ot not. Keep the second future which does not complete before wait()
-timeout. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-28-18-14-52.gh-issue-110033.2yHMx0.rst b/Misc/NEWS.d/next/Tests/2023-09-28-18-14-52.gh-issue-110033.2yHMx0.rst
deleted file mode 100644 (file)
index fb60893..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix ``test_interprocess_signal()`` of ``test_signal``. Make sure that the
-``subprocess.Popen`` object is deleted before the test raising an exception
-in a signal handler. Otherwise, ``Popen.__del__()`` can get the exception
-which is logged as ``Exception ignored in: ...`` and the test fails. Patch by
-Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-29-12-48-42.gh-issue-110088.qUhRga.rst b/Misc/NEWS.d/next/Tests/2023-09-29-12-48-42.gh-issue-110088.qUhRga.rst
deleted file mode 100644 (file)
index cf44a12..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix test_asyncio timeouts: don't measure the maximum duration, a test should
-not measure a CI performance. Only measure the minimum duration when a task has
-a timeout or delay. Add ``CLOCK_RES`` to ``test_asyncio.utils``. Patch by
-Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tests/2023-09-29-14-11-30.gh-issue-110031.fQnFnc.rst b/Misc/NEWS.d/next/Tests/2023-09-29-14-11-30.gh-issue-110031.fQnFnc.rst
deleted file mode 100644 (file)
index a8a163c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Skip test_threading tests using thread+fork if Python is built with Address
-Sanitizer (ASAN). Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tools-Demos/2023-09-27-23-31-54.gh-issue-109991.sUUYY8.rst b/Misc/NEWS.d/next/Tools-Demos/2023-09-27-23-31-54.gh-issue-109991.sUUYY8.rst
deleted file mode 100644 (file)
index 13c1163..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Update GitHub CI workflows to use OpenSSL 3.0.11 and multissltests to use
-1.1.1w, 3.0.11, and 3.1.3.
diff --git a/Misc/NEWS.d/next/Windows/2023-09-05-10-08-47.gh-issue-107565.CIMftz.rst b/Misc/NEWS.d/next/Windows/2023-09-05-10-08-47.gh-issue-107565.CIMftz.rst
deleted file mode 100644 (file)
index 024a582..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update Windows build to use OpenSSL 3.0.10.
diff --git a/Misc/NEWS.d/next/Windows/2023-09-28-17-09-23.gh-issue-109991.CIMftz.rst b/Misc/NEWS.d/next/Windows/2023-09-28-17-09-23.gh-issue-109991.CIMftz.rst
deleted file mode 100644 (file)
index ee988f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update Windows build to use OpenSSL 3.0.11.
diff --git a/Misc/NEWS.d/next/macOS/2023-09-27-22-35-22.gh-issue-109991.-xJzaF.rst b/Misc/NEWS.d/next/macOS/2023-09-27-22-35-22.gh-issue-109991.-xJzaF.rst
deleted file mode 100644 (file)
index 8d36998..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS installer to use OpenSSL 3.0.11.
index c26c85db42cc6c4a2d582a3793fe117023d3bb1e..1b82fa67d32da4018cbc9da5d6e9292f00ae2a61 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.11.5
+This is Python version 3.11.6
 =============================
 
 .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg