mirror of https://github.com/python/cpython
Python 3.12.0a1
This commit is contained in:
parent
ad1dc3ebb6
commit
4ae1a0ecaf
|
@ -20,10 +20,10 @@
|
|||
#define PY_MINOR_VERSION 12
|
||||
#define PY_MICRO_VERSION 0
|
||||
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
|
||||
#define PY_RELEASE_SERIAL 0
|
||||
#define PY_RELEASE_SERIAL 1
|
||||
|
||||
/* Version as a string */
|
||||
#define PY_VERSION "3.12.0a0"
|
||||
#define PY_VERSION "3.12.0a1"
|
||||
/*--end constants--*/
|
||||
|
||||
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Autogenerated by Sphinx on Fri May 6 23:53:34 2022
|
||||
# Autogenerated by Sphinx on Tue Oct 25 00:07:40 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 the evaluation of an expression in the header of an except '
|
||||
'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'
|
||||
'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,13 +2549,15 @@ 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'
|
||||
'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'
|
||||
'multiple "except*" clauses can execute, each handling part of '
|
||||
'the\n'
|
||||
'exception group. Each clause executes at most once and handles '
|
||||
'an\n'
|
||||
'exception group of all matching exceptions. Each exception in '
|
||||
'the\n'
|
||||
'group is handled by at most one "except*" clause, the first '
|
||||
'that\n'
|
||||
'matches it.\n'
|
||||
'\n'
|
||||
' >>> try:\n'
|
||||
' ... raise ExceptionGroup("eg",\n'
|
||||
|
@ -2548,22 +2579,37 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' +-+---------------- 1 ----------------\n'
|
||||
' | ValueError: 1\n'
|
||||
' +------------------------------------\n'
|
||||
' >>>\n'
|
||||
'\n'
|
||||
' Any remaining exceptions that were not handled by any except* '
|
||||
'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'
|
||||
'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'
|
||||
'If the raised exception is not an exception group and its type '
|
||||
'matches\n'
|
||||
'one of the "except*" clauses, it is caught and wrapped by an '
|
||||
'exception\n'
|
||||
'group with an empty message string.\n'
|
||||
'\n'
|
||||
' >>> try:\n'
|
||||
' ... raise BlockingIOError\n'
|
||||
' ... except* BlockingIOError as e:\n'
|
||||
' ... print(repr(e))\n'
|
||||
' ...\n'
|
||||
" ExceptionGroup('', (BlockingIOError()))\n"
|
||||
'\n'
|
||||
'An "except*" clause must have a matching type, and this type '
|
||||
'cannot be\n'
|
||||
'a subclass of "BaseExceptionGroup". It is not possible to mix '
|
||||
'"except"\n'
|
||||
'and "except*" in the same "try". "break", "continue" and '
|
||||
'"return"\n'
|
||||
'cannot appear in an "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 +2619,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 +2676,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'
|
||||
|
@ -3482,8 +3527,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' there is matched against the whole object rather than an '
|
||||
'attribute.\n'
|
||||
' For example "int(0|1)" matches the value "0", but not the '
|
||||
'values\n'
|
||||
' "0.0" or "False".\n'
|
||||
'value\n'
|
||||
' "0.0".\n'
|
||||
'\n'
|
||||
'In simple terms "CLS(P1, attr=P2)" matches only if the '
|
||||
'following\n'
|
||||
|
@ -4144,7 +4189,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' invoking the superclass’s "__new__()" method using\n'
|
||||
' "super().__new__(cls[, ...])" with appropriate arguments '
|
||||
'and then\n'
|
||||
' modifying the newly-created instance as necessary before '
|
||||
' modifying the newly created instance as necessary before '
|
||||
'returning\n'
|
||||
' it.\n'
|
||||
'\n'
|
||||
|
@ -4547,7 +4592,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'Python.This is\n'
|
||||
' intended to provide protection against a '
|
||||
'denial-of-service caused\n'
|
||||
' by carefully-chosen inputs that exploit the worst '
|
||||
' by carefully chosen inputs that exploit the worst '
|
||||
'case\n'
|
||||
' performance of a dict insertion, O(n^2) complexity. '
|
||||
'See\n'
|
||||
|
@ -4861,7 +4906,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'is\n'
|
||||
'applied to separating the commands; the input is split at the '
|
||||
'first\n'
|
||||
'";;" pair, even if it is in the middle of a quoted string.\n'
|
||||
'";;" pair, even if it is in the middle of a quoted string. A\n'
|
||||
'workaround for strings with double semicolons is to use '
|
||||
'implicit\n'
|
||||
'string concatenation "\';\'\';\'" or "";"";"".\n'
|
||||
'\n'
|
||||
'If a file ".pdbrc" exists in the user’s home directory or in '
|
||||
'the\n'
|
||||
|
@ -5537,9 +5585,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'
|
||||
|
@ -7100,8 +7149,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'\n'
|
||||
'A non-normative HTML file listing all valid identifier '
|
||||
'characters for\n'
|
||||
'Unicode 14.0.0 can be found at\n'
|
||||
'https://www.unicode.org/Public/14.0.0/ucd/DerivedCoreProperties.txt\n'
|
||||
'Unicode 15.0.0 can be found at\n'
|
||||
'https://www.unicode.org/Public/15.0.0/ucd/DerivedCoreProperties.txt\n'
|
||||
'\n'
|
||||
'\n'
|
||||
'Keywords\n'
|
||||
|
@ -7654,9 +7703,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'
|
||||
|
@ -8229,8 +8277,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'
|
||||
|
@ -8254,7 +8303,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| "x(arguments...)", "x.attribute" | '
|
||||
'attribute reference |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "await" "x" | '
|
||||
'| "await x" | '
|
||||
'Await expression |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "**" | '
|
||||
|
@ -8290,7 +8339,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| ">=", "!=", "==" | '
|
||||
'tests and identity tests |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "not" "x" | '
|
||||
'| "not x" | '
|
||||
'Boolean NOT |\n'
|
||||
'+-------------------------------------------------+---------------------------------------+\n'
|
||||
'| "and" | '
|
||||
|
@ -8980,31 +9029,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' still alive. The list is in definition order. Example:\n'
|
||||
'\n'
|
||||
' >>> int.__subclasses__()\n'
|
||||
" [<class 'bool'>]\n"
|
||||
'\n'
|
||||
'-[ Footnotes ]-\n'
|
||||
'\n'
|
||||
'[1] Additional information on these special methods may be '
|
||||
'found in\n'
|
||||
' the Python Reference Manual (Basic customization).\n'
|
||||
'\n'
|
||||
'[2] As a consequence, the list "[1, 2]" is considered equal '
|
||||
'to "[1.0,\n'
|
||||
' 2.0]", and similarly for tuples.\n'
|
||||
'\n'
|
||||
'[3] They must have since the parser can’t tell the type of '
|
||||
'the\n'
|
||||
' operands.\n'
|
||||
'\n'
|
||||
'[4] Cased characters are those with general category '
|
||||
'property being\n'
|
||||
' one of “Lu” (Letter, uppercase), “Ll” (Letter, '
|
||||
'lowercase), or “Lt”\n'
|
||||
' (Letter, titlecase).\n'
|
||||
'\n'
|
||||
'[5] To format only a tuple you should therefore provide a '
|
||||
'singleton\n'
|
||||
' tuple whose only element is the tuple to be formatted.\n',
|
||||
" [<class 'bool'>]\n",
|
||||
'specialnames': 'Special method names\n'
|
||||
'********************\n'
|
||||
'\n'
|
||||
|
@ -9073,7 +9098,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' invoking the superclass’s "__new__()" method using\n'
|
||||
' "super().__new__(cls[, ...])" with appropriate arguments '
|
||||
'and then\n'
|
||||
' modifying the newly-created instance as necessary before '
|
||||
' modifying the newly created instance as necessary before '
|
||||
'returning\n'
|
||||
' it.\n'
|
||||
'\n'
|
||||
|
@ -9474,7 +9499,7 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'is\n'
|
||||
' intended to provide protection against a '
|
||||
'denial-of-service caused\n'
|
||||
' by carefully-chosen inputs that exploit the worst case\n'
|
||||
' by carefully chosen inputs that exploit the worst case\n'
|
||||
' performance of a dict insertion, O(n^2) complexity. '
|
||||
'See\n'
|
||||
' http://www.ocert.org/advisories/ocert-2011-003.html '
|
||||
|
@ -12191,12 +12216,15 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'single quotes ("\'") or double quotes ("""). They can also be '
|
||||
'enclosed\n'
|
||||
'in matching groups of three single or double quotes (these are\n'
|
||||
'generally referred to as *triple-quoted strings*). The '
|
||||
'backslash\n'
|
||||
'("\\") character is used to escape characters that otherwise have '
|
||||
'a\n'
|
||||
'special meaning, such as newline, backslash itself, or the quote\n'
|
||||
'generally referred to as *triple-quoted strings*). The backslash '
|
||||
'("\\")\n'
|
||||
'character is used to give special meaning to otherwise ordinary\n'
|
||||
'characters like "n", which means ‘newline’ when escaped ("\\n"). '
|
||||
'It can\n'
|
||||
'also be used to escape characters that otherwise have a special\n'
|
||||
'meaning, such as newline, backslash itself, or the quote '
|
||||
'character.\n'
|
||||
'See escape sequences below for examples.\n'
|
||||
'\n'
|
||||
'Bytes literals are always prefixed with "\'b\'" or "\'B\'"; they '
|
||||
'produce\n'
|
||||
|
@ -12253,8 +12281,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| Escape Sequence | Meaning | Notes '
|
||||
'|\n'
|
||||
'|===================|===================================|=========|\n'
|
||||
'| "\\newline" | Backslash and newline ignored '
|
||||
'| |\n'
|
||||
'| "\\"<newline> | Backslash and newline ignored | '
|
||||
'(1) |\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| "\\\\" | Backslash ("\\") '
|
||||
'| |\n'
|
||||
|
@ -12287,10 +12315,10 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'| |\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| "\\ooo" | Character with octal value *ooo* | '
|
||||
'(1,3) |\n'
|
||||
'(2,4) |\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| "\\xhh" | Character with hex value *hh* | '
|
||||
'(2,3) |\n'
|
||||
'(3,4) |\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'\n'
|
||||
'Escape sequences only recognized in string literals are:\n'
|
||||
|
@ -12300,24 +12328,36 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'|\n'
|
||||
'|===================|===================================|=========|\n'
|
||||
'| "\\N{name}" | Character named *name* in the | '
|
||||
'(4) |\n'
|
||||
'(5) |\n'
|
||||
'| | Unicode database | '
|
||||
'|\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| "\\uxxxx" | Character with 16-bit hex value | '
|
||||
'(5) |\n'
|
||||
'(6) |\n'
|
||||
'| | *xxxx* | '
|
||||
'|\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'| "\\Uxxxxxxxx" | Character with 32-bit hex value | '
|
||||
'(6) |\n'
|
||||
'(7) |\n'
|
||||
'| | *xxxxxxxx* | '
|
||||
'|\n'
|
||||
'+-------------------+-----------------------------------+---------+\n'
|
||||
'\n'
|
||||
'Notes:\n'
|
||||
'\n'
|
||||
'1. As in Standard C, up to three octal digits are accepted.\n'
|
||||
'1. A backslash can be added at the end of a line to ignore the\n'
|
||||
' newline:\n'
|
||||
'\n'
|
||||
" >>> 'This string will not include \\\n"
|
||||
" ... backslashes or newline characters.'\n"
|
||||
" 'This string will not include backslashes or newline "
|
||||
"characters.'\n"
|
||||
'\n'
|
||||
' The same result can be achieved using triple-quoted strings, '
|
||||
'or\n'
|
||||
' parentheses and string literal concatenation.\n'
|
||||
'\n'
|
||||
'2. As in Standard C, up to three octal digits are accepted.\n'
|
||||
'\n'
|
||||
' Changed in version 3.11: Octal escapes with value larger than\n'
|
||||
' "0o377" produce a "DeprecationWarning". In a future Python '
|
||||
|
@ -12325,20 +12365,20 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' they will be a "SyntaxWarning" and eventually a '
|
||||
'"SyntaxError".\n'
|
||||
'\n'
|
||||
'2. Unlike in Standard C, exactly two hex digits are required.\n'
|
||||
'3. Unlike in Standard C, exactly two hex digits are required.\n'
|
||||
'\n'
|
||||
'3. In a bytes literal, hexadecimal and octal escapes denote the '
|
||||
'4. In a bytes literal, hexadecimal and octal escapes denote the '
|
||||
'byte\n'
|
||||
' with the given value. In a string literal, these escapes '
|
||||
'denote a\n'
|
||||
' Unicode character with the given value.\n'
|
||||
'\n'
|
||||
'4. Changed in version 3.3: Support for name aliases [1] has been\n'
|
||||
'5. Changed in version 3.3: Support for name aliases [1] has been\n'
|
||||
' added.\n'
|
||||
'\n'
|
||||
'5. Exactly four hex digits are required.\n'
|
||||
'6. Exactly four hex digits are required.\n'
|
||||
'\n'
|
||||
'6. Any Unicode character can be encoded this way. Exactly eight '
|
||||
'7. Any Unicode character can be encoded this way. Exactly eight '
|
||||
'hex\n'
|
||||
' digits are required.\n'
|
||||
'\n'
|
||||
|
@ -12509,31 +12549,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'
|
||||
|
@ -12541,21 +12589,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'
|
||||
|
@ -12569,12 +12616,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'
|
||||
|
@ -12606,16 +12654,21 @@ 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'
|
||||
'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'
|
||||
'multiple "except*" clauses can execute, each handling part of the\n'
|
||||
'exception group. Each clause executes at most once and handles an\n'
|
||||
'exception group of all matching exceptions. Each exception in the\n'
|
||||
'group is handled by at most one "except*" clause, the first that\n'
|
||||
'matches it.\n'
|
||||
'\n'
|
||||
' >>> try:\n'
|
||||
' ... raise ExceptionGroup("eg",\n'
|
||||
|
@ -12635,22 +12688,36 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
' +-+---------------- 1 ----------------\n'
|
||||
' | ValueError: 1\n'
|
||||
' +------------------------------------\n'
|
||||
' >>>\n'
|
||||
'\n'
|
||||
' Any remaining exceptions that were not handled by any except* '
|
||||
'Any remaining exceptions that were not handled by any "except*" '
|
||||
'clause\n'
|
||||
' are re-raised at the end, combined into an exception group along '
|
||||
'are re-raised at the end, combined into an exception group along '
|
||||
'with\n'
|
||||
' all exceptions that were raised from within except* clauses.\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'
|
||||
'If the raised exception is not an exception group and its type '
|
||||
'matches\n'
|
||||
'one of the "except*" clauses, it is caught and wrapped by an '
|
||||
'exception\n'
|
||||
'group with an empty message string.\n'
|
||||
'\n'
|
||||
' >>> try:\n'
|
||||
' ... raise BlockingIOError\n'
|
||||
' ... except* BlockingIOError as e:\n'
|
||||
' ... print(repr(e))\n'
|
||||
' ...\n'
|
||||
" ExceptionGroup('', (BlockingIOError()))\n"
|
||||
'\n'
|
||||
'An "except*" clause must have a matching type, and this type cannot '
|
||||
'be\n'
|
||||
'a subclass of "BaseExceptionGroup". It is not possible to mix '
|
||||
'"except"\n'
|
||||
'and "except*" in the same "try". "break", "continue" and "return"\n'
|
||||
'cannot appear in an "except*" clause.\n'
|
||||
'\n'
|
||||
'\n'
|
||||
'"else" clause\n'
|
||||
'=============\n'
|
||||
'\n'
|
||||
'The optional "else" clause is executed if the control flow leaves '
|
||||
'the\n'
|
||||
|
@ -12659,6 +12726,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 '
|
||||
|
@ -12706,11 +12777,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',
|
||||
|
@ -12910,7 +12976,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 '
|
||||
|
@ -14336,7 +14402,11 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
'abstract\n'
|
||||
'base class "collections.abc.Set" are available (for example, '
|
||||
'"==",\n'
|
||||
'"<", or "^").\n'
|
||||
'"<", or "^"). While using set operators, set-like views '
|
||||
'accept any\n'
|
||||
'iterable as the other operand, unlike sets which only accept '
|
||||
'sets as\n'
|
||||
'the input.\n'
|
||||
'\n'
|
||||
'An example of dictionary view usage:\n'
|
||||
'\n'
|
||||
|
@ -14370,6 +14440,8 @@ topics = {'assert': 'The "assert" statement\n'
|
|||
" {'bacon'}\n"
|
||||
" >>> keys ^ {'sausage', 'juice'}\n"
|
||||
" {'juice', 'sausage', 'bacon', 'spam'}\n"
|
||||
" >>> keys | ['juice', 'juice', 'juice']\n"
|
||||
" {'juice', 'sausage', 'bacon', 'spam', 'eggs'}\n"
|
||||
'\n'
|
||||
' >>> # get back a read-only proxy for the original '
|
||||
'dictionary\n'
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
|||
Drop invalid compiler switch ``-fPIC`` for HP aCC on HP-UX. Patch by Michael Osipov.
|
|
@ -1 +0,0 @@
|
|||
Disable pymalloc and increase stack size on ``wasm32-wasi``.
|
|
@ -1,4 +0,0 @@
|
|||
Python now always use the ``%zu`` and ``%zd`` printf formats to format a
|
||||
``size_t`` or ``Py_ssize_t`` number. Building Python 3.12 requires a C11
|
||||
compiler, so these printf formats are now always supported. Patch by Victor
|
||||
Stinner.
|
|
@ -1,3 +0,0 @@
|
|||
``va_start()`` with two parameters, like ``va_start(args, format),``
|
||||
is now required to build Python. ``va_start()`` is no longer called with a single parameter.
|
||||
Patch by Kumar Aditya.
|
|
@ -1 +0,0 @@
|
|||
Fix ``Modules/Setup.stdlib.in`` rule for ``_sqlite3`` extension.
|
|
@ -1 +0,0 @@
|
|||
``configure`` now detects and reports :pep:`11` support tiers.
|
|
@ -1,2 +0,0 @@
|
|||
Address race condition in ``Makefile`` when installing a PGO build. All
|
||||
``test`` and ``install`` targets now depend on ``all`` target.
|
|
@ -1,3 +0,0 @@
|
|||
Updated pegen regeneration script on Windows to find and use Python 3.9 or
|
||||
higher. Prior to this, pegen regeneration already required 3.9 or higher,
|
||||
but the script may have used lower versions of Python.
|
|
@ -1,2 +0,0 @@
|
|||
The ``2to3``, ``idle``, and ``pydoc`` scripts are now generated and installed by
|
||||
``Makefile`` instead of ``setup.py``.
|
|
@ -1,2 +0,0 @@
|
|||
C extension modules are now built by ``configure`` and ``make``
|
||||
instead of ``distutils`` and ``setup.py``.
|
|
@ -1,3 +0,0 @@
|
|||
``makesetup`` now works around an issue with sed on macOS and uses correct
|
||||
CFLAGS for object files that end up in a shared extension. Module CFLAGS
|
||||
are used before PY_STDMODULE_CFLAGS to avoid clashes with system headers.
|
|
@ -1 +0,0 @@
|
|||
``_dbm`` module dependencies are now detected by configure.
|
|
@ -1 +0,0 @@
|
|||
Fix building ``_ctypes`` extension without ``pkg-config``.
|
|
@ -1,5 +0,0 @@
|
|||
Dependencies of :mod:`readline` and :mod:`curses` module are now detected in
|
||||
``configure`` script with ``pkg-config``. Only ``ncurses`` / ``ncursesw``
|
||||
are detected automatically. The old ``curses`` library is not configured
|
||||
automatically. Workaround for missing ``termcap`` or ``tinfo`` library
|
||||
has been removed.
|
|
@ -1 +0,0 @@
|
|||
Build and test with OpenSSL 1.1.1q
|
|
@ -1,2 +0,0 @@
|
|||
``deepfreeze.py`` now supports code object with frozensets that contain
|
||||
incompatible, unsortable types.
|
|
@ -1,2 +0,0 @@
|
|||
``configure`` now uses custom flags like ``ZLIB_CFLAGS`` and ``ZLIB_LIBS``
|
||||
when searching for headers and libraries.
|
|
@ -1 +0,0 @@
|
|||
Fix the possible performance regression of :c:func:`PyObject_Free` compiled with MSVC version 1932.
|
|
@ -1,2 +0,0 @@
|
|||
Fixed ``_decimal`` module build issue on GCC when compiling with LTO and
|
||||
pydebug. Debug builds no longer force inlining of functions.
|
|
@ -1,2 +0,0 @@
|
|||
Platforms ``wasm32-unknown-emscripten`` and ``wasm32-unknown-wasi`` have
|
||||
been promoted to :pep:`11` tier 3 platform support.
|
|
@ -1 +0,0 @@
|
|||
Python now skips missing :mod:`socket` functions and methods on WASI. WASI can only create sockets from existing fd / accept and has no netdb.
|
|
@ -1,2 +0,0 @@
|
|||
Python now detects missing ``dup`` function in WASI and works around some
|
||||
missing :mod:`errno`, :mod:`select`, and :mod:`socket` constants.
|
|
@ -1,2 +0,0 @@
|
|||
wasm32-wasi builds no longer depend on WASIX's pthread stubs. Python now has
|
||||
its own stubbed pthread API.
|
|
@ -1,2 +0,0 @@
|
|||
Fix a regression in ``configure`` script that caused some header checks to
|
||||
ignore custom ``CPPFLAGS``. The regression was introduced in :gh:`94802`.
|
|
@ -1,3 +0,0 @@
|
|||
Remove the ``configure --with-cxx-main`` build option: it didn't work for
|
||||
many years. Remove the ``MAINCC`` variable from ``configure`` and
|
||||
``Makefile``. Patch by Victor Stinner.
|
|
@ -1,2 +0,0 @@
|
|||
Use the BOLT post-link optimizer to improve performance, particularly on
|
||||
medium-to-large applications.
|
|
@ -1,2 +0,0 @@
|
|||
Add a new ``--with-dsymutil`` configure option to to link debug information
|
||||
in macOS. Patch by Pablo Galindo.
|
|
@ -1,3 +0,0 @@
|
|||
``wasm32-emscripten`` platform no longer builds :mod:`resource` module,
|
||||
:func:`~os.getresuid`, :func:`~os.getresgid`, and their setters. The APIs
|
||||
are stubs and not functional.
|
|
@ -1,3 +0,0 @@
|
|||
Shared module targets now depend on new ``MODULE_DEPS`` variable, which
|
||||
includes ``EXPORTSYMS``. This fixes a build order issue on unsupported AIX
|
||||
platform.
|
|
@ -1,2 +0,0 @@
|
|||
Ensure that Windows releases built with ``Tools\msi\buildrelease.bat`` are
|
||||
upgradable to and from official Python releases.
|
|
@ -1,2 +0,0 @@
|
|||
CPython now uses the ThinLTO option as the default policy if the Clang
|
||||
compiler accepts the flag. Patch by Dong-hee Na.
|
|
@ -1,2 +0,0 @@
|
|||
``wasm32-emscripten`` builds for browsers now include
|
||||
:mod:`concurrent.futures` for :mod:`asyncio` and :mod:`unittest.mock`.
|
|
@ -1,2 +0,0 @@
|
|||
Fix the build process of clang compiler for :program:`_bootstrap_python` if
|
||||
LTO optimization is applied. Patch by Matthias Görgens and Dong-hee Na.
|
|
@ -1,3 +0,0 @@
|
|||
The :c:func:`PyType_FromSpec` API will now find and use a metaclass
|
||||
based on the provided bases.
|
||||
An error will be raised if there is a metaclass conflict.
|
|
@ -1 +0,0 @@
|
|||
Fixed an assert that prevented ``PyRun_InteractiveOne`` from providing tracebacks when parsing from the provided FD.
|
|
@ -1,5 +0,0 @@
|
|||
Add new function :c:func:`PyFunction_SetVectorcall` to the C API
|
||||
which sets the vectorcall field of a given :c:type:`PyFunctionObject`.
|
||||
|
||||
Warning: extensions using this API must preserve the behavior
|
||||
of the unaltered function!
|
|
@ -1,2 +0,0 @@
|
|||
Remove the ``PyUnicode_InternImmortal()`` function and the
|
||||
``SSTATE_INTERNED_IMMORTAL`` macro. Patch by Victor Stinner.
|
|
@ -1 +0,0 @@
|
|||
Remove legacy Unicode APIs based on ``Py_UNICODE*``.
|
|
@ -1,3 +0,0 @@
|
|||
Remove the ``token.h`` header file. There was never any public tokenizer C
|
||||
API. The ``token.h`` header file was only designed to be used by Python
|
||||
internals. Patch by Victor Stinner.
|
|
@ -1,3 +0,0 @@
|
|||
Avoid mixing declarations and code in the C API to fix the compiler warning:
|
||||
"ISO C90 forbids mixed declarations and code"
|
||||
[-Werror=declaration-after-statement]. Patch by Victor Stinner.
|
|
@ -1,2 +0,0 @@
|
|||
Ensures changes to :c:member:`PyConfig.module_search_paths` are ignored
|
||||
unless :c:member:`PyConfig.module_search_paths_set` is set
|
|
@ -1,3 +0,0 @@
|
|||
Deprecate global configuration variable like
|
||||
:c:var:`Py_IgnoreEnvironmentFlag`: the :c:func:`Py_InitializeFromConfig` API
|
||||
should be instead. Patch by Victor Stinner.
|
|
@ -1,4 +0,0 @@
|
|||
Deprecate global configuration variables, like
|
||||
:c:var:`Py_IgnoreEnvironmentFlag`, in the documentation: the
|
||||
:c:func:`Py_InitializeFromConfig` API should be instead. Patch by Victor
|
||||
Stinner.
|
|
@ -1,2 +0,0 @@
|
|||
Fix C++ compiler warnings when casting function arguments to ``PyObject*``.
|
||||
Patch by Serge Guelton.
|
|
@ -1,3 +0,0 @@
|
|||
Slot IDs in PyType_Spec may not be repeated. The documentation was updated
|
||||
to mention this. For some cases of repeated slots, PyType_FromSpec and
|
||||
related functions will now raise an exception.
|
|
@ -1,3 +0,0 @@
|
|||
Add C++ overloads for _Py_CAST_impl() to handle 0/NULL. This will allow C++
|
||||
extensions that pass 0 or NULL to macros using _Py_CAST() to continue to
|
||||
compile.
|
|
@ -1,7 +0,0 @@
|
|||
Add two new public functions to the public C-API,
|
||||
:c:func:`PyEval_SetProfileAllThreads` and :c:func:`PyEval_SetTraceAllThreads`,
|
||||
that allow to set tracing and profiling functions in all running threads in
|
||||
addition to the calling one. Also, two analogous functions to the
|
||||
:mod:`threading` module (:func:`threading.setprofile_all_threads` and
|
||||
:func:`threading.settrace_all_threads`) that allow to do the same from Python.
|
||||
Patch by Pablo Galindo
|
|
@ -1,4 +0,0 @@
|
|||
:c:func:`PyType_FromMetaclass` (and other ``PyType_From*`` functions) now
|
||||
check that offsets and the base class's
|
||||
:c:member:`~PyTypeObject.tp_basicsize` fit in the new class's
|
||||
``tp_basicsize``.
|
|
@ -1,3 +0,0 @@
|
|||
Avoid defining the ``static_assert`` when compiling with C++ 11, where this
|
||||
is a keyword and redefining it can lead to undefined behavior. Patch by
|
||||
Pablo Galindo
|
|
@ -1,2 +0,0 @@
|
|||
Fix the compatibility of the Python C API with C++ older than C++11. Patch by
|
||||
Victor Stinner.
|
|
@ -1,14 +0,0 @@
|
|||
The following frame functions and type are now directly available with
|
||||
``#include <Python.h>``, it's no longer needed to add ``#include
|
||||
<frameobject.h>``:
|
||||
|
||||
* :c:func:`PyFrame_Check`
|
||||
* :c:func:`PyFrame_GetBack`
|
||||
* :c:func:`PyFrame_GetBuiltins`
|
||||
* :c:func:`PyFrame_GetGenerator`
|
||||
* :c:func:`PyFrame_GetGlobals`
|
||||
* :c:func:`PyFrame_GetLasti`
|
||||
* :c:func:`PyFrame_GetLocals`
|
||||
* :c:type:`PyFrame_Type`
|
||||
|
||||
Patch by Victor Stinner.
|
|
@ -1,3 +0,0 @@
|
|||
Python again uses C-style casts for most casting operations when compiled
|
||||
with C++. This may trigger compiler warnings, if they are enabled with e.g.
|
||||
``-Wold-style-cast`` or ``-Wzero-as-null-pointer-constant`` options for ``g++``.
|
|
@ -1,2 +0,0 @@
|
|||
Fix ``SystemError`` raised when :c:func:`PyArg_ParseTupleAndKeywords` is
|
||||
used with ``#`` in ``(...)`` but without ``PY_SSIZE_T_CLEAN`` defined.
|
|
@ -1,3 +0,0 @@
|
|||
Added :c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars` and
|
||||
:c:func:`PyCode_GetFreevars` for accessing ``co_varnames``, ``co_cellvars``
|
||||
and ``co_freevars`` respectively via the C API.
|
|
@ -1,3 +0,0 @@
|
|||
Adds unstable C-API functions ``_PyObject_VisitManagedDict`` and
|
||||
``_PyObject_ClearManagedDict`` to allow C extensions to allow the VM to
|
||||
manage their object's dictionaries.
|
|
@ -1,2 +0,0 @@
|
|||
Creating :c:data:`immutable types <Py_TPFLAGS_IMMUTABLETYPE>` with mutable
|
||||
bases is deprecated and is planned to be disabled in Python 3.14.
|
|
@ -1,6 +0,0 @@
|
|||
The :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class
|
||||
when the class's :py:meth:`~object.__call__` method is reassigned. This
|
||||
makes vectorcall safe to use with mutable types (i.e. heap types without the
|
||||
:const:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` flag). Mutable types that do
|
||||
not override :c:member:`~PyTypeObject.tp_call` now inherit the
|
||||
:const:`Py_TPFLAGS_HAVE_VECTORCALL` flag.
|
|
@ -1,3 +0,0 @@
|
|||
Fix sign placement when specifying width or precision in
|
||||
:c:func:`PyUnicode_FromFormat` and :c:func:`PyUnicode_FromFormatV`.
|
||||
Patch by Philip Georgi.
|
|
@ -1,3 +0,0 @@
|
|||
API for implementing vectorcall (:c:data:`Py_TPFLAGS_HAVE_VECTORCALL`,
|
||||
:c:func:`PyVectorcall_NARGS` and :c:func:`PyVectorcall_Call`) was added to
|
||||
the limited API and stable ABI.
|
|
@ -1,2 +0,0 @@
|
|||
Support C extensions using managed dictionaries by setting the
|
||||
``Py_TPFLAGS_MANAGED_DICT`` flag.
|
|
@ -1,2 +0,0 @@
|
|||
Restore the 3.10 behavior for multiple inheritance of C extension classes
|
||||
that store their dictionary at the end of the struct.
|
|
@ -1,4 +0,0 @@
|
|||
An unrecognized format character in :c:func:`PyUnicode_FromFormat` and
|
||||
:c:func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`.
|
||||
In previous versions it caused all the rest of the format string to be
|
||||
copied as-is to the result string, and any extra arguments discarded.
|
|
@ -1,4 +0,0 @@
|
|||
Extensions classes that set ``tp_dictoffset`` and ``tp_weaklistoffset``
|
||||
lose the support for multiple inheritance, but are now safe. Extension
|
||||
classes should use :const:`Py_TPFLAGS_MANAGED_DICT` and
|
||||
:const:`Py_TPFLAGS_MANAGED_WEAKREF` instead.
|
|
@ -1,2 +0,0 @@
|
|||
Configuration for the :ref:`integer string conversion length limitation
|
||||
<int_max_str_digits>` now lives in the PyConfig C API struct.
|
|
@ -1 +0,0 @@
|
|||
Lazily create and cache ``co_`` attributes for better performance for code getters.
|
|
@ -1,2 +0,0 @@
|
|||
Add :c:func:`PyType_Watch` and related APIs to allow callbacks on
|
||||
:c:func:`PyType_Modified`.
|
|
@ -1,3 +0,0 @@
|
|||
The :c:func:`PyUnicode_FSDecoder` function no longer accepts bytes-like
|
||||
paths, like :class:`bytearray` and :class:`memoryview` types: only the exact
|
||||
:class:`bytes` type is accepted for bytes strings. Patch by Victor Stinner.
|
|
@ -1 +0,0 @@
|
|||
Document some places where an assignment expression needs parentheses.
|
|
@ -1,3 +0,0 @@
|
|||
Make ``--help`` output shorter by moving some info to the new
|
||||
``--help-env`` and ``--help-xoptions`` command-line options.
|
||||
Also add ``--help-all`` option to print complete usage.
|
|
@ -1 +0,0 @@
|
|||
Improve performance of repetition of :class:`list` and :class:`tuple` by using ``memcpy`` to copy data and performing the reference increments in one step.
|
|
@ -1 +0,0 @@
|
|||
Updates the error message for abstract class.
|
|
@ -1 +0,0 @@
|
|||
Removed duplicate '{0, 0, 0, 0, 0, 0}' entry in 'Objects/unicodetype_db.h'.
|
|
@ -1 +0,0 @@
|
|||
Specialized the :opcode:`FOR_ITER` opcode using the PEP 659 machinery
|
|
@ -1 +0,0 @@
|
|||
Fix hang when trying to iterate over a ``typing.Union``.
|
|
@ -1,2 +0,0 @@
|
|||
The deprecated debug build only ``PYTHONTHREADDEBUG`` environment variable
|
||||
no longer does anything.
|
|
@ -1 +0,0 @@
|
|||
Make the compiler duplicate an exit block only if none of its instructions have a lineno (previously only the first instruction in the block was checked, leading to unnecessarily duplicated blocks).
|
|
@ -1 +0,0 @@
|
|||
:meth:`_warnings.warn_explicit` is ported to Argument Clinic.
|
|
@ -1,2 +0,0 @@
|
|||
Remove spurious "LINE" event when starting a generator or coroutine, visible
|
||||
tracing functions implemented in C.
|
|
@ -1 +0,0 @@
|
|||
Add support for connecting and binding to Hyper-V sockets on Windows Hyper-V hosts and guests.
|
|
@ -1 +0,0 @@
|
|||
Specialize ``LOAD_METHOD`` for objects with lazy dictionaries. Patch by Ken Jin.
|
|
@ -1 +0,0 @@
|
|||
Fix memory leak in ``memoryview`` iterator as it was not finalized at exit. Patch by Kumar Aditya.
|
|
@ -1 +0,0 @@
|
|||
Decrease default recursion limit on WASI to address limited call stack size.
|
|
@ -1 +0,0 @@
|
|||
Improve error message for some suites with syntax error before ':'
|
|
@ -1 +0,0 @@
|
|||
Always round the allocated size for lists up to the nearest even number.
|
|
@ -1,2 +0,0 @@
|
|||
The PRECALL instruction has been removed. It offered only a small advantage
|
||||
for specialization and is not needed in the vast majority of cases.
|
|
@ -1 +0,0 @@
|
|||
Fixed a crash in ``_pickle.c`` from mutating collections during ``__reduce__`` or ``persistent_id``.
|
|
@ -1 +0,0 @@
|
|||
Fix memory leak in code object's lines and positions iterators as they were not finalized at exit. Patch by Kumar Aditya.
|
|
@ -1,2 +0,0 @@
|
|||
The operand of the ``YIELD_VALUE`` instruction is set to the stack depth.
|
||||
This is done to help frame handling on ``yield`` and may assist debuggers.
|
|
@ -1,2 +0,0 @@
|
|||
Fix the :attr:`__text_signature__` for :meth:`__get__` methods implemented
|
||||
in C. Patch by Jelle Zijlstra.
|
|
@ -1,8 +0,0 @@
|
|||
Added the new function :c:func:`PyType_FromMetaclass`, which generalizes the
|
||||
existing :c:func:`PyType_FromModuleAndSpec` using an additional metaclass
|
||||
argument. This is useful for language binding tools, where it can be used to
|
||||
intercept type-related operations like subclassing or static attribute access
|
||||
by specifying a metaclass with custom slots.
|
||||
|
||||
Importantly, :c:func:`PyType_FromMetaclass` is available in the Limited API,
|
||||
which provides a path towards migrating more binding tools onto the Stable ABI.
|
|
@ -1,5 +0,0 @@
|
|||
Fix contextvars HAMT implementation to handle iteration over deep trees.
|
||||
|
||||
The bug was discovered and fixed by Eli Libman. See
|
||||
`MagicStack/immutables#84 <https://github.com/MagicStack/immutables/issues/84>`_
|
||||
for more details.
|
|
@ -1 +0,0 @@
|
|||
Backward jumps after ``async for`` loops are no longer given dubious line numbers.
|
|
@ -1 +0,0 @@
|
|||
Avoid ``NULL`` checks for uninitialized local variables by determining at compile time which variables must be initialized.
|
|
@ -1 +0,0 @@
|
|||
Wraps unused parameters in ``Objects/obmalloc.c`` with ``Py_UNUSED``.
|
|
@ -1,2 +0,0 @@
|
|||
Fix ``__lltrace__`` debug feature if the stdout encoding is not UTF-8. Patch
|
||||
by Victor Stinner.
|
|
@ -1,2 +0,0 @@
|
|||
The ``--experimental-isolated-subinterpreters`` configure option and
|
||||
``EXPERIMENTAL_ISOLATED_SUBINTERPRETERS`` macro have been removed.
|
|
@ -1 +0,0 @@
|
|||
When a bytecode instruction jumps to an unconditional jump instruction, the first instruction can often be optimized to target the unconditional jump's target directly. For tracing reasons, this would previously only occur if both instructions have the same line number. This also now occurs if the unconditional jump is artificial, i.e., if it has no associated line number.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue