0
0
mirror of https://github.com/python/cpython.git synced 2024-11-21 12:59:38 +01:00

Python 3.14.0a2

This commit is contained in:
Hugo van Kemenade 2024-11-19 16:51:57 +02:00
parent 4d771977b1
commit add43c3420
184 changed files with 2085 additions and 618 deletions

View File

@ -590,7 +590,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
return ``1`` when it's positive and ``0`` otherwise. Else set an return ``1`` when it's positive and ``0`` otherwise. Else set an
exception and return ``-1``. exception and return ``-1``.
.. versionadded:: next .. versionadded:: 3.14
.. c:function:: int PyLong_IsNegative(PyObject *obj) .. c:function:: int PyLong_IsNegative(PyObject *obj)
@ -601,7 +601,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
return ``1`` when it's negative and ``0`` otherwise. Else set an return ``1`` when it's negative and ``0`` otherwise. Else set an
exception and return ``-1``. exception and return ``-1``.
.. versionadded:: next .. versionadded:: 3.14
.. c:function:: int PyLong_IsZero(PyObject *obj) .. c:function:: int PyLong_IsZero(PyObject *obj)
@ -612,7 +612,7 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
return ``1`` when it's zero and ``0`` otherwise. Else set an return ``1`` when it's zero and ``0`` otherwise. Else set an
exception and return ``-1``. exception and return ``-1``.
.. versionadded:: next .. versionadded:: 3.14
.. c:function:: PyObject* PyLong_GetInfo(void) .. c:function:: PyObject* PyLong_GetInfo(void)

View File

@ -597,5 +597,5 @@ Object Protocol
This function is intended to be used soon after *obj* is created, This function is intended to be used soon after *obj* is created,
by the code that creates it. by the code that creates it.
.. versionadded:: next .. versionadded:: 3.14

View File

@ -690,7 +690,7 @@ Exception classes
of a :class:`~concurrent.futures.InterpreterPoolExecutor` of a :class:`~concurrent.futures.InterpreterPoolExecutor`
has failed initializing. has failed initializing.
.. versionadded:: next .. versionadded:: 3.14
.. exception:: ExecutionFailed .. exception:: ExecutionFailed
@ -699,7 +699,7 @@ Exception classes
:meth:`~concurrent.futures.Executor.submit` when there's an uncaught :meth:`~concurrent.futures.Executor.submit` when there's an uncaught
exception from the submitted task. exception from the submitted task.
.. versionadded:: next .. versionadded:: 3.14
.. currentmodule:: concurrent.futures.process .. currentmodule:: concurrent.futures.process

View File

@ -481,7 +481,7 @@ The :mod:`functools` module defines the following functions:
See :func:`itertools.accumulate` for an iterator that yields all intermediate See :func:`itertools.accumulate` for an iterator that yields all intermediate
values. values.
.. versionchanged:: next .. versionchanged:: 3.14
*initial* is now supported as a keyword argument. *initial* is now supported as a keyword argument.
.. decorator:: singledispatch .. decorator:: singledispatch

View File

@ -67,7 +67,7 @@ this module. The following types are supported:
* Added format version 4, which supports efficient representations * Added format version 4, which supports efficient representations
of short strings. of short strings.
.. versionchanged:: next .. versionchanged:: 3.14
Added format version 5, which allows marshalling slices. Added format version 5, which allows marshalling slices.

View File

@ -261,7 +261,7 @@ process and user.
:data:`os.environ` or :data:`os.environb`, or calling :func:`os.getenv` :data:`os.environ` or :data:`os.environb`, or calling :func:`os.getenv`
while reloading, may return an empty result. while reloading, may return an empty result.
.. versionadded:: next .. versionadded:: 3.14
.. function:: chdir(path) .. function:: chdir(path)

View File

@ -3889,7 +3889,7 @@ copying.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
memoryviews can now be indexed with tuple of integers. memoryviews can now be indexed with tuple of integers.
.. versionchanged:: next .. versionchanged:: 3.14
memoryview is now a :term:`generic type`. memoryview is now a :term:`generic type`.
:class:`memoryview` has several methods: :class:`memoryview` has several methods:

View File

@ -944,7 +944,7 @@ always available.
This function should be used for specialized purposes only. This function should be used for specialized purposes only.
It is not guaranteed to exist in all implementations of Python. It is not guaranteed to exist in all implementations of Python.
.. versionchanged:: next .. versionchanged:: 3.14
The result may include objects from other interpreters. The result may include objects from other interpreters.

View File

@ -84,11 +84,11 @@ The following exceptions are available:
The column corresponding to *pos*. The column corresponding to *pos*.
.. versionchanged:: next .. versionchanged:: 3.14
Added the *msg*, *doc* and *pos* parameters. Added the *msg*, *doc* and *pos* parameters.
Added the :attr:`msg`, :attr:`doc`, :attr:`pos`, :attr:`lineno` and :attr:`colno` attributes. Added the :attr:`msg`, :attr:`doc`, :attr:`pos`, :attr:`lineno` and :attr:`colno` attributes.
.. deprecated:: next .. deprecated:: 3.14
Passing free-form positional arguments is deprecated. Passing free-form positional arguments is deprecated.

View File

