summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Galindo <pablogsal@gmail.com>2022-10-24 17:34:46 (GMT)
committerPablo Galindo <pablogsal@gmail.com>2022-10-24 17:35:39 (GMT)
commitdeaf509e8fc6e0363bd6f26d52ad42f976ec42f2 (patch)
treef66f3bb460bea38ab49c8953d0429e4ba258987c
parent981b509784c733c54d47bd4d1ceea34fc7ebcac3 (diff)
downloadcpython-deaf509e8fc6e0363bd6f26d52ad42f976ec42f2.zip
cpython-deaf509e8fc6e0363bd6f26d52ad42f976ec42f2.tar.gz
cpython-deaf509e8fc6e0363bd6f26d52ad42f976ec42f2.tar.bz2
Python 3.11.0v3.11.0
-rw-r--r--Include/patchlevel.h6
-rw-r--r--Lib/pydoc_data/topics.py304
-rw-r--r--Misc/NEWS.d/3.11.0.rst255
-rw-r--r--Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2020-11-15-02-08-43.bpo-42316.LqdkWK.rst1
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst3
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-09-18-08-47-40.gh-issue-96821.Co2iOq.rst1
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-09-21-14-38-31.gh-issue-96848.WuoLzU.rst3
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-09-21-16-06-37.gh-issue-96975.BmE0XY.rst2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-10-03-13-35-48.gh-issue-97752.0xTjJY.rst2
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2022-10-06-02-11-34.gh-issue-97002.Zvsk71.rst3
-rw-r--r--Misc/NEWS.d/next/Documentation/2022-05-20-18-42-10.gh-issue-93031.c2RdJe.rst1
-rw-r--r--Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst2
-rw-r--r--Misc/NEWS.d/next/Library/2022-05-25-15-57-39.gh-issue-90155.YMstB5.rst1
-rw-r--r--Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst9
-rw-r--r--Misc/NEWS.d/next/Library/2022-09-25-23-24-52.gh-issue-97545.HZLSNt.rst1
-rw-r--r--Misc/NEWS.d/next/Library/2022-10-06-23-42-00.gh-issue-90985.s280JY.rst1
-rw-r--r--Misc/NEWS.d/next/Library/2022-10-16-15-31-50.gh-issue-98331.Y5kPOX.rst1
-rw-r--r--Misc/NEWS.d/next/Security/2022-09-07-10-42-00.gh-issue-97514.Yggdsl.rst15
-rw-r--r--Misc/NEWS.d/next/Security/2022-09-28-17-09-37.gh-issue-97616.K1e3Xs.rst3
-rw-r--r--Misc/NEWS.d/next/Tests/2022-10-20-17-49-50.gh-issue-95027.viRpJB.rst4
-rw-r--r--Misc/NEWS.d/next/Windows/2022-09-29-23-08-49.gh-issue-90989.no89Q2.rst1
-rw-r--r--Misc/NEWS.d/next/Windows/2022-10-19-19-35-37.gh-issue-98414.FbHZuS.rst3
-rw-r--r--Misc/NEWS.d/next/Windows/2022-10-19-20-00-28.gh-issue-98360.O2m6YG.rst4
-rw-r--r--Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C6u.rst6
-rw-r--r--README.rst4
27 files changed, 436 insertions, 204 deletions
diff --git a/Include/patchlevel.h b/Include/patchlevel.h
index a54a2ce..6274014 100644
--- a/Include/patchlevel.h
+++ b/Include/patchlevel.h
@@ -19,11 +19,11 @@
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 11
#define PY_MICRO_VERSION 0
-#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA
-#define PY_RELEASE_SERIAL 2
+#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL
+#define PY_RELEASE_SERIAL 0
/* Version as a string */
-#define PY_VERSION "3.11.0rc2+"
+#define PY_VERSION "3.11.0"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index 14c6dc2..7bba5cb 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Sun Sep 11 20:22:13 2022
+# Autogenerated by Sphinx on Mon Oct 24 18:35:07 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -1671,10 +1671,26 @@ topics = {'assert': 'The "assert" statement\n'
'If the syntax "**expression" appears in the function call,\n'
'"expression" must evaluate to a *mapping*, the contents of which '
'are\n'
- 'treated as additional keyword arguments. If a keyword is already\n'
- 'present (as an explicit keyword argument, or from another '
- 'unpacking),\n'
- 'a "TypeError" exception is raised.\n'
+ 'treated as additional keyword arguments. If a parameter matching a '
+ 'key\n'
+ 'has already been given a value (by an explicit keyword argument, '
+ 'or\n'
+ 'from another unpacking), a "TypeError" exception is raised.\n'
+ '\n'
+ 'When "**expression" is used, each key in this mapping must be a\n'
+ 'string. Each value from the mapping is assigned to the first '
+ 'formal\n'
+ 'parameter eligible for keyword assignment whose name is equal to '
+ 'the\n'
+ 'key. A key need not be a Python identifier (e.g. ""max-temp °F"" '
+ 'is\n'
+ 'acceptable, although it will not match any formal parameter that '
+ 'could\n'
+ 'be declared). If there is no match to a formal parameter the '
+ 'key-value\n'
+ 'pair is collected by the "**" parameter, if there is one, or if '
+ 'there\n'
+ 'is not, a "TypeError" exception is raised.\n'
'\n'
'Formal parameters using the syntax "*identifier" or "**identifier"\n'
'cannot be used as positional argument slots or as keyword argument\n'
@@ -2022,7 +2038,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* Mappings (instances of "dict") compare equal if and only if '
'they\n'
- ' have equal *(key, value)* pairs. Equality comparison of the '
+ ' have equal "(key, value)" pairs. Equality comparison of the '
'keys and\n'
' values enforces reflexivity.\n'
'\n'
@@ -2398,35 +2414,43 @@ topics = {'assert': 'The "assert" statement\n'
' try3_stmt ::= "try" ":" suite\n'
' "finally" ":" suite\n'
'\n'
+ 'Additional information on exceptions can be found in section\n'
+ 'Exceptions, and information on using the "raise" statement to '
+ 'generate\n'
+ 'exceptions may be found in section The raise statement.\n'
+ '\n'
+ '\n'
+ '"except" clause\n'
+ '---------------\n'
+ '\n'
'The "except" clause(s) specify one or more exception handlers. '
'When no\n'
'exception occurs in the "try" clause, no exception handler is\n'
'executed. When an exception occurs in the "try" suite, a search '
'for an\n'
- 'exception handler is started. This search inspects the except '
- 'clauses\n'
- 'in turn until one is found that matches the exception. An '
- 'expression-\n'
- 'less except clause, if present, must be last; it matches any\n'
- 'exception. For an except clause with an expression, that '
- 'expression\n'
- 'is evaluated, and the clause matches the exception if the '
- 'resulting\n'
- 'object is “compatible” with the exception. An object is '
- 'compatible\n'
- 'with an exception if the object is the class or a *non-virtual '
- 'base\n'
- 'class* of the exception object, or a tuple containing an item '
- 'that is\n'
- 'the class or a non-virtual base class of the exception object.\n'
- '\n'
- 'If no except clause matches the exception, the search for an '
+ 'exception handler is started. This search inspects the "except"\n'
+ 'clauses in turn until one is found that matches the exception. '
+ 'An\n'
+ 'expression-less "except" clause, if present, must be last; it '
+ 'matches\n'
+ 'any exception. For an "except" clause with an expression, that\n'
+ 'expression is evaluated, and the clause matches the exception if '
+ 'the\n'
+ 'resulting object is “compatible” with the exception. An object '
+ 'is\n'
+ 'compatible with an exception if the object is the class or a '
+ '*non-\n'
+ 'virtual base class* of the exception object, or a tuple '
+ 'containing an\n'
+ 'item that is the class or a non-virtual base class of the '
'exception\n'
- 'handler continues in the surrounding code and on the invocation '
- 'stack.\n'
- '[1]\n'
+ 'object.\n'
+ '\n'
+ 'If no "except" clause matches the exception, the search for an\n'
+ 'exception handler continues in the surrounding code and on the\n'
+ 'invocation stack. [1]\n'
'\n'
- 'If the evaluation of an expression in the header of an except '
+ 'If the evaluation of an expression in the header of an "except" '
'clause\n'
'raises an exception, the original search for a handler is '
'canceled and\n'
@@ -2436,24 +2460,24 @@ topics = {'assert': 'The "assert" statement\n'
'raised\n'
'the exception).\n'
'\n'
- 'When a matching except clause is found, the exception is '
+ 'When a matching "except" clause is found, the exception is '
'assigned to\n'
- 'the target specified after the "as" keyword in that except '
- 'clause, if\n'
- 'present, and the except clause’s suite is executed. All except\n'
- 'clauses must have an executable block. When the end of this '
+ 'the target specified after the "as" keyword in that "except" '
+ 'clause,\n'
+ 'if present, and the "except" clause’s suite is executed. All '
+ '"except"\n'
+ 'clauses must have an executable block. When the end of this '
'block is\n'
- 'reached, execution continues normally after the entire try '
- 'statement.\n'
- '(This means that if two nested handlers exist for the same '
- 'exception,\n'
- 'and the exception occurs in the try clause of the inner handler, '
- 'the\n'
- 'outer handler will not handle the exception.)\n'
+ 'reached, execution continues normally after the entire "try"\n'
+ 'statement. (This means that if two nested handlers exist for the '
+ 'same\n'
+ 'exception, and the exception occurs in the "try" clause of the '
+ 'inner\n'
+ 'handler, the outer handler will not handle the exception.)\n'
'\n'
'When an exception has been assigned using "as target", it is '
'cleared\n'
- 'at the end of the except clause. This is as if\n'
+ 'at the end of the "except" clause. This is as if\n'
'\n'
' except E as N:\n'
' foo\n'
@@ -2468,7 +2492,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'This means the exception must be assigned to a different name to '
'be\n'
- 'able to refer to it after the except clause. Exceptions are '
+ 'able to refer to it after the "except" clause. Exceptions are '
'cleared\n'
'because with the traceback attached to them, they form a '
'reference\n'
@@ -2476,7 +2500,8 @@ topics = {'assert': 'The "assert" statement\n'
'alive\n'
'until the next garbage collection occurs.\n'
'\n'
- 'Before an except clause’s suite is executed, details about the\n'
+ 'Before an "except" clause’s suite is executed, details about '
+ 'the\n'
'exception are stored in the "sys" module and can be accessed '
'via\n'
'"sys.exc_info()". "sys.exc_info()" returns a 3-tuple consisting '
@@ -2512,6 +2537,10 @@ topics = {'assert': 'The "assert" statement\n'
' >>> print(sys.exc_info())\n'
' (None, None, None)\n'
'\n'
+ '\n'
+ '"except*" clause\n'
+ '----------------\n'
+ '\n'
'The "except*" clause(s) are used for handling "ExceptionGroup"s. '
'The\n'
'exception type for matching is interpreted as in the case of '
@@ -2520,12 +2549,13 @@ topics = {'assert': 'The "assert" statement\n'
'when\n'
'the type matches some of the exceptions in the group. This means '
'that\n'
- 'multiple except* clauses can execute, each handling part of the\n'
+ 'multiple "except*" clauses can execute, each handling part of '
+ 'the\n'
'exception group. Each clause executes once and handles an '
'exception\n'
'group of all matching exceptions. Each exception in the group '
'is\n'
- 'handled by at most one except* clause, the first that matches '
+ 'handled by at most one "except*" clause, the first that matches '
'it.\n'
'\n'
' >>> try:\n'
@@ -2548,22 +2578,26 @@ topics = {'assert': 'The "assert" statement\n'
' +-+---------------- 1 ----------------\n'
' | ValueError: 1\n'
' +------------------------------------\n'
- ' >>>\n'
'\n'
- ' Any remaining exceptions that were not handled by any except* '
- 'clause\n'
- ' are re-raised at the end, combined into an exception group '
- 'along with\n'
- ' all exceptions that were raised from within except* clauses.\n'
- '\n'
- ' An except* clause must have a matching type, and this type '
- 'cannot be a\n'
- ' subclass of :exc:`BaseExceptionGroup`. It is not possible to '
- 'mix except\n'
- ' and except* in the same :keyword:`try`. :keyword:`break`,\n'
- ' :keyword:`continue` and :keyword:`return` cannot appear in an '
- 'except*\n'
- ' clause.\n'
+ ' Any remaining exceptions that were not handled by any '
+ ':keyword:`!except*`\n'
+ ' clause are re-raised at the end, combined into an exception '
+ 'group along with\n'
+ ' all exceptions that were raised from within '
+ ':keyword:`!except*` clauses.\n'
+ '\n'
+ ' An :keyword:`!except*` clause must have a matching type,\n'
+ ' and this type cannot be a subclass of '
+ ':exc:`BaseExceptionGroup`.\n'
+ ' It is not possible to mix :keyword:`except` and '
+ ':keyword:`!except*`\n'
+ ' in the same :keyword:`try`.\n'
+ ' :keyword:`break`, :keyword:`continue` and :keyword:`return`\n'
+ ' cannot appear in an :keyword:`!except*` clause.\n'
+ '\n'
+ '\n'
+ '"else" clause\n'
+ '-------------\n'
'\n'
'The optional "else" clause is executed if the control flow '
'leaves the\n'
@@ -2573,6 +2607,10 @@ topics = {'assert': 'The "assert" statement\n'
'are\n'
'not handled by the preceding "except" clauses.\n'
'\n'
+ '\n'
+ '"finally" clause\n'
+ '----------------\n'
+ '\n'
'If "finally" is present, it specifies a ‘cleanup’ handler. The '
'"try"\n'
'clause is executed, including any "except" and "else" clauses. '
@@ -2626,11 +2664,6 @@ topics = {'assert': 'The "assert" statement\n'
' >>> foo()\n'
" 'finally'\n"
'\n'
- 'Additional information on exceptions can be found in section\n'
- 'Exceptions, and information on using the "raise" statement to '
- 'generate\n'
- 'exceptions may be found in section The raise statement.\n'
- '\n'
'Changed in version 3.8: Prior to Python 3.8, a "continue" '
'statement\n'
'was illegal in the "finally" clause due to a problem with the\n'
@@ -5540,9 +5573,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' * "for" loop header,\n'
'\n'
- ' * after "as" in a "with" statement, "except" clause or in the '
- 'as-\n'
- ' pattern in structural pattern matching,\n'
+ ' * after "as" in a "with" statement, "except" clause, '
+ '"except*"\n'
+ ' clause, or in the as-pattern in structural pattern '
+ 'matching,\n'
'\n'
' * in a capture pattern in structural pattern matching\n'
'\n'
@@ -7657,9 +7691,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' * "for" loop header,\n'
'\n'
- ' * after "as" in a "with" statement, "except" clause or in the '
- 'as-\n'
- ' pattern in structural pattern matching,\n'
+ ' * after "as" in a "with" statement, "except" clause, "except*"\n'
+ ' clause, or in the as-pattern in structural pattern matching,\n'
'\n'
' * in a capture pattern in structural pattern matching\n'
'\n'
@@ -8232,8 +8265,9 @@ topics = {'assert': 'The "assert" statement\n'
'the syntax is explicitly given, operators are binary. '
'Operators in\n'
'the same box group left to right (except for '
- 'exponentiation, which\n'
- 'groups from right to left).\n'
+ 'exponentiation and\n'
+ 'conditional expressions, which group from right to '
+ 'left).\n'
'\n'
'Note that comparisons, membership tests, and identity '
'tests, all have\n'
@@ -12500,31 +12534,39 @@ topics = {'assert': 'The "assert" statement\n'
' try3_stmt ::= "try" ":" suite\n'
' "finally" ":" suite\n'
'\n'
+ 'Additional information on exceptions can be found in section\n'
+ 'Exceptions, and information on using the "raise" statement to '
+ 'generate\n'
+ 'exceptions may be found in section The raise statement.\n'
+ '\n'
+ '\n'
+ '"except" clause\n'
+ '===============\n'
+ '\n'
'The "except" clause(s) specify one or more exception handlers. When '
'no\n'
'exception occurs in the "try" clause, no exception handler is\n'
'executed. When an exception occurs in the "try" suite, a search for '
'an\n'
- 'exception handler is started. This search inspects the except '
- 'clauses\n'
- 'in turn until one is found that matches the exception. An '
- 'expression-\n'
- 'less except clause, if present, must be last; it matches any\n'
- 'exception. For an except clause with an expression, that expression\n'
- 'is evaluated, and the clause matches the exception if the resulting\n'
- 'object is “compatible” with the exception. An object is compatible\n'
- 'with an exception if the object is the class or a *non-virtual base\n'
- 'class* of the exception object, or a tuple containing an item that '
- 'is\n'
- 'the class or a non-virtual base class of the exception object.\n'
+ 'exception handler is started. This search inspects the "except"\n'
+ 'clauses in turn until one is found that matches the exception. An\n'
+ 'expression-less "except" clause, if present, must be last; it '
+ 'matches\n'
+ 'any exception. For an "except" clause with an expression, that\n'
+ 'expression is evaluated, and the clause matches the exception if the\n'
+ 'resulting object is “compatible” with the exception. An object is\n'
+ 'compatible with an exception if the object is the class or a *non-\n'
+ 'virtual base class* of the exception object, or a tuple containing '
+ 'an\n'
+ 'item that is the class or a non-virtual base class of the exception\n'
+ 'object.\n'
'\n'
- 'If no except clause matches the exception, the search for an '
- 'exception\n'
- 'handler continues in the surrounding code and on the invocation '
- 'stack.\n'
- '[1]\n'
+ 'If no "except" clause matches the exception, the search for an\n'
+ 'exception handler continues in the surrounding code and on the\n'
+ 'invocation stack. [1]\n'
'\n'
- 'If the evaluation of an expression in the header of an except clause\n'
+ 'If the evaluation of an expression in the header of an "except" '
+ 'clause\n'
'raises an exception, the original search for a handler is canceled '
'and\n'
'a search starts for the new exception in the surrounding code and on\n'
@@ -12532,21 +12574,20 @@ topics = {'assert': 'The "assert" statement\n'
'raised\n'
'the exception).\n'
'\n'
- 'When a matching except clause is found, the exception is assigned to\n'
- 'the target specified after the "as" keyword in that except clause, '
- 'if\n'
- 'present, and the except clause’s suite is executed. All except\n'
- 'clauses must have an executable block. When the end of this block '
- 'is\n'
- 'reached, execution continues normally after the entire try '
- 'statement.\n'
- '(This means that if two nested handlers exist for the same '
- 'exception,\n'
- 'and the exception occurs in the try clause of the inner handler, the\n'
- 'outer handler will not handle the exception.)\n'
+ 'When a matching "except" clause is found, the exception is assigned '
+ 'to\n'
+ 'the target specified after the "as" keyword in that "except" clause,\n'
+ 'if present, and the "except" clause’s suite is executed. All '
+ '"except"\n'
+ 'clauses must have an executable block. When the end of this block is\n'
+ 'reached, execution continues normally after the entire "try"\n'
+ 'statement. (This means that if two nested handlers exist for the '
+ 'same\n'
+ 'exception, and the exception occurs in the "try" clause of the inner\n'
+ 'handler, the outer handler will not handle the exception.)\n'
'\n'
'When an exception has been assigned using "as target", it is cleared\n'
- 'at the end of the except clause. This is as if\n'
+ 'at the end of the "except" clause. This is as if\n'
'\n'
' except E as N:\n'
' foo\n'
@@ -12560,12 +12601,13 @@ topics = {'assert': 'The "assert" statement\n'
' del N\n'
'\n'
'This means the exception must be assigned to a different name to be\n'
- 'able to refer to it after the except clause. Exceptions are cleared\n'
+ 'able to refer to it after the "except" clause. Exceptions are '
+ 'cleared\n'
'because with the traceback attached to them, they form a reference\n'
'cycle with the stack frame, keeping all locals in that frame alive\n'
'until the next garbage collection occurs.\n'
'\n'
- 'Before an except clause’s suite is executed, details about the\n'
+ 'Before an "except" clause’s suite is executed, details about the\n'
'exception are stored in the "sys" module and can be accessed via\n'
'"sys.exc_info()". "sys.exc_info()" returns a 3-tuple consisting of '
'the\n'
@@ -12597,16 +12639,20 @@ topics = {'assert': 'The "assert" statement\n'
' >>> print(sys.exc_info())\n'
' (None, None, None)\n'
'\n'
+ '\n'
+ '"except*" clause\n'
+ '================\n'
+ '\n'
'The "except*" clause(s) are used for handling "ExceptionGroup"s. The\n'
'exception type for matching is interpreted as in the case of '
'"except",\n'
'but in the case of exception groups we can have partial matches when\n'
'the type matches some of the exceptions in the group. This means '
'that\n'
- 'multiple except* clauses can execute, each handling part of the\n'
+ 'multiple "except*" clauses can execute, each handling part of the\n'
'exception group. Each clause executes once and handles an exception\n'
'group of all matching exceptions. Each exception in the group is\n'
- 'handled by at most one except* clause, the first that matches it.\n'
+ 'handled by at most one "except*" clause, the first that matches it.\n'
'\n'
' >>> try:\n'
' ... raise ExceptionGroup("eg",\n'
@@ -12626,22 +12672,25 @@ topics = {'assert': 'The "assert" statement\n'
' +-+---------------- 1 ----------------\n'
' | ValueError: 1\n'
' +------------------------------------\n'
- ' >>>\n'
'\n'
- ' Any remaining exceptions that were not handled by any except* '
- 'clause\n'
- ' are re-raised at the end, combined into an exception group along '
- 'with\n'
- ' all exceptions that were raised from within except* clauses.\n'
+ ' Any remaining exceptions that were not handled by any '
+ ':keyword:`!except*`\n'
+ ' clause are re-raised at the end, combined into an exception group '
+ 'along with\n'
+ ' all exceptions that were raised from within :keyword:`!except*` '
+ 'clauses.\n'
+ '\n'
+ ' An :keyword:`!except*` clause must have a matching type,\n'
+ ' and this type cannot be a subclass of :exc:`BaseExceptionGroup`.\n'
+ ' It is not possible to mix :keyword:`except` and '
+ ':keyword:`!except*`\n'
+ ' in the same :keyword:`try`.\n'
+ ' :keyword:`break`, :keyword:`continue` and :keyword:`return`\n'
+ ' cannot appear in an :keyword:`!except*` clause.\n'
+ '\n'
'\n'
- ' An except* clause must have a matching type, and this type cannot '
- 'be a\n'
- ' subclass of :exc:`BaseExceptionGroup`. It is not possible to mix '
- 'except\n'
- ' and except* in the same :keyword:`try`. :keyword:`break`,\n'
- ' :keyword:`continue` and :keyword:`return` cannot appear in an '
- 'except*\n'
- ' clause.\n'
+ '"else" clause\n'
+ '=============\n'
'\n'
'The optional "else" clause is executed if the control flow leaves '
'the\n'
@@ -12650,6 +12699,10 @@ topics = {'assert': 'The "assert" statement\n'
'"break" statement was executed. Exceptions in the "else" clause are\n'
'not handled by the preceding "except" clauses.\n'
'\n'
+ '\n'
+ '"finally" clause\n'
+ '================\n'
+ '\n'
'If "finally" is present, it specifies a ‘cleanup’ handler. The '
'"try"\n'
'clause is executed, including any "except" and "else" clauses. If '
@@ -12697,11 +12750,6 @@ topics = {'assert': 'The "assert" statement\n'
' >>> foo()\n'
" 'finally'\n"
'\n'
- 'Additional information on exceptions can be found in section\n'
- 'Exceptions, and information on using the "raise" statement to '
- 'generate\n'
- 'exceptions may be found in section The raise statement.\n'
- '\n'
'Changed in version 3.8: Prior to Python 3.8, a "continue" statement\n'
'was illegal in the "finally" clause due to a problem with the\n'
'implementation.\n',
@@ -12901,7 +12949,7 @@ topics = {'assert': 'The "assert" statement\n'
' points. All the code points in the range "U+0000 - '
'U+10FFFF"\n'
' can be represented in a string. Python doesn’t have a '
- '*char*\n'
+ 'char\n'
' type; instead, every code point in the string is '
'represented\n'
' as a string object with length "1". The built-in '
diff --git a/Misc/NEWS.d/3.11.0.rst b/Misc/NEWS.d/3.11.0.rst
new file mode 100644
index 0000000..2e1c49d
--- /dev/null
+++ b/Misc/NEWS.d/3.11.0.rst
@@ -0,0 +1,255 @@
+.. date: 2022-09-28-17-09-37
+.. gh-issue: 97616
+.. nonce: K1e3Xs
+.. release date: 2022-10-24
+.. section: Security
+
+Fix multiplying a list by an integer (``list *= int``): detect the integer
+overflow when the new allocated length is close to the maximum size. Issue
+reported by Jordan Limor. Patch by Victor Stinner.
+
+..
+
+.. date: 2022-09-07-10-42-00
+.. gh-issue: 97514
+.. nonce: Yggdsl
+.. section: Security
+
+On Linux the :mod:`multiprocessing` module returns to using filesystem
+backed unix domain sockets for communication with the *forkserver* process
+instead of the Linux abstract socket namespace. Only code that chooses to
+use the :ref:`"forkserver" start method <multiprocessing-start-methods>` is
+affected.
+
+Abstract sockets have no permissions and could allow any user on the system
+in the same `network namespace
+<https://man7.org/linux/man-pages/man7/network_namespaces.7.html>`_ (often
+the whole system) to inject code into the multiprocessing *forkserver*
+process. This was a potential privilege escalation. Filesystem based socket
+permissions restrict this to the *forkserver* process user as was the
+default in Python 3.8 and earlier.
+
+This prevents Linux `CVE-2022-42919
+<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42919>`_.
+
+..
+
+.. date: 2022-10-06-02-11-34
+.. gh-issue: 97002
+.. nonce: Zvsk71
+.. section: Core and Builtins
+
+Fix an issue where several frame objects could be backed by the same
+interpreter frame, possibly leading to corrupted memory and hard crashes of
+the interpreter.
+
+..
+
+.. date: 2022-10-03-13-35-48
+.. gh-issue: 97752
+.. nonce: 0xTjJY
+.. section: Core and Builtins
+
+Fix possible data corruption or crashes when accessing the ``f_back`` member
+of newly-created generator or coroutine frames.
+
+..
+
+.. date: 2022-09-21-16-06-37
+.. gh-issue: 96975
+.. nonce: BmE0XY
+.. section: Core and Builtins
+
+Fix a crash occurring when :c:func:`PyEval_GetFrame` is called while the
+topmost Python frame is in a partially-initialized state.
+
+..
+
+.. date: 2022-09-21-14-38-31
+.. gh-issue: 96848
+.. nonce: WuoLzU
+.. section: Core and Builtins
+
+Fix command line parsing: reject :option:`-X int_max_str_digits <-X>` option
+with no value (invalid) when the :envvar:`PYTHONINTMAXSTRDIGITS` environment
+variable is set to a valid limit. Patch by Victor Stinner.
+
+..
+
+.. date: 2022-09-18-08-47-40
+.. gh-issue: 96821
+.. nonce: Co2iOq
+.. section: Core and Builtins
+
+Fix undefined behaviour in ``_testcapimodule.c``.
+
+..
+
+.. date: 2022-09-16-19-02-40
+.. gh-issue: 95778
+.. nonce: cJmnst
+.. section: Core and Builtins
+
+When :exc:`ValueError` is raised if an integer is larger than the limit,
+mention the :func:`sys.set_int_max_str_digits` function in the error
+message. Patch by Victor Stinner.
+
+..
+
+.. date: 2022-09-05-19-20-44
+.. gh-issue: 96587
+.. nonce: bVxhX2
+.. section: Core and Builtins
+
+Correctly raise ``SyntaxError`` on exception groups (:pep:`654`) on python
+versions prior to 3.11
+
+..
+
+.. bpo: 42316
+.. date: 2020-11-15-02-08-43
+.. nonce: LqdkWK
+.. section: Core and Builtins
+
+Document some places where an assignment expression needs parentheses.
+
+..
+
+.. date: 2022-10-16-15-31-50
+.. gh-issue: 98331
+.. nonce: Y5kPOX
+.. section: Library
+
+Update the bundled copies of pip and setuptools to versions 22.3 and 65.5.0
+respectively.
+
+..
+
+.. date: 2022-10-06-23-42-00
+.. gh-issue: 90985
+.. nonce: s280JY
+.. section: Library
+
+Earlier in 3.11 we deprecated ``asyncio.Task.cancel("message")``. We
+realized we were too harsh, and have undeprecated it.
+
+..
+
+.. date: 2022-09-25-23-24-52
+.. gh-issue: 97545
+.. nonce: HZLSNt
+.. section: Library
+
+Make Semaphore run faster.
+
+..
+
+.. date: 2022-09-24-18-56-23
+.. gh-issue: 96865
+.. nonce: o9WUkW
+.. section: Library
+
+fix Flag to use boundary CONFORM
+
+This restores previous Flag behavior of allowing flags with non-sequential
+values to be combined; e.g.
+
+class Skip(Flag): TWO = 2 EIGHT = 8
+
+Skip.TWO | Skip.EIGHT -> <Skip.TWO|EIGHT: 10>
+
+..
+
+.. date: 2022-05-25-15-57-39
+.. gh-issue: 90155
+.. nonce: YMstB5
+.. section: Library
+
+Fix broken :class:`asyncio.Semaphore` when acquire is cancelled.
+
+..
+
+.. date: 2022-10-02-10-58-52
+.. gh-issue: 97741
+.. nonce: 39l023
+.. section: Documentation
+
+Fix ``!`` in c domain ref target syntax via a ``conf.py`` patch, so it works
+as intended to disable ref target resolution.
+
+..
+
+.. date: 2022-05-20-18-42-10
+.. gh-issue: 93031
+.. nonce: c2RdJe
+.. section: Documentation
+
+Update tutorial introduction output to use 3.10+ SyntaxError invalid range.
+
+..
+
+.. 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-09-11-14-23-49
+.. gh-issue: 96729
+.. nonce: W4uBWL
+.. section: Build
+
+Ensure that Windows releases built with ``Tools\msi\buildrelease.bat`` are
+upgradable to and from official Python releases.
+
+..
+
+.. date: 2022-10-19-20-00-28
+.. gh-issue: 98360
+.. nonce: O2m6YG
+.. section: Windows
+
+Fixes :mod:`multiprocessing` spawning child processes on Windows from a
+virtual environment to ensure that child processes that also use
+:mod:`multiprocessing` to spawn more children will recognize that they are
+in a virtual environment.
+
+..
+
+.. date: 2022-10-19-19-35-37
+.. gh-issue: 98414
+.. nonce: FbHZuS
+.. section: Windows
+
+Fix :file:`py.exe` launcher handling of ``-V:<company>/`` option when
+default preferences have been set in environment variables or configuration
+files.
+
+..
+
+.. date: 2022-09-29-23-08-49
+.. gh-issue: 90989
+.. nonce: no89Q2
+.. section: Windows
+
+Clarify some text in the Windows installer.
+
+..
+
+.. date: 2022-10-05-15-26-58
+.. gh-issue: 97897
+.. nonce: Rf-C6u
+.. section: macOS
+
+The macOS 13 SDK includes support for the ``mkfifoat`` and ``mknodat``
+system calls. Using the ``dir_fd`` option with either :func:`os.mkfifo` or
+:func:`os.mknod` could result in a segfault if cpython is built with the
+macOS 13 SDK but run on an earlier version of macOS. Prevent this by adding
+runtime support for detection of these system calls ("weaklinking") as is
+done for other newer syscalls on macOS.
diff --git a/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst b/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst
deleted file mode 100644
index b67cd20..0000000
--- a/Misc/NEWS.d/next/Build/2022-09-11-14-23-49.gh-issue-96729.W4uBWL.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Ensure that Windows releases built with ``Tools\msi\buildrelease.bat`` are
-upgradable to and from official Python releases.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-11-15-02-08-43.bpo-42316.LqdkWK.rst b/Misc/NEWS.d/next/Core and Builtins/2020-11-15-02-08-43.bpo-42316.LqdkWK.rst
deleted file mode 100644
index ea99780..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2020-11-15-02-08-43.bpo-42316.LqdkWK.rst
+++ /dev/null
@@ -1 +0,0 @@
-Document some places where an assignment expression needs parentheses.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst
deleted file mode 100644
index 37e9dcb..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-09-05-19-20-44.gh-issue-96587.bVxhX2.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Correctly raise ``SyntaxError`` on exception groups (:pep:`654`) on python
-versions prior to 3.11
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst
deleted file mode 100644
index ebf6377..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-09-16-19-02-40.gh-issue-95778.cJmnst.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-When :exc:`ValueError` is raised if an integer is larger than the limit,
-mention the :func:`sys.set_int_max_str_digits` function in the error message.
-Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-18-08-47-40.gh-issue-96821.Co2iOq.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-18-08-47-40.gh-issue-96821.Co2iOq.rst
deleted file mode 100644
index 4fd0532..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-09-18-08-47-40.gh-issue-96821.Co2iOq.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix undefined behaviour in ``_testcapimodule.c``.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-21-14-38-31.gh-issue-96848.WuoLzU.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-21-14-38-31.gh-issue-96848.WuoLzU.rst
deleted file mode 100644
index a9b04ce..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-09-21-14-38-31.gh-issue-96848.WuoLzU.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix command line parsing: reject :option:`-X int_max_str_digits <-X>` option
-with no value (invalid) when the :envvar:`PYTHONINTMAXSTRDIGITS` environment
-variable is set to a valid limit. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-09-21-16-06-37.gh-issue-96975.BmE0XY.rst b/Misc/NEWS.d/next/Core and Builtins/2022-09-21-16-06-37.gh-issue-96975.BmE0XY.rst
deleted file mode 100644
index e6fcb84..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-09-21-16-06-37.gh-issue-96975.BmE0XY.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash occurring when :c:func:`PyEval_GetFrame` is called while the
-topmost Python frame is in a partially-initialized state.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-10-03-13-35-48.gh-issue-97752.0xTjJY.rst b/Misc/NEWS.d/next/Core and Builtins/2022-10-03-13-35-48.gh-issue-97752.0xTjJY.rst
deleted file mode 100644
index c656350..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-10-03-13-35-48.gh-issue-97752.0xTjJY.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible data corruption or crashes when accessing the ``f_back`` member
-of newly-created generator or coroutine frames.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-10-06-02-11-34.gh-issue-97002.Zvsk71.rst b/Misc/NEWS.d/next/Core and Builtins/2022-10-06-02-11-34.gh-issue-97002.Zvsk71.rst
deleted file mode 100644
index 1f577e0..0000000
--- a/Misc/NEWS.d/next/Core and Builtins/2022-10-06-02-11-34.gh-issue-97002.Zvsk71.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix an issue where several frame objects could be backed by the same
-interpreter frame, possibly leading to corrupted memory and hard crashes of
-the interpreter.
diff --git a/Misc/NEWS.d/next/Documentation/2022-05-20-18-42-10.gh-issue-93031.c2RdJe.rst b/Misc/NEWS.d/next/Documentation/2022-05-20-18-42-10.gh-issue-93031.c2RdJe.rst
deleted file mode 100644
index c46b45d..0000000
--- a/Misc/NEWS.d/next/Documentation/2022-05-20-18-42-10.gh-issue-93031.c2RdJe.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update tutorial introduction output to use 3.10+ SyntaxError invalid range.
diff --git a/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst b/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst
deleted file mode 100644
index 8da9c92..0000000
--- a/Misc/NEWS.d/next/Documentation/2022-10-02-10-58-52.gh-issue-97741.39l023.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``!`` in c domain ref target syntax via a ``conf.py`` patch, so it works
-as intended to disable ref target resolution.
diff --git a/Misc/NEWS.d/next/Library/2022-05-25-15-57-39.gh-issue-90155.YMstB5.rst b/Misc/NEWS.d/next/Library/2022-05-25-15-57-39.gh-issue-90155.YMstB5.rst
deleted file mode 100644
index 8def769..0000000
--- a/Misc/NEWS.d/next/Library/2022-05-25-15-57-39.gh-issue-90155.YMstB5.rst
+++ /dev/null
@@ -1 +0,0 @@
-Fix broken :class:`asyncio.Semaphore` when acquire is cancelled.
diff --git a/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst b/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst
deleted file mode 100644
index b054fde..0000000
--- a/Misc/NEWS.d/next/Library/2022-09-24-18-56-23.gh-issue-96865.o9WUkW.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-fix Flag to use boundary CONFORM
-
-This restores previous Flag behavior of allowing flags with non-sequential values to be combined; e.g.
-
- class Skip(Flag):
- TWO = 2
- EIGHT = 8
-
- Skip.TWO | Skip.EIGHT -> <Skip.TWO|EIGHT: 10>
diff --git a/Misc/NEWS.d/next/Library/2022-09-25-23-24-52.gh-issue-97545.HZLSNt.rst b/Misc/NEWS.d/next/Library/2022-09-25-23-24-52.gh-issue-97545.HZLSNt.rst
deleted file mode 100644
index a53902e..0000000
--- a/Misc/NEWS.d/next/Library/2022-09-25-23-24-52.gh-issue-97545.HZLSNt.rst
+++ /dev/null
@@ -1 +0,0 @@
-Make Semaphore run faster.
diff --git a/Misc/NEWS.d/next/Library/2022-10-06-23-42-00.gh-issue-90985.s280JY.rst b/Misc/NEWS.d/next/Library/2022-10-06-23-42-00.gh-issue-90985.s280JY.rst
deleted file mode 100644
index 964aa39..0000000
--- a/Misc/NEWS.d/next/Library/2022-10-06-23-42-00.gh-issue-90985.s280JY.rst
+++ /dev/null
@@ -1 +0,0 @@
-Earlier in 3.11 we deprecated ``asyncio.Task.cancel("message")``. We realized we were too harsh, and have undeprecated it.
diff --git a/Misc/NEWS.d/next/Library/2022-10-16-15-31-50.gh-issue-98331.Y5kPOX.rst b/Misc/NEWS.d/next/Library/2022-10-16-15-31-50.gh-issue-98331.Y5kPOX.rst
deleted file mode 100644
index b4cf943..0000000
--- a/Misc/NEWS.d/next/Library/2022-10-16-15-31-50.gh-issue-98331.Y5kPOX.rst
+++ /dev/null
@@ -1 +0,0 @@
-Update the bundled copies of pip and setuptools to versions 22.3 and 65.5.0 respectively.
diff --git a/Misc/NEWS.d/next/Security/2022-09-07-10-42-00.gh-issue-97514.Yggdsl.rst b/Misc/NEWS.d/next/Security/2022-09-07-10-42-00.gh-issue-97514.Yggdsl.rst
deleted file mode 100644
index 02d95b5..0000000
--- a/Misc/NEWS.d/next/Security/2022-09-07-10-42-00.gh-issue-97514.Yggdsl.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-On Linux the :mod:`multiprocessing` module returns to using filesystem backed
-unix domain sockets for communication with the *forkserver* process instead of
-the Linux abstract socket namespace. Only code that chooses to use the
-:ref:`"forkserver" start method <multiprocessing-start-methods>` is affected.
-
-Abstract sockets have no permissions and could allow any user on the system in
-the same `network namespace
-<https://man7.org/linux/man-pages/man7/network_namespaces.7.html>`_ (often the
-whole system) to inject code into the multiprocessing *forkserver* process.
-This was a potential privilege escalation. Filesystem based socket permissions
-restrict this to the *forkserver* process user as was the default in Python 3.8
-and earlier.
-
-This prevents Linux `CVE-2022-42919
-<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42919>`_.
diff --git a/Misc/NEWS.d/next/Security/2022-09-28-17-09-37.gh-issue-97616.K1e3Xs.rst b/Misc/NEWS.d/next/Security/2022-09-28-17-09-37.gh-issue-97616.K1e3Xs.rst
deleted file mode 100644
index 721427f..0000000
--- a/Misc/NEWS.d/next/Security/2022-09-28-17-09-37.gh-issue-97616.K1e3Xs.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix multiplying a list by an integer (``list *= int``): detect the integer
-overflow when the new allocated length is close to the maximum size. Issue
-reported by Jordan Limor. 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
index 8bf1a9d..0000000
--- a/Misc/NEWS.d/next/Tests/2022-10-20-17-49-50.gh-issue-95027.viRpJB.rst
+++ /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/Windows/2022-09-29-23-08-49.gh-issue-90989.no89Q2.rst b/Misc/NEWS.d/next/Windows/2022-09-29-23-08-49.gh-issue-90989.no89Q2.rst
deleted file mode 100644
index 34fffdf..0000000
--- a/Misc/NEWS.d/next/Windows/2022-09-29-23-08-49.gh-issue-90989.no89Q2.rst
+++ /dev/null
@@ -1 +0,0 @@
-Clarify some text in the Windows installer.
diff --git a/Misc/NEWS.d/next/Windows/2022-10-19-19-35-37.gh-issue-98414.FbHZuS.rst b/Misc/NEWS.d/next/Windows/2022-10-19-19-35-37.gh-issue-98414.FbHZuS.rst
deleted file mode 100644
index df07b7f..0000000
--- a/Misc/NEWS.d/next/Windows/2022-10-19-19-35-37.gh-issue-98414.FbHZuS.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :file:`py.exe` launcher handling of ``-V:<company>/`` option when
-default preferences have been set in environment variables or configuration
-files.
diff --git a/Misc/NEWS.d/next/Windows/2022-10-19-20-00-28.gh-issue-98360.O2m6YG.rst b/Misc/NEWS.d/next/Windows/2022-10-19-20-00-28.gh-issue-98360.O2m6YG.rst
deleted file mode 100644
index 61c1e5e..0000000
--- a/Misc/NEWS.d/next/Windows/2022-10-19-20-00-28.gh-issue-98360.O2m6YG.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Fixes :mod:`multiprocessing` spawning child processes on Windows from a
-virtual environment to ensure that child processes that also use
-:mod:`multiprocessing` to spawn more children will recognize that they are
-in a virtual environment.
diff --git a/Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C6u.rst b/Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C6u.rst
deleted file mode 100644
index 0d21e98..0000000
--- a/Misc/NEWS.d/next/macOS/2022-10-05-15-26-58.gh-issue-97897.Rf-C6u.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-The macOS 13 SDK includes support for the ``mkfifoat`` and ``mknodat`` system calls.
-Using the ``dir_fd`` option with either :func:`os.mkfifo` or :func:`os.mknod` could result in a
-segfault if cpython is built with the macOS 13 SDK but run on an earlier
-version of macOS. Prevent this by adding runtime support for detection of
-these system calls ("weaklinking") as is done for other newer syscalls on
-macOS.
diff --git a/README.rst b/README.rst
index 2e7eb04..8b5b52a 100644
--- a/README.rst
+++ b/README.rst
@@ -1,5 +1,5 @@
-This is Python version 3.11.0 release candidate 2
-=================================================
+This is Python version 3.11.0
+=============================
.. image:: https://github.com/python/cpython/workflows/Tests/badge.svg
:alt: CPython build status on GitHub Actions