@ -153,7 +153,7 @@ which relays any information about the UUID's safety, using this enumeration:
The UUID version number (1 through 8, meaningful only when the variant is The UUID version number (1 through 8, meaningful only when the variant is
:const:`RFC_4122`). :const:`RFC_4122`).
.. versionchanged:: next .. versionchanged:: 3.14
Added UUID version 8. Added UUID version 8.
@ -233,7 +233,7 @@ The :mod:`uuid` module defines the following functions:
non-specified arguments are substituted for a pseudo-random integer of non-specified arguments are substituted for a pseudo-random integer of
appropriate size. appropriate size.
.. versionadded:: next .. versionadded:: 3.14
.. index:: single: uuid8 .. index:: single: uuid8
@ -323,7 +323,7 @@ The following options are accepted:
Specify the function name to use to generate the uuid. By default :func:`uuid4` Specify the function name to use to generate the uuid. By default :func:`uuid4`
is used. is used.
.. versionadded:: next .. versionadded:: 3.14
Allow generating UUID version 8. Allow generating UUID version 8.
.. option:: -n <namespace> .. option:: -n <namespace>

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 14 #define PY_MINOR_VERSION 14
#define PY_MICRO_VERSION 0 #define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 1 #define PY_RELEASE_SERIAL 2
/* Version as a string */ /* Version as a string */
#define PY_VERSION "3.14.0a1+" #define PY_VERSION "3.14.0a2"
/*--end constants--*/ /*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Oct 15 22:34:02 2024 # Autogenerated by Sphinx on Tue Nov 19 16:52:22 2024
# as part of the release process. # as part of the release process.
topics = {'assert': 'The "assert" statement\n' topics = {'assert': 'The "assert" statement\n'
'**********************\n' '**********************\n'
@ -29,13 +29,12 @@ topics = {'assert': 'The "assert" statement\n'
'(command\n' '(command\n'
'line option "-O"). The current code generator emits no code for ' 'line option "-O"). The current code generator emits no code for '
'an\n' 'an\n'
'assert statement when optimization is requested at compile time. ' '"assert" statement when optimization is requested at compile '
'Note\n' 'time.\n'
'that it is unnecessary to include the source code for the ' 'Note that it is unnecessary to include the source code for the\n'
'expression\n' 'expression that failed in the error message; it will be displayed '
'that failed in the error message; it will be displayed as part of ' 'as\n'
'the\n' 'part of the stack trace.\n'
'stack trace.\n'
'\n' '\n'
'Assignments to "__debug__" are illegal. The value for the ' 'Assignments to "__debug__" are illegal. The value for the '
'built-in\n' 'built-in\n'
@ -713,7 +712,8 @@ topics = {'assert': 'The "assert" statement\n'
'should either\n' 'should either\n'
' return the (computed) attribute value or raise an ' ' return the (computed) attribute value or raise an '
'"AttributeError"\n' '"AttributeError"\n'
' exception.\n' ' exception. The "object" class itself does not provide '
'this method.\n'
'\n' '\n'
' Note that if the attribute is found through the ' ' Note that if the attribute is found through the '
'normal mechanism,\n' 'normal mechanism,\n'
@ -896,7 +896,9 @@ topics = {'assert': 'The "assert" statement\n'
'parents). In the\n' 'parents). In the\n'
'examples below, “the attribute” refers to the attribute ' 'examples below, “the attribute” refers to the attribute '
'whose name is\n' 'whose name is\n'
'the key of the property in the owner class "__dict__".\n' 'the key of the property in the owner class "__dict__". '
'The "object"\n'
'class itself does not implement any of these protocols.\n'
'\n' '\n'
'object.__get__(self, instance, owner=None)\n' 'object.__get__(self, instance, owner=None)\n'
'\n' '\n'
@ -1569,7 +1571,9 @@ topics = {'assert': 'The "assert" statement\n'
' Called when the instance is “called” as a function; if ' ' Called when the instance is “called” as a function; if '
'this method\n' 'this method\n'
' is defined, "x(arg1, arg2, ...)" roughly translates to\n' ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
' "type(x).__call__(x, arg1, ...)".\n', ' "type(x).__call__(x, arg1, ...)". The "object" class '
'itself does\n'
' not provide this method.\n',
'calls': 'Calls\n' 'calls': 'Calls\n'
'*****\n' '*****\n'
'\n' '\n'
@ -1754,6 +1758,9 @@ topics = {'assert': 'The "assert" statement\n'
' Function definitions. When the code block executes a "return"\n' ' Function definitions. When the code block executes a "return"\n'
' statement, this specifies the return value of the function ' ' statement, this specifies the return value of the function '
'call.\n' 'call.\n'
' If execution reaches the end of the code block without executing '
'a\n'
' "return" statement, the return value is "None".\n'
'\n' '\n'
'a built-in function or method:\n' 'a built-in function or method:\n'
' The result is up to the interpreter; see Built-in Functions for ' ' The result is up to the interpreter; see Built-in Functions for '
@ -2802,18 +2809,15 @@ topics = {'assert': 'The "assert" statement\n'
' enter = type(manager).__enter__\n' ' enter = type(manager).__enter__\n'
' exit = type(manager).__exit__\n' ' exit = type(manager).__exit__\n'
' value = enter(manager)\n' ' value = enter(manager)\n'
' hit_except = False\n'
'\n' '\n'
' try:\n' ' try:\n'
' TARGET = value\n' ' TARGET = value\n'
' SUITE\n' ' SUITE\n'
' except:\n' ' except:\n'
' hit_except = True\n'
' if not exit(manager, *sys.exc_info()):\n' ' if not exit(manager, *sys.exc_info()):\n'
' raise\n' ' raise\n'
' finally:\n' ' else:\n'
' if not hit_except:\n' ' exit(manager, None, None, None)\n'
' exit(manager, None, None, None)\n'
'\n' '\n'
'With more than one item, the context managers are processed as ' 'With more than one item, the context managers are processed as '
'if\n' 'if\n'
@ -4495,6 +4499,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'For more information on context managers, see Context ' 'For more information on context managers, see Context '
'Manager Types.\n' 'Manager Types.\n'
'The "object" class itself does not provide the context '
'manager\n'
'methods.\n'
'\n' '\n'
'object.__enter__(self)\n' 'object.__enter__(self)\n'
'\n' '\n'
@ -4764,17 +4771,20 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' This is typically used for debugging, so it is important ' ' This is typically used for debugging, so it is important '
'that the\n' 'that the\n'
' representation is information-rich and unambiguous.\n' ' representation is information-rich and unambiguous. A '
'default\n'
' implementation is provided by the "object" class '
'itself.\n'
'\n' '\n'
'object.__str__(self)\n' 'object.__str__(self)\n'
'\n' '\n'
' Called by "str(object)" and the built-in functions ' ' Called by "str(object)", the default "__format__()" '
'"format()" and\n' 'implementation,\n'
' "print()" to compute the “informal” or nicely printable ' ' and the built-in function "print()", to compute the '
'string\n' '“informal” or\n'
' representation of an object. The return value must be a ' ' nicely printable string representation of an object. '
'string\n' 'The return\n'
' object.\n' ' value must be a str object.\n'
'\n' '\n'
' This method differs from "object.__repr__()" in that ' ' This method differs from "object.__repr__()" in that '
'there is no\n' 'there is no\n'
@ -4790,7 +4800,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' Called by bytes to compute a byte-string representation ' ' Called by bytes to compute a byte-string representation '
'of an\n' 'of an\n'
' object. This should return a "bytes" object.\n' ' object. This should return a "bytes" object. The '
'"object" class\n'
' itself does not provide this method.\n'
'\n' '\n'
'object.__format__(self, format_spec)\n' 'object.__format__(self, format_spec)\n'
'\n' '\n'
@ -4818,6 +4830,11 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' The return value must be a string object.\n' ' The return value must be a string object.\n'
'\n' '\n'
' The default implementation by the "object" class should '
'be given an\n'
' empty *format_spec* string. It delegates to '
'"__str__()".\n'
'\n'
' Changed in version 3.4: The __format__ method of ' ' Changed in version 3.4: The __format__ method of '
'"object" itself\n' '"object" itself\n'
' raises a "TypeError" if passed any non-empty string.\n' ' raises a "TypeError" if passed any non-empty string.\n'
@ -4875,6 +4892,16 @@ topics = {'assert': 'The "assert" statement\n'
' ordering operations from a single root operation, see\n' ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n' ' "functools.total_ordering()".\n'
'\n' '\n'
' By default, the "object" class provides implementations '
'consistent\n'
' with Value comparisons: equality compares according to '
'object\n'
' identity, and order comparisons raise "TypeError". Each '
'default\n'
' method may generate these results directly, but may also '
'return\n'
' "NotImplemented".\n'
'\n'
' See the paragraph on "__hash__()" for some important ' ' See the paragraph on "__hash__()" for some important '
'notes on\n' 'notes on\n'
' creating *hashable* objects which support custom ' ' creating *hashable* objects which support custom '
@ -4961,12 +4988,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' User-defined classes have "__eq__()" and "__hash__()" ' ' User-defined classes have "__eq__()" and "__hash__()" '
'methods by\n' 'methods by\n'
' default; with them, all objects compare unequal (except ' ' default (inherited from the "object" class); with them, '
'with\n' 'all objects\n'
' themselves) and "x.__hash__()" returns an appropriate ' ' compare unequal (except with themselves) and '
'value such\n' '"x.__hash__()" returns\n'
' that "x == y" implies both that "x is y" and "hash(x) == ' ' an appropriate value such that "x == y" implies both '
'hash(y)".\n' 'that "x is y"\n'
' and "hash(x) == hash(y)".\n'
'\n' '\n'
' A class that overrides "__eq__()" and does not define ' ' A class that overrides "__eq__()" and does not define '
'"__hash__()"\n' '"__hash__()"\n'
@ -5037,9 +5065,9 @@ topics = {'assert': 'The "assert" statement\n'
'the object is\n' 'the object is\n'
' considered true if its result is nonzero. If a class ' ' considered true if its result is nonzero. If a class '
'defines\n' 'defines\n'
' neither "__len__()" nor "__bool__()", all its instances ' ' neither "__len__()" nor "__bool__()" (which is true of '
'are\n' 'the "object"\n'
' considered true.\n', ' class itself), all its instances are considered true.\n',
'debugger': '"pdb" — The Python Debugger\n' 'debugger': '"pdb" — The Python Debugger\n'
'***************************\n' '***************************\n'
'\n' '\n'
@ -7038,10 +7066,12 @@ topics = {'assert': 'The "assert" statement\n'
'printing fields |\n' 'printing fields |\n'
'| | in the form +000000120. This alignment ' '| | in the form +000000120. This alignment '
'option is only |\n' 'option is only |\n'
'| | valid for numeric types. It becomes the ' '| | valid for numeric types, excluding "complex". '
'default for |\n' 'It becomes |\n'
'| | numbers when 0 immediately precedes the ' '| | the default for numbers when 0 immediately '
'field width. |\n' 'precedes the |\n'
'| | field '
'width. |\n'
'+-----------+------------------------------------------------------------+\n' '+-----------+------------------------------------------------------------+\n'
'| "\'^\'" | Forces the field to be centered within the ' '| "\'^\'" | Forces the field to be centered within the '
'available |\n' 'available |\n'
@ -7148,9 +7178,9 @@ topics = {'assert': 'The "assert" statement\n'
'field by a\n' 'field by a\n'
'zero ("\'0\'") character enables sign-aware zero-padding ' 'zero ("\'0\'") character enables sign-aware zero-padding '
'for numeric\n' 'for numeric\n'
'types. This is equivalent to a *fill* character of "\'0\'" ' 'types, excluding "complex". This is equivalent to a *fill* '
'with an\n' 'character\n'
'*alignment* type of "\'=\'".\n' 'of "\'0\'" with an *alignment* type of "\'=\'".\n'
'\n' '\n'
'Changed in version 3.10: Preceding the *width* field by ' 'Changed in version 3.10: Preceding the *width* field by '
'"\'0\'" no\n' '"\'0\'" no\n'
@ -7416,6 +7446,32 @@ topics = {'assert': 'The "assert" statement\n'
' ' ' '
'+-----------+------------------------------------------------------------+\n' '+-----------+------------------------------------------------------------+\n'
'\n' '\n'
'The result should be correctly rounded to a given precision '
'"p" of\n'
'digits after the decimal point. The rounding mode for '
'"float" matches\n'
'that of the "round()" builtin. For "Decimal", the rounding '
'mode of\n'
'the current context will be used.\n'
'\n'
'The available presentation types for "complex" are the same '
'as those\n'
'for "float" ("\'%\'" is not allowed). Both the real and '
'imaginary\n'
'components of a complex number are formatted as '
'floating-point\n'
'numbers, according to the specified presentation type. '
'They are\n'
'separated by the mandatory sign of the imaginary part, the '
'latter\n'
'being terminated by a "j" suffix. If the presentation type '
'is\n'
'missing, the result will match the output of "str()" '
'(complex numbers\n'
'with a non-zero real part are also surrounded by '
'parentheses),\n'
'possibly altered by other format modifiers.\n'
'\n'
'\n' '\n'
'Format examples\n' 'Format examples\n'
'===============\n' '===============\n'
@ -7800,33 +7856,17 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' global_stmt ::= "global" identifier ("," identifier)*\n' ' global_stmt ::= "global" identifier ("," identifier)*\n'
'\n' '\n'
'The "global" statement is a declaration which holds for the ' 'The "global" statement causes the listed identifiers to be '
'entire\n' 'interpreted\n'
'current code block. It means that the listed identifiers are to ' 'as globals. It would be impossible to assign to a global variable\n'
'be\n' 'without "global", although free variables may refer to globals '
'interpreted as globals. It would be impossible to assign to a ' 'without\n'
'global\n' 'being declared global.\n'
'variable without "global", although free variables may refer to\n'
'globals without being declared global.\n'
'\n' '\n'
'Names listed in a "global" statement must not be used in the same ' 'The "global" statement applies to the entire scope of a function '
'code\n' 'or\n'
'block textually preceding that "global" statement.\n' 'class body. A "SyntaxError" is raised if a variable is used or\n'
'\n' 'assigned to prior to its global declaration in the scope.\n'
'Names listed in a "global" statement must not be defined as '
'formal\n'
'parameters, or as targets in "with" statements or "except" '
'clauses, or\n'
'in a "for" target list, "class" definition, function definition,\n'
'"import" statement, or *variable annotations*.\n'
'\n'
'**CPython implementation detail:** The current implementation does '
'not\n'
'enforce some of these restrictions, but programs should not abuse '
'this\n'
'freedom, as future implementations may enforce them or silently '
'change\n'
'the meaning of the program.\n'
'\n' '\n'
'**Programmers note:** "global" is a directive to the parser. It\n' '**Programmers note:** "global" is a directive to the parser. It\n'
'applies only to code parsed at the same time as the "global"\n' 'applies only to code parsed at the same time as the "global"\n'
@ -8896,8 +8936,8 @@ topics = {'assert': 'The "assert" statement\n'
'scope,\n' 'scope,\n'
'or if there is no nonlocal scope, a "SyntaxError" is raised.\n' 'or if there is no nonlocal scope, a "SyntaxError" is raised.\n'
'\n' '\n'
'The nonlocal statement applies to the entire scope of a function ' 'The "nonlocal" statement applies to the entire scope of a '
'or\n' 'function or\n'
'class body. A "SyntaxError" is raised if a variable is used or\n' 'class body. A "SyntaxError" is raised if a variable is used or\n'
'assigned to prior to its nonlocal declaration in the scope.\n' 'assigned to prior to its nonlocal declaration in the scope.\n'
'\n' '\n'
@ -8996,17 +9036,21 @@ topics = {'assert': 'The "assert" statement\n'
'"divmod()",\n' '"divmod()",\n'
' "pow()", "**", "<<", ">>", "&", "^", "|") with reflected ' ' "pow()", "**", "<<", ">>", "&", "^", "|") with reflected '
'(swapped)\n' '(swapped)\n'
' operands. These functions are only called if the left ' ' operands. These functions are only called if the '
'operand does\n'
' not support the corresponding operation [3] and the '
'operands are of\n' 'operands are of\n'
' different types. [4] For instance, to evaluate the ' ' different types, when the left operand does not support '
'expression "x -\n' 'the\n'
' y", where *y* is an instance of a class that has an ' ' corresponding operation [3], or the right operands '
'"__rsub__()"\n' 'class is\n'
' method, "type(y).__rsub__(y, x)" is called if ' ' derived from the left operands class. [4] For instance, '
'"type(x).__sub__(x,\n' 'to\n'
' y)" returns "NotImplemented".\n' ' evaluate the expression "x - y", where *y* is an '
'instance of a\n'
' class that has an "__rsub__()" method, '
'"type(y).__rsub__(y, x)" is\n'
' called if "type(x).__sub__(x, y)" returns '
'"NotImplemented" or\n'
' "type(y)" is a subclass of "type(x)". [5]\n'
'\n' '\n'
' Note that ternary "pow()" will not try calling ' ' Note that ternary "pow()" will not try calling '
'"__rpow__()" (the\n' '"__rpow__()" (the\n'
@ -9651,56 +9695,58 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'The following methods can be defined to implement ' 'The following methods can be defined to implement '
'container objects.\n' 'container objects.\n'
'Containers usually are *sequences* (such as "lists" or ' 'None of them are provided by the "object" class itself. '
'"tuples") or\n' 'Containers\n'
'*mappings* (like "dictionaries"), but can represent other ' 'usually are *sequences* (such as "lists" or "tuples") or '
'containers\n' '*mappings*\n'
'as well. The first set of methods is used either to ' '(like *dictionaries*), but can represent other containers '
'emulate a\n' 'as well.\n'
'sequence or to emulate a mapping; the difference is that ' 'The first set of methods is used either to emulate a '
'for a\n' 'sequence or to\n'
'sequence, the allowable keys should be the integers *k* ' 'emulate a mapping; the difference is that for a sequence, '
'for which "0\n' 'the\n'
'<= k < N" where *N* is the length of the sequence, or ' 'allowable keys should be the integers *k* for which "0 <= '
'"slice" objects,\n' 'k < N" where\n'
'which define a range of items. It is also recommended ' '*N* is the length of the sequence, or "slice" objects, '
'that mappings\n' 'which define a\n'
'provide the methods "keys()", "values()", "items()", ' 'range of items. It is also recommended that mappings '
'"get()",\n' 'provide the\n'
'"clear()", "setdefault()", "pop()", "popitem()", "copy()", ' 'methods "keys()", "values()", "items()", "get()", '
'"clear()",\n'
'"setdefault()", "pop()", "popitem()", "copy()", and '
'"update()"\n'
'behaving similar to those for Pythons standard '
'"dictionary" objects.\n'
'The "collections.abc" module provides a "MutableMapping" '
'*abstract\n'
'base class* to help create those methods from a base set '
'of\n'
'"__getitem__()", "__setitem__()", "__delitem__()", and '
'"keys()".\n'
'Mutable sequences should provide methods "append()", '
'"count()",\n'
'"index()", "extend()", "insert()", "pop()", "remove()", '
'"reverse()"\n'
'and "sort()", like Python standard "list" objects. '
'Finally, sequence\n'
'types should implement addition (meaning concatenation) '
'and\n' 'and\n'
'"update()" behaving similar to those for Pythons ' 'multiplication (meaning repetition) by defining the '
'standard\n' 'methods\n'
'"dictionary" objects. The "collections.abc" module ' '"__add__()", "__radd__()", "__iadd__()", "__mul__()", '
'provides a\n' '"__rmul__()" and\n'
'"MutableMapping" *abstract base class* to help create ' '"__imul__()" described below; they should not define other '
'those methods\n' 'numerical\n'
'from a base set of "__getitem__()", "__setitem__()", ' 'operators. It is recommended that both mappings and '
'"__delitem__()",\n' 'sequences\n'
'and "keys()". Mutable sequences should provide methods ' 'implement the "__contains__()" method to allow efficient '
'"append()",\n' 'use of the\n'
'"count()", "index()", "extend()", "insert()", "pop()", ' '"in" operator; for mappings, "in" should search the '
'"remove()",\n' 'mappings keys;\n'
'"reverse()" and "sort()", like Python standard "list" ' 'for sequences, it should search through the values. It is '
'objects.\n' 'further\n'
'Finally, sequence types should implement addition ' 'recommended that both mappings and sequences implement '
'(meaning\n' 'the\n'
'concatenation) and multiplication (meaning repetition) by '
'defining the\n'
'methods "__add__()", "__radd__()", "__iadd__()", '
'"__mul__()",\n'
'"__rmul__()" and "__imul__()" described below; they should '
'not define\n'
'other numerical operators. It is recommended that both '
'mappings and\n'
'sequences implement the "__contains__()" method to allow '
'efficient use\n'
'of the "in" operator; for mappings, "in" should search the '
'mappings\n'
'keys; for sequences, it should search through the values. '
'It is\n'
'further recommended that both mappings and sequences '
'implement the\n'
'"__iter__()" method to allow efficient iteration through ' '"__iter__()" method to allow efficient iteration through '
'the\n' 'the\n'
'container; for mappings, "__iter__()" should iterate ' 'container; for mappings, "__iter__()" should iterate '
@ -10240,17 +10286,19 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' This is typically used for debugging, so it is important ' ' This is typically used for debugging, so it is important '
'that the\n' 'that the\n'
' representation is information-rich and unambiguous.\n' ' representation is information-rich and unambiguous. A '
'default\n'
' implementation is provided by the "object" class itself.\n'
'\n' '\n'
'object.__str__(self)\n' 'object.__str__(self)\n'
'\n' '\n'
' Called by "str(object)" and the built-in functions ' ' Called by "str(object)", the default "__format__()" '
'"format()" and\n' 'implementation,\n'
' "print()" to compute the “informal” or nicely printable ' ' and the built-in function "print()", to compute the '
'string\n' '“informal” or\n'
' representation of an object. The return value must be a ' ' nicely printable string representation of an object. The '
'string\n' 'return\n'
' object.\n' ' value must be a str object.\n'
'\n' '\n'
' This method differs from "object.__repr__()" in that ' ' This method differs from "object.__repr__()" in that '
'there is no\n' 'there is no\n'
@ -10266,7 +10314,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' Called by bytes to compute a byte-string representation ' ' Called by bytes to compute a byte-string representation '
'of an\n' 'of an\n'
' object. This should return a "bytes" object.\n' ' object. This should return a "bytes" object. The "object" '
'class\n'
' itself does not provide this method.\n'
'\n' '\n'
'object.__format__(self, format_spec)\n' 'object.__format__(self, format_spec)\n'
'\n' '\n'
@ -10294,6 +10344,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' The return value must be a string object.\n' ' The return value must be a string object.\n'
'\n' '\n'
' The default implementation by the "object" class should '
'be given an\n'
' empty *format_spec* string. It delegates to "__str__()".\n'
'\n'
' Changed in version 3.4: The __format__ method of "object" ' ' Changed in version 3.4: The __format__ method of "object" '
'itself\n' 'itself\n'
' raises a "TypeError" if passed any non-empty string.\n' ' raises a "TypeError" if passed any non-empty string.\n'
@ -10351,6 +10405,16 @@ topics = {'assert': 'The "assert" statement\n'
' ordering operations from a single root operation, see\n' ' ordering operations from a single root operation, see\n'
' "functools.total_ordering()".\n' ' "functools.total_ordering()".\n'
'\n' '\n'
' By default, the "object" class provides implementations '
'consistent\n'
' with Value comparisons: equality compares according to '
'object\n'
' identity, and order comparisons raise "TypeError". Each '
'default\n'
' method may generate these results directly, but may also '
'return\n'
' "NotImplemented".\n'
'\n'
' See the paragraph on "__hash__()" for some important ' ' See the paragraph on "__hash__()" for some important '
'notes on\n' 'notes on\n'
' creating *hashable* objects which support custom ' ' creating *hashable* objects which support custom '
@ -10436,12 +10500,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' User-defined classes have "__eq__()" and "__hash__()" ' ' User-defined classes have "__eq__()" and "__hash__()" '
'methods by\n' 'methods by\n'
' default; with them, all objects compare unequal (except ' ' default (inherited from the "object" class); with them, '
'with\n' 'all objects\n'
' themselves) and "x.__hash__()" returns an appropriate ' ' compare unequal (except with themselves) and '
'value such\n' '"x.__hash__()" returns\n'
' that "x == y" implies both that "x is y" and "hash(x) == ' ' an appropriate value such that "x == y" implies both that '
'hash(y)".\n' '"x is y"\n'
' and "hash(x) == hash(y)".\n'
'\n' '\n'
' A class that overrides "__eq__()" and does not define ' ' A class that overrides "__eq__()" and does not define '
'"__hash__()"\n' '"__hash__()"\n'
@ -10510,9 +10575,9 @@ topics = {'assert': 'The "assert" statement\n'
'object is\n' 'object is\n'
' considered true if its result is nonzero. If a class ' ' considered true if its result is nonzero. If a class '
'defines\n' 'defines\n'
' neither "__len__()" nor "__bool__()", all its instances ' ' neither "__len__()" nor "__bool__()" (which is true of '
'are\n' 'the "object"\n'
' considered true.\n' ' class itself), all its instances are considered true.\n'
'\n' '\n'
'\n' '\n'
'Customizing attribute access\n' 'Customizing attribute access\n'
@ -10536,7 +10601,8 @@ topics = {'assert': 'The "assert" statement\n'
'either\n' 'either\n'
' return the (computed) attribute value or raise an ' ' return the (computed) attribute value or raise an '
'"AttributeError"\n' '"AttributeError"\n'
' exception.\n' ' exception. The "object" class itself does not provide '
'this method.\n'
'\n' '\n'
' Note that if the attribute is found through the normal ' ' Note that if the attribute is found through the normal '
'mechanism,\n' 'mechanism,\n'
@ -10716,7 +10782,9 @@ topics = {'assert': 'The "assert" statement\n'
'parents). In the\n' 'parents). In the\n'
'examples below, “the attribute” refers to the attribute ' 'examples below, “the attribute” refers to the attribute '
'whose name is\n' 'whose name is\n'
'the key of the property in the owner class "__dict__".\n' 'the key of the property in the owner class "__dict__". The '
'"object"\n'
'class itself does not implement any of these protocols.\n'
'\n' '\n'
'object.__get__(self, instance, owner=None)\n' 'object.__get__(self, instance, owner=None)\n'
'\n' '\n'
@ -11599,7 +11667,9 @@ topics = {'assert': 'The "assert" statement\n'
' Called when the instance is “called” as a function; if ' ' Called when the instance is “called” as a function; if '
'this method\n' 'this method\n'
' is defined, "x(arg1, arg2, ...)" roughly translates to\n' ' is defined, "x(arg1, arg2, ...)" roughly translates to\n'
' "type(x).__call__(x, arg1, ...)".\n' ' "type(x).__call__(x, arg1, ...)". The "object" class '
'itself does\n'
' not provide this method.\n'
'\n' '\n'
'\n' '\n'
'Emulating container types\n' 'Emulating container types\n'
@ -11607,54 +11677,54 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'The following methods can be defined to implement container ' 'The following methods can be defined to implement container '
'objects.\n' 'objects.\n'
'Containers usually are *sequences* (such as "lists" or ' 'None of them are provided by the "object" class itself. '
'"tuples") or\n' 'Containers\n'
'*mappings* (like "dictionaries"), but can represent other ' 'usually are *sequences* (such as "lists" or "tuples") or '
'containers\n' '*mappings*\n'
'as well. The first set of methods is used either to emulate ' '(like *dictionaries*), but can represent other containers as '
'a\n' 'well.\n'
'sequence or to emulate a mapping; the difference is that for ' 'The first set of methods is used either to emulate a '
'a\n' 'sequence or to\n'
'sequence, the allowable keys should be the integers *k* for ' 'emulate a mapping; the difference is that for a sequence, '
'which "0\n' 'the\n'
'<= k < N" where *N* is the length of the sequence, or ' 'allowable keys should be the integers *k* for which "0 <= k '
'"slice" objects,\n' '< N" where\n'
'which define a range of items. It is also recommended that ' '*N* is the length of the sequence, or "slice" objects, which '
'mappings\n' 'define a\n'
'provide the methods "keys()", "values()", "items()", ' 'range of items. It is also recommended that mappings '
'"get()",\n' 'provide the\n'
'"clear()", "setdefault()", "pop()", "popitem()", "copy()", ' 'methods "keys()", "values()", "items()", "get()", '
'and\n' '"clear()",\n'
'"update()" behaving similar to those for Pythons standard\n' '"setdefault()", "pop()", "popitem()", "copy()", and '
'"dictionary" objects. The "collections.abc" module provides ' '"update()"\n'
'a\n' 'behaving similar to those for Pythons standard "dictionary" '
'"MutableMapping" *abstract base class* to help create those '
'methods\n'
'from a base set of "__getitem__()", "__setitem__()", '
'"__delitem__()",\n'
'and "keys()". Mutable sequences should provide methods '
'"append()",\n'
'"count()", "index()", "extend()", "insert()", "pop()", '
'"remove()",\n'
'"reverse()" and "sort()", like Python standard "list" '
'objects.\n' 'objects.\n'
'Finally, sequence types should implement addition (meaning\n' 'The "collections.abc" module provides a "MutableMapping" '
'concatenation) and multiplication (meaning repetition) by ' '*abstract\n'
'defining the\n' 'base class* to help create those methods from a base set of\n'
'methods "__add__()", "__radd__()", "__iadd__()", ' '"__getitem__()", "__setitem__()", "__delitem__()", and '
'"__mul__()",\n' '"keys()".\n'
'"__rmul__()" and "__imul__()" described below; they should ' 'Mutable sequences should provide methods "append()", '
'not define\n' '"count()",\n'
'other numerical operators. It is recommended that both ' '"index()", "extend()", "insert()", "pop()", "remove()", '
'mappings and\n' '"reverse()"\n'
'sequences implement the "__contains__()" method to allow ' 'and "sort()", like Python standard "list" objects. Finally, '
'efficient use\n' 'sequence\n'
'of the "in" operator; for mappings, "in" should search the ' 'types should implement addition (meaning concatenation) and\n'
'mappings\n' 'multiplication (meaning repetition) by defining the methods\n'
'keys; for sequences, it should search through the values. ' '"__add__()", "__radd__()", "__iadd__()", "__mul__()", '
'It is\n' '"__rmul__()" and\n'
'further recommended that both mappings and sequences ' '"__imul__()" described below; they should not define other '
'implement the\n' 'numerical\n'
'operators. It is recommended that both mappings and '
'sequences\n'
'implement the "__contains__()" method to allow efficient use '
'of the\n'
'"in" operator; for mappings, "in" should search the '
'mappings keys;\n'
'for sequences, it should search through the values. It is '
'further\n'
'recommended that both mappings and sequences implement the\n'
'"__iter__()" method to allow efficient iteration through ' '"__iter__()" method to allow efficient iteration through '
'the\n' 'the\n'
'container; for mappings, "__iter__()" should iterate through ' 'container; for mappings, "__iter__()" should iterate through '
@ -11913,17 +11983,21 @@ topics = {'assert': 'The "assert" statement\n'
'"divmod()",\n' '"divmod()",\n'
' "pow()", "**", "<<", ">>", "&", "^", "|") with reflected ' ' "pow()", "**", "<<", ">>", "&", "^", "|") with reflected '
'(swapped)\n' '(swapped)\n'
' operands. These functions are only called if the left ' ' operands. These functions are only called if the '
'operand does\n'
' not support the corresponding operation [3] and the '
'operands are of\n' 'operands are of\n'
' different types. [4] For instance, to evaluate the ' ' different types, when the left operand does not support '
'expression "x -\n' 'the\n'
' y", where *y* is an instance of a class that has an ' ' corresponding operation [3], or the right operands class '
'"__rsub__()"\n' 'is\n'
' method, "type(y).__rsub__(y, x)" is called if ' ' derived from the left operands class. [4] For instance, '
'"type(x).__sub__(x,\n' 'to\n'
' y)" returns "NotImplemented".\n' ' evaluate the expression "x - y", where *y* is an instance '
'of a\n'
' class that has an "__rsub__()" method, '
'"type(y).__rsub__(y, x)" is\n'
' called if "type(x).__sub__(x, y)" returns '
'"NotImplemented" or\n'
' "type(y)" is a subclass of "type(x)". [5]\n'
'\n' '\n'
' Note that ternary "pow()" will not try calling ' ' Note that ternary "pow()" will not try calling '
'"__rpow__()" (the\n' '"__rpow__()" (the\n'
@ -12066,6 +12140,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'For more information on context managers, see Context ' 'For more information on context managers, see Context '
'Manager Types.\n' 'Manager Types.\n'
'The "object" class itself does not provide the context '
'manager\n'
'methods.\n'
'\n' '\n'
'object.__enter__(self)\n' 'object.__enter__(self)\n'
'\n' '\n'
@ -14794,13 +14871,13 @@ topics = {'assert': 'The "assert" statement\n'
' modules created dynamically using the "types.ModuleType"\n' ' modules created dynamically using the "types.ModuleType"\n'
' constructor. Previously the attribute was optional.\n' ' constructor. Previously the attribute was optional.\n'
'\n' '\n'
' Deprecated since version 3.12, removed in version 3.14: Setting\n' ' Deprecated since version 3.12, will be removed in version 3.16:\n'
' "__loader__" on a module while failing to set "__spec__.loader" ' ' Setting "__loader__" on a module while failing to set\n'
'is\n' ' "__spec__.loader" is deprecated. In Python 3.16, "__loader__" '
' deprecated. In Python 3.14, "__loader__" will cease to be set ' 'will\n'
' cease to be set or taken into consideration by the import system '
'or\n' 'or\n'
' taken into consideration by the import system or the standard\n' ' the standard library.\n'
' library.\n'
'\n' '\n'
'module.__path__\n' 'module.__path__\n'
'\n' '\n'
@ -15311,7 +15388,7 @@ topics = {'assert': 'The "assert" statement\n'
'| | version ' '| | version '
'3.12: This attribute of code objects is |\n' '3.12: This attribute of code objects is |\n'
'| | deprecated, ' '| | deprecated, '
'and may be removed in Python 3.14. |\n' 'and may be removed in Python 3.15. |\n'
'+----------------------------------------------------+----------------------------------------------------+\n' '+----------------------------------------------------+----------------------------------------------------+\n'
'| codeobject.co_stacksize | The required ' '| codeobject.co_stacksize | The required '
'stack size of the code object |\n' 'stack size of the code object |\n'
@ -15345,10 +15422,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'Other bits in "co_flags" are reserved for internal use.\n' 'Other bits in "co_flags" are reserved for internal use.\n'
'\n' '\n'
'If a code object represents a function, the first item in ' 'If a code object represents a function and has a docstring, the '
'"co_consts"\n' 'first\n'
'is the documentation string of the function, or "None" if ' 'item in "co_consts" is the docstring of the function.\n'
'undefined.\n'
'\n' '\n'
'\n' '\n'
'Methods on code objects\n' 'Methods on code objects\n'
@ -15996,10 +16072,10 @@ topics = {'assert': 'The "assert" statement\n'
'"keys()" method\n' '"keys()" method\n'
' (in which case "__getitem__()" is called with every ' ' (in which case "__getitem__()" is called with every '
'key returned\n' 'key returned\n'
' from the method). or an iterable of key/value pairs ' ' from the method) or an iterable of key/value pairs (as '
'(as tuples\n' 'tuples or\n'
' or other iterables of length two). If keyword ' ' other iterables of length two). If keyword arguments '
'arguments are\n' 'are\n'
' specified, the dictionary is then updated with those ' ' specified, the dictionary is then updated with those '
'key/value\n' 'key/value\n'
' pairs: "d.update(red=1, blue=2)".\n' ' pairs: "d.update(red=1, blue=2)".\n'
@ -17310,18 +17386,15 @@ topics = {'assert': 'The "assert" statement\n'
' enter = type(manager).__enter__\n' ' enter = type(manager).__enter__\n'
' exit = type(manager).__exit__\n' ' exit = type(manager).__exit__\n'
' value = enter(manager)\n' ' value = enter(manager)\n'
' hit_except = False\n'
'\n' '\n'
' try:\n' ' try:\n'
' TARGET = value\n' ' TARGET = value\n'
' SUITE\n' ' SUITE\n'
' except:\n' ' except:\n'
' hit_except = True\n'
' if not exit(manager, *sys.exc_info()):\n' ' if not exit(manager, *sys.exc_info()):\n'
' raise\n' ' raise\n'
' finally:\n' ' else:\n'
' if not hit_except:\n' ' exit(manager, None, None, None)\n'
' exit(manager, None, None, None)\n'
'\n' '\n'
'With more than one item, the context managers are processed as if\n' 'With more than one item, the context managers are processed as if\n'
'multiple "with" statements were nested:\n' 'multiple "with" statements were nested:\n'
@ -17362,7 +17435,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'A "yield" statement is semantically equivalent to a yield ' 'A "yield" statement is semantically equivalent to a yield '
'expression.\n' 'expression.\n'
'The yield statement can be used to omit the parentheses that would\n' 'The "yield" statement can be used to omit the parentheses that '
'would\n'
'otherwise be required in the equivalent yield expression ' 'otherwise be required in the equivalent yield expression '
'statement.\n' 'statement.\n'
'For example, the yield statements\n' 'For example, the yield statements\n'
@ -17378,10 +17452,9 @@ topics = {'assert': 'The "assert" statement\n'
'Yield expressions and statements are only used when defining a\n' 'Yield expressions and statements are only used when defining a\n'
'*generator* function, and are only used in the body of the ' '*generator* function, and are only used in the body of the '
'generator\n' 'generator\n'
'function. Using yield in a function definition is sufficient to ' 'function. Using "yield" in a function definition is sufficient to\n'
'cause\n' 'cause that definition to create a generator function instead of a\n'
'that definition to create a generator function instead of a normal\n' 'normal function.\n'
'function.\n'
'\n' '\n'
'For full details of "yield" semantics, refer to the Yield ' 'For full details of "yield" semantics, refer to the Yield '
'expressions\n' 'expressions\n'

1762
Misc/NEWS.d/3.14.0a2.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
Fix cross compile failures when the host and target SOABIs match.

View File

@ -1 +0,0 @@
Emscripten builds now require node >= 18.

View File

@ -1,2 +0,0 @@
Improve detection of float word ordering on Linux when link-time optimizations
are enabled.

View File

@ -1,2 +0,0 @@
The Android build now supports `16 KB page sizes
<https://developer.android.com/guide/practices/page-sizes>`__.

View File

@ -1 +0,0 @@
The minimum supported Android version is now 7.0 (API level 24).

View File

@ -1,4 +0,0 @@
For cross builds, there is now support for having a different install
``prefix`` than the ``host_prefix`` used by ``getpath.py``. This is set to ``/`` by
default for Emscripten, on other platforms the default behavior is the same
as before.

View File

@ -1 +0,0 @@
Introduced ``Tools/wasm/emscripten.py`` to simplify doing Emscripten builds.

View File

@ -1,2 +0,0 @@
``make clinic`` now runs Argument Clinic using the ``--force`` option,
thus forcefully regenerating generated code.

View File

@ -1 +0,0 @@
Hard-code float word ordering as little endian on WASM.

View File

@ -1 +0,0 @@
Disable SIMD support for HACL under WASI.

View File

@ -1,3 +0,0 @@
Use ``wasm32-wasip1`` as the target triple for WASI instead of
``wasm32-wasi``. The latter will eventually be reclaimed for WASI 1.0 while
CPython currently only supports WASI preview1.

View File

@ -1,3 +0,0 @@
Removed the ``--with-emscripten-target`` configure flag. We unified the
``node`` and ``browser`` options and the same build can now be used, independent
of target runtime.

View File

@ -1 +0,0 @@
The :c:macro:`!Py_HUGE_VAL` macro is :term:`soft deprecated`.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyType_Freeze` function to make a type immutable. Patch by
Victor Stinner.

View File

@ -1,2 +0,0 @@
Added the :c:func:`PyUnstable_Object_EnableDeferredRefcount` function for
enabling :pep:`703` deferred reference counting.

View File

@ -1,3 +0,0 @@
Fix a bug where dictionary watchers (e.g., :c:func:`PyDict_Watch`) on an
object's attribute dictionary (:attr:`~object.__dict__`) were not triggered
when the object's attributes were modified.

View File

@ -1,3 +0,0 @@
Add :c:func:`PyLong_IsPositive`, :c:func:`PyLong_IsNegative`
and :c:func:`PyLong_IsZero` for checking if a :c:type:`PyLongObject`
is positive, negative, or zero, respectively.

View File

@ -1,2 +0,0 @@
Fix error handling in :class:`ctypes.CDLL` objects
which could result in a crash in rare situations.

View File

@ -1 +0,0 @@
Fixed a bug in ``reprlib.repr`` where it incorrectly called the repr method on shadowed Python built-in types.

View File

@ -1 +0,0 @@
Fix bug where SSLProtocol.connection_lost wasn't getting called when OSError was thrown on writing to socket.

View File

@ -1,3 +0,0 @@
The :func:`map` built-in now has an optional keyword-only *strict* flag
like :func:`zip` to check that all the iterables are of equal length.
Patch by Wannes Boeykens.

View File

@ -1,4 +0,0 @@
Improve the error message when a script shadowing a module from the standard
library causes :exc:`ImportError` to be raised during a "from" import.
Similarly, improve the error message when a script shadowing a third party module
attempts to "from" import an attribute from that third party module while still initialising.

View File

@ -1 +0,0 @@
Update JIT compilation to use LLVM 19

View File

@ -1,2 +0,0 @@
Don't allow the JIT and perf support to be active at the same time. Patch by
Pablo Galindo

View File

@ -1,2 +0,0 @@
Fix crash when iterating over a generator expression after direct changes on ``gi_frame.f_locals``.
Patch by Mikhail Efimov.

View File

@ -1,2 +0,0 @@
Add a new ``INSTRUCTION_SIZE`` macro to the cases generator which returns
the current instruction size.

View File

@ -1 +0,0 @@
Fix illegal instruction for older Arm architectures. Patch by Diego Russo, testing by Ross Burton.

View File

@ -1,2 +0,0 @@
The Python PEG generator can now use f-strings in the grammar actions. Patch
by Pablo Galindo

View File

@ -1,2 +0,0 @@
Fix crash on certain accesses to the ``__annotations__`` of
:class:`staticmethod` and :class:`classmethod` objects.

View File

@ -1 +0,0 @@
Use color to highlight error locations in traceback from exception group

View File

@ -1,2 +0,0 @@
Correctly honour :mod:`tracemalloc` hooks in specialized ``Py_DECREF``
paths. Patch by Pablo Galindo

View File

@ -1,4 +0,0 @@
The JIT has been updated to leverage Clang 19s new ``preserve_none`` attribute,
which supports more platforms and is more useful than LLVM's existing ``ghccc``
calling convention. This also removes the need to manually patch the calling
convention in LLVM IR, simplifying the JIT compilation process.

View File

@ -1,3 +0,0 @@
It was possible in 3.14.0a1 only for attribute lookup to give the wrong
value. This was due to an incorrect specialization in very specific
circumstances. This is fixed in 3.14.0a2.

View File

@ -1,2 +0,0 @@
Fix a crash in the free threading build when :func:`gc.get_objects` or
:func:`gc.get_referrers` is called during an in-progress garbage collection.

View File

@ -1,2 +0,0 @@
On Android, the ``errors`` setting of :any:`sys.stdout` was changed from
``surrogateescape`` to ``backslashreplace``.

View File

@ -1,5 +0,0 @@
Adds :opcode:`LOAD_SMALL_INT` and :opcode:`LOAD_CONST_IMMORTAL` instructions.
``LOAD_SMALL_INT`` pushes a small integer equal to the ``oparg`` to the stack.
``LOAD_CONST_IMMORTAL`` does the same as ``LOAD_CONST`` but is more
efficient for immortal objects.
Removes ``RETURN_CONST`` instruction.

View File

@ -1,2 +0,0 @@
The :class:`memoryview` type now supports subscription, making it a
:term:`generic type`.

View File

@ -1,2 +0,0 @@
Fix a crash in :func:`sys.audit` when passing a non-string as first argument
and Python was compiled in debug mode.

View File

@ -1,2 +0,0 @@
Avoid temporary tuple creation for vararg in argument passing with Argument
Clinic generated code (if arguments either vararg or positional-only).

View File

@ -1,3 +0,0 @@
Relocated objects such as ``tuple``, ``bytes`` and ``str`` objects are
properly tracked by :mod:`tracemalloc` and its associated hooks. Patch by
Pablo Galindo.

View File

@ -1,3 +0,0 @@
Add a new attribute in :attr:`~codeobject.co_flags` to indicate whether the
first item in :attr:`~codeobject.co_consts` is the docstring. If a code
object has no docstring, ``None`` will **NOT** be inserted.

View File

@ -1,2 +0,0 @@
Provide better error location when attempting to use a :term:`future
statement <__future__>` with an unknown future feature.

View File

@ -1 +0,0 @@
Improve JIT performance by 1.4% on macOS Apple Silicon by using platform-specific memory protection APIs. Patch by Diego Russo.

View File

@ -1,2 +0,0 @@
Following :gh:`126101`, for :ref:`codeobjects` like lambda, annotation and type alias,
we no longer add ``None`` to its :attr:`~codeobject.co_consts`.

View File

@ -1,2 +0,0 @@
Relax optimization requirements to allow fast attribute access to module
subclasses.

View File

@ -1,2 +0,0 @@
Fix crash during garbage collection on an object frozen by :func:`gc.freeze` on the
free-threaded build.

View File

@ -1,3 +0,0 @@
Fix an issue with ``skip_file_prefixes`` parameter which resulted in an inconsistent
behaviour between the C and Python implementations of :func:`warnings.warn`.
Patch by Daehee Kim.

View File

@ -1,2 +0,0 @@
Fix crash when using ``yield from`` on an object that raises an exception in
its ``__iter__``.

View File

@ -1,3 +0,0 @@
Do not include count of "peek" items in ``_PyUop_num_popped``. This ensures
that the correct number of items are popped from the stack when a micro-op
exits with an error.

View File

@ -1,3 +0,0 @@
Fix :mod:`importlib` to not write an incomplete .pyc files when a ulimit or some
other operating system mechanism is preventing the write to go through
fully.

View File

@ -1,2 +0,0 @@
Fix a crash when calling :func:`os.fork` on some operating systems,
including SerenityOS.

View File

@ -1 +0,0 @@
Now :exc:`ValueError` is raised instead of :exc:`SystemError` when trying to iterate over a released :class:`memoryview` object.

View File

@ -1,2 +0,0 @@
Increase the threshold for JIT code warmup. Depending on platform and workload,
this can result in performance gains of 1-9% and memory savings of 3-5%.

View File

@ -1,2 +0,0 @@
Include the :class:`object` type in the lists of documented types.
Change by Furkan Onder and Martin Panter.

View File

@ -1,2 +0,0 @@
Require Sphinx 7.2.6 or later to build the Python documentation.
Patch by Adam Turner.

View File

@ -1,3 +0,0 @@
Added stub pages for removed modules explaining their removal, where to find
replacements, and linking to the last Python version that supported them.
Contributed by Ned Batchelder.

View File

@ -1,2 +0,0 @@
Add MIME types for MS Embedded OpenType, OpenType Layout, TrueType,
WOFF 1.0 and 2.0 fonts. Patch by Sahil Prajapati and Hugo van Kemenade.

View File

@ -1,2 +0,0 @@
Strip :class:`unittest.IsolatedAsyncioTestCase` stack frames from reported
stacktraces.

View File

@ -1 +0,0 @@
Fix a race condition in :class:`multiprocessing.pool.Pool`.

View File

@ -1,2 +0,0 @@
Fix SystemError when match regular expression pattern containing some
combination of possessive quantifier, alternative and capture group.

View File

@ -1,4 +0,0 @@
Accepting objects with false values (like ``0`` and ``[]``) except empty
strings, byte-like objects and ``None`` in :mod:`urllib.parse` functions
:func:`~urllib.parse.parse_qsl` and :func:`~urllib.parse.parse_qs` is now
deprecated.

View File

@ -1 +0,0 @@
Add :data:`!socket.IPV6_RECVERR` constant (available since Linux 2.2).

View File

@ -1 +0,0 @@
Remove deprecated :func:`!pkgutil.get_loader` and :func:`!pkgutil.find_loader`.

View File

@ -1 +0,0 @@
Always return an absolute path for :func:`os.path.abspath` on Windows.

View File

@ -1,2 +0,0 @@
:func:`!posixpath.realpath` now raises :exc:`NotADirectoryError` when *strict*
mode is enabled and a non-directory path with a trailing slash is supplied.

View File

@ -1 +0,0 @@
Fixed an issue where :func:`inspect.getclosurevars` would incorrectly classify an attribute name as a global variable when the name exists both as an attribute name and a global variable.

View File

@ -1,2 +0,0 @@
Improve the performance of :mod:`tarfile` when writing files, by caching user names
and group names.

View File

@ -1 +0,0 @@
Update unbounded ``read`` calls in :mod:`zipfile` to specify an explicit ``size`` putting a limit on how much data they may read. This also updates handling around ZIP max comment size to match the standard instead of reading comments that are one byte too long.

View File

@ -1 +0,0 @@
Add :func:`platform.invalidate_caches` to invalidate cached results.

View File

@ -1,2 +0,0 @@
Add :func:`uuid.uuid8` for generating UUIDv8 objects as specified in
:rfc:`9562`. Patch by Bénédikt Tran

View File

@ -1 +0,0 @@
Fix the canvas not clearing after running turtledemo clock.

View File

@ -1 +0,0 @@
unittest discovery supports PEP 420 namespace packages as start directory again.

View File

@ -1,4 +0,0 @@
The tkinter module can now be built to use either the new version 9.0.0 of
Tcl/Tk or the latest release 8.6.15 of Tcl/Tk 8. Tcl/Tk 9 includes many
improvements, both to the Tcl language and to the appearance and utility of
the graphical user interface provided by Tk.

View File

@ -1 +0,0 @@
Fixed a bug in :mod:`pdb` where sometimes the breakpoint won't trigger if it was set on a function which is already in the call stack.

View File

@ -1 +0,0 @@
Adds a feature to optionally enable suggestions for argument choices and subparser names if mistyped by the user.

View File

@ -1 +0,0 @@
Deprecate the :class:`argparse.FileType` type converter.

View File

@ -1,6 +0,0 @@
We've added :class:`concurrent.futures.InterpreterPoolExecutor`, which
allows you to run code in multiple isolated interpreters. This allows you
to circumvent the limitations of CPU-bound threads (due to the GIL). Patch
by Eric Snow.
This addition is unrelated to :pep:`734`.

View File

@ -1 +0,0 @@
Properly quote template strings in :mod:`venv` activation scripts.

View File

@ -1 +0,0 @@
Fixed thread safety in :mod:`ssl` in the free-threaded build. OpenSSL operations are now protected by a per-object lock.

View File

@ -1,8 +0,0 @@
Fix encoding issues in :func:`time.strftime`, the
:meth:`~datetime.datetime.strftime` method of the :mod:`datetime` classes
:class:`~datetime.datetime`, :class:`~datetime.date` and
:class:`~datetime.time` and formatting of these classes. Characters not
encodable in the current locale are now acceptable in the format string.
Surrogate pairs and sequence of surrogatescape-encoded bytes are no longer
recombinated. Embedded null character no longer terminates the format
string.

View File

@ -1,2 +0,0 @@
Fix race condition when importing :mod:`collections.abc`, which could
incorrectly return an empty module.

View File

@ -1 +0,0 @@
Fix the conversion of the :envvar:`!VIRTUAL_ENV` path in the activate script in :mod:`venv` when running in Git Bash for Windows.

View File

@ -1 +0,0 @@
Fixed a bug in :mod:`pdb` where arguments starting with ``-`` can't be passed to the debugged script.

View File

@ -1,2 +0,0 @@
Fix deadlock when :class:`concurrent.futures.ProcessPoolExecutor` shuts down
concurrently with an error when feeding a job to a worker process.

View File

@ -1,2 +0,0 @@
Improve traceback if :func:`importlib.reload` is called with an object that
is not a module. Patch by Alex Waygood.

View File

@ -1,4 +0,0 @@
Pressing :kbd:`Ctrl-C` while blocked in :meth:`threading.Lock.acquire`,
:meth:`threading.RLock.acquire`, and :meth:`threading.Thread.join` now
interrupts the function call and raises a :exc:`KeyboardInterrupt` exception
on Windows, similar to how those functions behave on macOS and Linux.

View File

@ -1,2 +0,0 @@
Deprecate passing keyword-only *prefix_chars* argument to
:meth:`argparse.ArgumentParser.add_argument_group`.

Some files were not shown because too many files have changed in this diff Show More