diff options
122 files changed, 1543 insertions, 446 deletions
diff --git a/Doc/library/base64.rst b/Doc/library/base64.rst index 975c488..7716286 100644 --- a/Doc/library/base64.rst +++ b/Doc/library/base64.rst @@ -105,10 +105,10 @@ POST request. For more information about the strict base64 check, see :func:`binascii.a2b_base64` - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *ignorechars* parameter. - .. deprecated:: next + .. deprecated:: 3.15 Accepting the ``+`` and ``/`` characters with an alternative alphabet is now deprecated. @@ -142,7 +142,7 @@ POST request. ``/`` in the standard Base64 alphabet, and return the decoded :class:`bytes`. - .. deprecated:: next + .. deprecated:: 3.15 Accepting the ``+`` and ``/`` characters is now deprecated. diff --git a/Doc/library/binascii.rst b/Doc/library/binascii.rst index 39320da..8a241e5 100644 --- a/Doc/library/binascii.rst +++ b/Doc/library/binascii.rst @@ -75,7 +75,7 @@ The :mod:`!binascii` module defines the following functions: .. versionchanged:: 3.11 Added the *strict_mode* parameter. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *ignorechars* parameter. @@ -122,7 +122,7 @@ The :mod:`!binascii` module defines the following functions: Invalid Ascii85 data will raise :exc:`binascii.Error`. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: b2a_ascii85(data, /, *, foldspaces=False, wrapcol=0, pad=False, adobe=False) @@ -145,7 +145,7 @@ The :mod:`!binascii` module defines the following functions: *adobe* controls whether the encoded byte sequence is framed with ``<~`` and ``~>``, which is used by the Adobe implementation. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: a2b_base85(string, /) @@ -160,7 +160,7 @@ The :mod:`!binascii` module defines the following functions: Invalid Base85 data will raise :exc:`binascii.Error`. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: b2a_base85(data, /, *, pad=False) @@ -171,7 +171,7 @@ The :mod:`!binascii` module defines the following functions: If *pad* is true, the input is padded with ``b'\0'`` so its length is a multiple of 4 bytes before encoding. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: a2b_z85(string, /) @@ -188,7 +188,7 @@ The :mod:`!binascii` module defines the following functions: Invalid Z85 data will raise :exc:`binascii.Error`. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: b2a_z85(data, /, *, pad=False) @@ -201,7 +201,7 @@ The :mod:`!binascii` module defines the following functions: See `Z85 specification <https://rfc.zeromq.org/spec/32/>`_ for more information. - .. versionadded:: next + .. versionadded:: 3.15 .. function:: a2b_qp(data, header=False) diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 564c11d..eec9ed1 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -564,7 +564,7 @@ Functions and classes provided: Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not a context manager. - .. versionchanged:: next + .. versionchanged:: 3.15 Added support for arbitrary descriptors :meth:`!__enter__` and :meth:`!__exit__`. @@ -586,7 +586,7 @@ Functions and classes provided: The passed in object is returned from the function, allowing this method to be used as a function decorator. - .. versionchanged:: next + .. versionchanged:: 3.15 Added support for arbitrary descriptors :meth:`!__exit__`. .. method:: callback(callback, /, *args, **kwds) @@ -646,7 +646,7 @@ Functions and classes provided: Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not an asynchronous context manager. - .. versionchanged:: next + .. versionchanged:: 3.15 Added support for arbitrary descriptors :meth:`!__aenter__` and :meth:`!__aexit__`. .. method:: push_async_exit(exit) @@ -654,7 +654,7 @@ Functions and classes provided: Similar to :meth:`ExitStack.push` but expects either an asynchronous context manager or a coroutine function. - .. versionchanged:: next + .. versionchanged:: 3.15 Added support for arbitrary descriptors :meth:`!__aexit__`. .. method:: push_async_callback(callback, /, *args, **kwds) diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 57353bf..1455d90 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -360,7 +360,7 @@ attributes (see :ref:`import-mod-attrs` for module attributes): Add ``f_generator`` attribute to frames. -.. versionchanged:: next +.. versionchanged:: 3.15 Add ``gi_state`` attribute to generators, ``cr_state`` attribute to coroutines, and ``ag_state`` attribute to async generators. diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index d3baf2d..e313a15 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1257,7 +1257,7 @@ Miscellaneous .. versionadded:: 3.4 - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *on_error* parameter. .. function:: set_start_method(method, force=False) diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 70ff625..8081870 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -120,7 +120,7 @@ the :mod:`glob` module.) .. versionchanged:: 3.6 Accepts a :term:`path-like object`. - .. deprecated:: next + .. deprecated:: 3.15 Deprecated in favor of :func:`os.path.commonpath` for path prefixes. The :func:`os.path.commonprefix` function is being deprecated due to having a misleading name and module. The function is not safe to use for diff --git a/Doc/library/symtable.rst b/Doc/library/symtable.rst index 63549f4..264857f 100644 --- a/Doc/library/symtable.rst +++ b/Doc/library/symtable.rst @@ -184,7 +184,7 @@ Examining Symbol Tables Return a tuple containing names of :term:`cell variables <closure variable>` in this table. - .. versionadded:: next + .. versionadded:: 3.15 .. class:: Class @@ -301,7 +301,7 @@ Examining Symbol Tables Return ``True`` if the symbol is referenced but not assigned in a nested block. - .. versionadded:: next + .. versionadded:: 3.15 .. method:: is_free_class() diff --git a/Doc/library/tomllib.rst b/Doc/library/tomllib.rst index d376779..dc6e0cc 100644 --- a/Doc/library/tomllib.rst +++ b/Doc/library/tomllib.rst @@ -18,7 +18,7 @@ support writing TOML. .. versionadded:: 3.11 The module was added with support for TOML 1.0.0. -.. versionchanged:: next +.. versionchanged:: 3.15 Added TOML 1.1.0 support. See the :ref:`What's New <whatsnew315-tomllib-1-1-0>` for details. diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst index 0fd3070..ef48add 100644 --- a/Doc/library/urllib.parse.rst +++ b/Doc/library/urllib.parse.rst @@ -217,7 +217,7 @@ or on combining URL components into a URL string. .. versionchanged:: 3.12 Leading WHATWG C0 control and space characters are stripped from the URL. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *missing_as_none* parameter. .. _WHATWG spec: https://url.spec.whatwg.org/#concept-basic-url-parser @@ -333,7 +333,7 @@ or on combining URL components into a URL string. By default, *keep_empty* is true if *parts* is the result of the :func:`urlsplit` call with ``missing_as_none=True``. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *keep_empty* parameter. @@ -371,7 +371,7 @@ or on combining URL components into a URL string. By default, *keep_empty* is true if *parts* is the result of the :func:`urlparse` call with ``missing_as_none=True``. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *keep_empty* parameter. @@ -444,7 +444,7 @@ or on combining URL components into a URL string. .. versionchanged:: 3.2 Result is a structured object rather than a simple 2-tuple. - .. versionchanged:: next + .. versionchanged:: 3.15 Added the *missing_as_none* parameter. .. function:: unwrap(url) diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 281d032..54384a8 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -323,7 +323,7 @@ See also :pep:`530`. asynchronous functions. Outer comprehensions implicitly become asynchronous. -.. versionchanged:: next +.. versionchanged:: 3.15 Unpacking with the ``*`` operator is now allowed in the expression. @@ -455,7 +455,7 @@ prevails. the key. Starting with 3.8, the key is evaluated before the value, as proposed by :pep:`572`. -.. versionchanged:: next +.. versionchanged:: 3.15 Unpacking with the ``**`` operator is now allowed in dictionary comprehensions. .. _genexpr: diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index c970581..5154244 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -1105,7 +1105,7 @@ conflict. and kill the process. Only enable this in environments where the huge-page pool is properly sized and fork-safety is not a concern. - .. versionadded:: next + .. versionadded:: 3.15 .. envvar:: PYTHONLEGACYWINDOWSFSENCODING diff --git a/Include/patchlevel.h b/Include/patchlevel.h index ea42c12..117b041 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -24,10 +24,10 @@ #define PY_MINOR_VERSION 15 #define PY_MICRO_VERSION 0 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA -#define PY_RELEASE_SERIAL 5 +#define PY_RELEASE_SERIAL 6 /* Version as a string */ -#define PY_VERSION "3.15.0a5+" +#define PY_VERSION "3.15.0a6" /*--end constants--*/ diff --git a/Lib/pydoc_data/module_docs.py b/Lib/pydoc_data/module_docs.py index f6d84a6..76a2c18 100644 --- a/Lib/pydoc_data/module_docs.py +++ b/Lib/pydoc_data/module_docs.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Sun Oct 12 12:02:22 2025 +# Autogenerated by Sphinx on Wed Feb 11 14:22:57 2026 # as part of the release process. module_docs = { @@ -23,7 +23,6 @@ module_docs = { 'bisect': 'bisect#module-bisect', 'builtins': 'builtins#module-builtins', 'bz2': 'bz2#module-bz2', - 'cProfile': 'profile#module-cProfile', 'calendar': 'calendar#module-calendar', 'cgi': 'cgi#module-cgi', 'cgitb': 'cgitb#module-cgitb', @@ -149,6 +148,7 @@ module_docs = { 'mailcap': 'mailcap#module-mailcap', 'marshal': 'marshal#module-marshal', 'math': 'math#module-math', + 'math.integer': 'math.integer#module-math.integer', 'mimetypes': 'mimetypes#module-mimetypes', 'mmap': 'mmap#module-mmap', 'modulefinder': 'modulefinder#module-modulefinder', @@ -183,8 +183,10 @@ module_docs = { 'posix': 'posix#module-posix', 'pprint': 'pprint#module-pprint', 'profile': 'profile#module-profile', - 'profiling.sampling': 'profile#module-profiling.sampling', - 'pstats': 'profile#module-pstats', + 'profiling': 'profiling#module-profiling', + 'profiling.sampling': 'profiling.sampling#module-profiling.sampling', + 'profiling.tracing': 'profiling.tracing#module-profiling.tracing', + 'pstats': 'pstats#module-pstats', 'pty': 'pty#module-pty', 'pwd': 'pwd#module-pwd', 'py_compile': 'py_compile#module-py_compile', diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index e2d3a51..32cf9a9 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Wed Jan 14 16:41:25 2026 +# Autogenerated by Sphinx on Wed Feb 11 14:22:57 2026 # as part of the release process. topics = { @@ -46,11 +46,10 @@ modify attributes or items of mutable objects: | "[" [target_list] "]" | attributeref | subscription - | slicing | "*" target -(See section Primaries for the syntax definitions for *attributeref*, -*subscription*, and *slicing*.) +(See section Primaries for the syntax definitions for *attributeref* +and *subscription*.) An assignment statement evaluates the expression list (remember that this can be a single expression or a comma-separated list, the latter @@ -59,12 +58,11 @@ the target lists, from left to right. Assignment is defined recursively depending on the form of the target (list). When a target is part of a mutable object (an attribute -reference, subscription or slicing), the mutable object must -ultimately perform the assignment and decide about its validity, and -may raise an exception if the assignment is unacceptable. The rules -observed by various types and the exceptions raised are given with the -definition of the object types (see section The standard type -hierarchy). +reference or subscription), the mutable object must ultimately perform +the assignment and decide about its validity, and may raise an +exception if the assignment is unacceptable. The rules observed by +various types and the exceptions raised are given with the definition +of the object types (see section The standard type hierarchy). Assignment of an object to a target list, optionally enclosed in parentheses or square brackets, is recursively defined as follows. @@ -130,9 +128,13 @@ follows. attributes, such as properties created with "property()". * If the target is a subscription: The primary expression in the - reference is evaluated. It should yield either a mutable sequence - object (such as a list) or a mapping object (such as a dictionary). - Next, the subscript expression is evaluated. + reference is evaluated. Next, the subscript expression is evaluated. + Then, the primary’s "__setitem__()" method is called with two + arguments: the subscript and the assigned object. + + Typically, "__setitem__()" is defined on mutable sequence objects + (such as lists) and mapping objects (such as dictionaries), and + behaves as follows. If the primary is a mutable sequence object (such as a list), the subscript must yield an integer. If it is negative, the sequence’s @@ -149,27 +151,17 @@ follows. existing key/value pair with the same key value, or insert a new key/value pair (if no key with the same value existed). - For user-defined objects, the "__setitem__()" method is called with - appropriate arguments. - -* If the target is a slicing: The primary expression in the reference - is evaluated. It should yield a mutable sequence object (such as a - list). The assigned object should be a sequence object of the same - type. Next, the lower and upper bound expressions are evaluated, - insofar they are present; defaults are zero and the sequence’s - length. The bounds should evaluate to integers. If either bound is - negative, the sequence’s length is added to it. The resulting - bounds are clipped to lie between zero and the sequence’s length, - inclusive. Finally, the sequence object is asked to replace the - slice with the items of the assigned sequence. The length of the - slice may be different from the length of the assigned sequence, - thus changing the length of the target sequence, if the target - sequence allows it. - -**CPython implementation detail:** In the current implementation, the -syntax for targets is taken to be the same as for expressions, and -invalid syntax is rejected during the code generation phase, causing -less detailed error messages. + If the target is a slicing: The primary expression should evaluate + to a mutable sequence object (such as a list). The assigned object + should be *iterable*. The slicing’s lower and upper bounds should be + integers; if they are "None" (or not present), the defaults are zero + and the sequence’s length. If either bound is negative, the + sequence’s length is added to it. The resulting bounds are clipped + to lie between zero and the sequence’s length, inclusive. Finally, + the sequence object is asked to replace the slice with the items of + the assigned sequence. The length of the slice may be different + from the length of the assigned sequence, thus changing the length + of the target sequence, if the target sequence allows it. Although the definition of assignment implies that overlaps between the left-hand side and the right-hand side are ‘simultaneous’ (for @@ -196,7 +188,7 @@ Augmented assignment is the combination, in a single statement, of a binary operation and an assignment statement: augmented_assignment_stmt: augtarget augop (expression_list | yield_expression) - augtarget: identifier | attributeref | subscription | slicing + augtarget: identifier | attributeref | subscription augop: "+=" | "-=" | "*=" | "@=" | "/=" | "//=" | "%=" | "**=" | ">>=" | "<<=" | "&=" | "^=" | "|=" @@ -921,7 +913,7 @@ Augmented assignment is the combination, in a single statement, of a binary operation and an assignment statement: augmented_assignment_stmt: augtarget augop (expression_list | yield_expression) - augtarget: identifier | attributeref | subscription | slicing + augtarget: identifier | attributeref | subscription augop: "+=" | "-=" | "*=" | "@=" | "/=" | "//=" | "%=" | "**=" | ">>=" | "<<=" | "&=" | "^=" | "|=" @@ -4914,8 +4906,8 @@ global namespace, depending on whether the name occurs in a "global" statement in the same code block. Trying to delete an unbound name raises a "NameError" exception. -Deletion of attribute references, subscriptions and slicings is passed -to the primary object involved; deletion of a slicing is in general +Deletion of attribute references and subscriptions is passed to the +primary object involved; deletion of a slicing is in general equivalent to assignment of an empty slice of the right type (but even this is determined by the sliced object). @@ -4931,8 +4923,8 @@ A dictionary display is a possibly empty series of dict items dict_display: "{" [dict_item_list | dict_comprehension] "}" dict_item_list: dict_item ("," dict_item)* [","] + dict_comprehension: dict_item comp_for dict_item: expression ":" expression | "**" or_expr - dict_comprehension: expression ":" expression comp_for A dictionary display yields a new dictionary object. @@ -4951,11 +4943,22 @@ items and earlier dictionary unpackings. Added in version 3.5: Unpacking into dictionary displays, originally proposed by **PEP 448**. -A dict comprehension, in contrast to list and set comprehensions, -needs two expressions separated with a colon followed by the usual -“for” and “if” clauses. When the comprehension is run, the resulting -key and value elements are inserted in the new dictionary in the order -they are produced. +A dict comprehension may take one of two forms: + +* The first form uses two expressions separated with a colon followed + by the usual “for” and “if” clauses. When the comprehension is run, + the resulting key and value elements are inserted in the new + dictionary in the order they are produced. + +* The second form uses a single expression prefixed by the "**" + dictionary unpacking operator followed by the usual “for” and “if” + clauses. When the comprehension is evaluated, the expression is + evaluated and then unpacked, inserting zero or more key/value pairs + into the new dictionary. + +Both forms of dictionary comprehension retain the property that if the +same key is specified multiple times, the associated value in the +resulting dictionary will be the last one specified. Restrictions on the types of the key values are listed earlier in section The standard type hierarchy. (To summarize, the key type @@ -4967,6 +4970,9 @@ Changed in version 3.8: Prior to Python 3.8, in dict comprehensions, the evaluation order of key and value was not well-defined. In CPython, the value was evaluated before the key. Starting with 3.8, the key is evaluated before the value, as proposed by **PEP 572**. + +Changed in version 3.15.0a5 (unreleased): Unpacking with the "**" +operator is now allowed in dictionary comprehensions. ''', 'dynamic-features': r'''Interaction with dynamic features ********************************* @@ -6843,7 +6849,9 @@ scope where the "import" statement occurs. The *public names* defined by a module are determined by checking the module’s namespace for a variable named "__all__"; if defined, it must be a sequence of strings which are names defined or imported by that -module. The names given in "__all__" are all considered public and +module. Names containing non-ASCII characters must be in the +normalization form NFKC; see Non-ASCII characters in names for +details. The names given in "__all__" are all considered public and are required to exist. If "__all__" is not defined, the set of public names includes all names found in the module’s namespace which do not begin with an underscore character ("'_'"). "__all__" should contain @@ -7849,8 +7857,8 @@ described in the Comparisons section. | value...}", "{expressions...}" | list display, dictionary display, set | | | display | +-------------------------------------------------+---------------------------------------+ -| "x[index]", "x[index:index]", | Subscription, slicing, call, | -| "x(arguments...)", "x.attribute" | attribute reference | +| "x[index]", "x[index:index]" "x(arguments...)", | Subscription (including slicing), | +| "x.attribute" | call, attribute reference | +-------------------------------------------------+---------------------------------------+ | "await x" | Await expression | +-------------------------------------------------+---------------------------------------+ @@ -8187,22 +8195,32 @@ Note: and so forth. Missing slice items are always filled in with "None". -object.__getitem__(self, key) +object.__getitem__(self, subscript) + + Called to implement *subscription*, that is, "self[subscript]". See + Subscriptions and slicings for details on the syntax. - Called to implement evaluation of "self[key]". For *sequence* - types, the accepted keys should be integers. Optionally, they may - support "slice" objects as well. Negative index support is also - optional. If *key* is of an inappropriate type, "TypeError" may be - raised; if *key* is a value outside the set of indexes for the - sequence (after any special interpretation of negative values), - "IndexError" should be raised. For *mapping* types, if *key* is - missing (not in the container), "KeyError" should be raised. + There are two types of built-in objects that support subscription + via "__getitem__()": + + * **sequences**, where *subscript* (also called *index*) should be + an integer or a "slice" object. See the sequence documentation + for the expected behavior, including handling "slice" objects and + negative indices. + + * **mappings**, where *subscript* is also called the *key*. See + mapping documentation for the expected behavior. + + If *subscript* is of an inappropriate type, "__getitem__()" should + raise "TypeError". If *subscript* has an inappropriate value, + "__getitem__()" should raise an "LookupError" or one of its + subclasses ("IndexError" for sequences; "KeyError" for mappings). Note: - "for" loops expect that an "IndexError" will be raised for - illegal indexes to allow proper detection of the end of the - sequence. + The sequence iteration protocol (used, for example, in "for" + loops), expects that an "IndexError" will be raised for illegal + indexes to allow proper detection of the end of a sequence. Note: @@ -8292,37 +8310,40 @@ A left shift by *n* bits is defined as multiplication with "pow(2,n)". 'slicings': r'''Slicings ******** -A slicing selects a range of items in a sequence object (e.g., a -string, tuple or list). Slicings may be used as expressions or as -targets in assignment or "del" statements. The syntax for a slicing: - - slicing: primary "[" slice_list "]" - slice_list: slice_item ("," slice_item)* [","] - slice_item: expression | proper_slice - proper_slice: [lower_bound] ":" [upper_bound] [ ":" [stride] ] - lower_bound: expression - upper_bound: expression - stride: expression - -There is ambiguity in the formal syntax here: anything that looks like -an expression list also looks like a slice list, so any subscription -can be interpreted as a slicing. Rather than further complicating the -syntax, this is disambiguated by defining that in this case the -interpretation as a subscription takes priority over the -interpretation as a slicing (this is the case if the slice list -contains no proper slice). - -The semantics for a slicing are as follows. The primary is indexed -(using the same "__getitem__()" method as normal subscription) with a -key that is constructed from the slice list, as follows. If the slice -list contains at least one comma, the key is a tuple containing the -conversion of the slice items; otherwise, the conversion of the lone -slice item is the key. The conversion of a slice item that is an -expression is that expression. The conversion of a proper slice is a -slice object (see section The standard type hierarchy) whose "start", -"stop" and "step" attributes are the values of the expressions given -as lower bound, upper bound and stride, respectively, substituting -"None" for missing expressions. +A more advanced form of subscription, *slicing*, is commonly used to +extract a portion of a sequence. In this form, the subscript is a +*slice*: up to three expressions separated by colons. Any of the +expressions may be omitted, but a slice must contain at least one +colon: + + >>> number_names = ['zero', 'one', 'two', 'three', 'four', 'five'] + >>> number_names[1:3] + ['one', 'two'] + >>> number_names[1:] + ['one', 'two', 'three', 'four', 'five'] + >>> number_names[:3] + ['zero', 'one', 'two'] + >>> number_names[:] + ['zero', 'one', 'two', 'three', 'four', 'five'] + >>> number_names[::2] + ['zero', 'two', 'four'] + >>> number_names[:-3] + ['zero', 'one', 'two'] + >>> del number_names[4:] + >>> number_names + ['zero', 'one', 'two', 'three'] + +When a slice is evaluated, the interpreter constructs a "slice" object +whose "start", "stop" and "step" attributes, respectively, are the +results of the expressions between the colons. Any missing expression +evaluates to "None". This "slice" object is then passed to the +"__getitem__()" or "__class_getitem__()" *special method*, as above. + + # continuing with the SubscriptionDemo instance defined above: + >>> demo[2:3] + subscripted with: slice(2, 3, None) + >>> demo[::'spam'] + subscripted with: slice(None, None, 'spam') ''', 'specialattrs': r'''Special Attributes ****************** @@ -9557,22 +9578,32 @@ Note: and so forth. Missing slice items are always filled in with "None". -object.__getitem__(self, key) +object.__getitem__(self, subscript) + + Called to implement *subscription*, that is, "self[subscript]". See + Subscriptions and slicings for details on the syntax. + + There are two types of built-in objects that support subscription + via "__getitem__()": - Called to implement evaluation of "self[key]". For *sequence* - types, the accepted keys should be integers. Optionally, they may - support "slice" objects as well. Negative index support is also - optional. If *key* is of an inappropriate type, "TypeError" may be - raised; if *key* is a value outside the set of indexes for the - sequence (after any special interpretation of negative values), - "IndexError" should be raised. For *mapping* types, if *key* is - missing (not in the container), "KeyError" should be raised. + * **sequences**, where *subscript* (also called *index*) should be + an integer or a "slice" object. See the sequence documentation + for the expected behavior, including handling "slice" objects and + negative indices. + + * **mappings**, where *subscript* is also called the *key*. See + mapping documentation for the expected behavior. + + If *subscript* is of an inappropriate type, "__getitem__()" should + raise "TypeError". If *subscript* has an inappropriate value, + "__getitem__()" should raise an "LookupError" or one of its + subclasses ("IndexError" for sequences; "KeyError" for mappings). Note: - "for" loops expect that an "IndexError" will be raised for - illegal indexes to allow proper detection of the end of the - sequence. + The sequence iteration protocol (used, for example, in "for" + loops), expects that an "IndexError" will be raised for illegal + indexes to allow proper detection of the end of a sequence. Note: @@ -10262,6 +10293,8 @@ str.index(sub[, start[, end]]) Like "find()", but raise "ValueError" when the substring is not found. For example: + >>> 'spam, spam, spam'.index('spam') + 0 >>> 'spam, spam, spam'.index('eggs') Traceback (most recent call last): File "<python-input-0>", line 1, in <module> @@ -10277,6 +10310,18 @@ str.isalnum() there is at least one character, "False" otherwise. A character "c" is alphanumeric if one of the following returns "True": "c.isalpha()", "c.isdecimal()", "c.isdigit()", or "c.isnumeric()". + For example: + + .. doctest:: + + >>> 'abc123'.isalnum() + True + >>> 'abc123!@#'.isalnum() + False + >>> ''.isalnum() + False + >>> ' '.isalnum() + False str.isalpha() @@ -10538,6 +10583,17 @@ str.partition(sep, /) found, return a 3-tuple containing the string itself, followed by two empty strings. + For example: + + >>> 'Monty Python'.partition(' ') + ('Monty', ' ', 'Python') + >>> "Monty Python's Flying Circus".partition(' ') + ('Monty', ' ', "Python's Flying Circus") + >>> 'Monty Python'.partition('-') + ('Monty Python', '', '') + + See also "rpartition()". + str.removeprefix(prefix, /) If the string starts with the *prefix* string, return @@ -10600,7 +10656,18 @@ str.rfind(sub[, start[, end]]) str.rindex(sub[, start[, end]]) Like "rfind()" but raises "ValueError" when the substring *sub* is - not found. + not found. For example: + + >>> 'spam, spam, spam'.rindex('spam') + 12 + >>> 'spam, spam, spam'.rindex('eggs') + Traceback (most recent call last): + File "<stdin-0>", line 1, in <module> + 'spam, spam, spam'.rindex('eggs') + ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^ + ValueError: substring not found + + See also "index()" and "find()". str.rjust(width, fillchar=' ', /) @@ -10617,6 +10684,17 @@ str.rpartition(sep, /) found, return a 3-tuple containing two empty strings, followed by the string itself. + For example: + + >>> 'Monty Python'.rpartition(' ') + ('Monty', ' ', 'Python') + >>> "Monty Python's Flying Circus".rpartition(' ') + ("Monty Python's Flying", ' ', 'Circus') + >>> 'Monty Python'.rpartition('-') + ('', '', 'Monty Python') + + See also "partition()". + str.rsplit(sep=None, maxsplit=-1) Return a list of the words in the string, using *sep* as the @@ -10632,21 +10710,23 @@ str.rstrip(chars=None, /) *chars* argument is a string specifying the set of characters to be removed. If omitted or "None", the *chars* argument defaults to removing whitespace. The *chars* argument is not a suffix; rather, - all combinations of its values are stripped: + all combinations of its values are stripped. For example: >>> ' spacious '.rstrip() ' spacious' >>> 'mississippi'.rstrip('ipz') 'mississ' - See "str.removesuffix()" for a method that will remove a single - suffix string rather than all of a set of characters. For example: + See "removesuffix()" for a method that will remove a single suffix + string rather than all of a set of characters. For example: >>> 'Monty Python'.rstrip(' Python') 'M' >>> 'Monty Python'.removesuffix(' Python') 'Monty' + See also "strip()". + str.split(sep=None, maxsplit=-1) Return a list of the words in the string, using *sep* as the @@ -10771,6 +10851,17 @@ str.startswith(prefix[, start[, end]]) With optional *start*, test string beginning at that position. With optional *end*, stop comparing string at that position. + For example: + + >>> 'Python'.startswith('Py') + True + >>> 'a tuple of prefixes'.startswith(('at', 'a')) + True + >>> 'Python is amazing'.startswith('is', 7) + True + + See also "endswith()" and "removeprefix()". + str.strip(chars=None, /) Return a copy of the string with the leading and trailing @@ -10778,7 +10869,9 @@ str.strip(chars=None, /) set of characters to be removed. If omitted or "None", the *chars* argument defaults to removing whitespace. The *chars* argument is not a prefix or suffix; rather, all combinations of its values are - stripped: + stripped. + + For example: >>> ' spacious '.strip() 'spacious' @@ -10789,12 +10882,16 @@ str.strip(chars=None, /) stripped from the string. Characters are removed from the leading end until reaching a string character that is not contained in the set of characters in *chars*. A similar action takes place on the - trailing end. For example: + trailing end. + + For example: >>> comment_string = '#....... Section 3.2.1 Issue #32 .......' >>> comment_string.strip('.#! ') 'Section 3.2.1 Issue #32' + See also "rstrip()". + str.swapcase() Return a copy of the string with uppercase characters converted to @@ -10851,6 +10948,12 @@ str.translate(table, /) You can use "str.maketrans()" to create a translation map from character-to-character mappings in different formats. + The following example uses a mapping to replace "'a'" with "'X'", + "'b'" with "'Y'", and delete "'c'": + + >>> 'abc123'.translate({ord('a'): 'X', ord('b'): 'Y', ord('c'): None}) + 'XY123' + See also the "codecs" module for a more flexible approach to custom character mappings. @@ -11445,62 +11548,168 @@ prefix. <rest of the t-string grammar is omitted; see above> ''', - 'subscriptions': r'''Subscriptions -************* + 'subscriptions': r'''Subscriptions and slicings +************************** + +The *subscription* syntax is usually used for selecting an element +from a container – for example, to get a value from a "dict": + + >>> digits_by_name = {'one': 1, 'two': 2} + >>> digits_by_name['two'] # Subscripting a dictionary using the key 'two' + 2 + +In the subscription syntax, the object being subscribed – a primary – +is followed by a *subscript* in square brackets. In the simplest case, +the subscript is a single expression. -The subscription of an instance of a container class will generally -select an element from the container. The subscription of a *generic -class* will generally return a GenericAlias object. +Depending on the type of the object being subscribed, the subscript is +sometimes called a *key* (for mappings), *index* (for sequences), or +*type argument* (for *generic types*). Syntactically, these are all +equivalent: - subscription: primary "[" flexible_expression_list "]" + >>> colors = ['red', 'blue', 'green', 'black'] + >>> colors[3] # Subscripting a list using the index 3 + 'black' -When an object is subscripted, the interpreter will evaluate the -primary and the expression list. + >>> list[str] # Parameterizing the list type using the type argument str + list[str] -The primary must evaluate to an object that supports subscription. An -object may support subscription through defining one or both of -"__getitem__()" and "__class_getitem__()". When the primary is -subscripted, the evaluated result of the expression list will be -passed to one of these methods. For more details on when -"__class_getitem__" is called instead of "__getitem__", see +At runtime, the interpreter will evaluate the primary and the +subscript, and call the primary’s "__getitem__()" or +"__class_getitem__()" *special method* with the subscript as argument. +For more details on which of these methods is called, see __class_getitem__ versus __getitem__. -If the expression list contains at least one comma, or if any of the -expressions are starred, the expression list will evaluate to a -"tuple" containing the items of the expression list. Otherwise, the -expression list will evaluate to the value of the list’s sole member. - -Changed in version 3.11: Expressions in an expression list may be -starred. See **PEP 646**. - -For built-in objects, there are two types of objects that support -subscription via "__getitem__()": - -1. Mappings. If the primary is a *mapping*, the expression list must - evaluate to an object whose value is one of the keys of the - mapping, and the subscription selects the value in the mapping that - corresponds to that key. An example of a builtin mapping class is - the "dict" class. - -2. Sequences. If the primary is a *sequence*, the expression list must - evaluate to an "int" or a "slice" (as discussed in the following - section). Examples of builtin sequence classes include the "str", - "list" and "tuple" classes. - -The formal syntax makes no special provision for negative indices in -*sequences*. However, built-in sequences all provide a "__getitem__()" -method that interprets negative indices by adding the length of the -sequence to the index so that, for example, "x[-1]" selects the last -item of "x". The resulting value must be a nonnegative integer less -than the number of items in the sequence, and the subscription selects -the item whose index is that value (counting from zero). Since the -support for negative indices and slicing occurs in the object’s -"__getitem__()" method, subclasses overriding this method will need to -explicitly add that support. - -A "string" is a special kind of sequence whose items are *characters*. -A character is not a separate data type but a string of exactly one -character. +To show how subscription works, we can define a custom object that +implements "__getitem__()" and prints out the value of the subscript: + + >>> class SubscriptionDemo: + ... def __getitem__(self, key): + ... print(f'subscripted with: {key!r}') + ... + >>> demo = SubscriptionDemo() + >>> demo[1] + subscripted with: 1 + >>> demo['a' * 3] + subscripted with: 'aaa' + +See "__getitem__()" documentation for how built-in types handle +subscription. + +Subscriptions may also be used as targets in assignment or deletion +statements. In these cases, the interpreter will call the subscripted +object’s "__setitem__()" or "__delitem__()" *special method*, +respectively, instead of "__getitem__()". + + >>> colors = ['red', 'blue', 'green', 'black'] + >>> colors[3] = 'white' # Setting item at index + >>> colors + ['red', 'blue', 'green', 'white'] + >>> del colors[3] # Deleting item at index 3 + >>> colors + ['red', 'blue', 'green'] + +All advanced forms of *subscript* documented in the following sections +are also usable for assignment and deletion. + + +Slicings +======== + +A more advanced form of subscription, *slicing*, is commonly used to +extract a portion of a sequence. In this form, the subscript is a +*slice*: up to three expressions separated by colons. Any of the +expressions may be omitted, but a slice must contain at least one +colon: + + >>> number_names = ['zero', 'one', 'two', 'three', 'four', 'five'] + >>> number_names[1:3] + ['one', 'two'] + >>> number_names[1:] + ['one', 'two', 'three', 'four', 'five'] + >>> number_names[:3] + ['zero', 'one', 'two'] + >>> number_names[:] + ['zero', 'one', 'two', 'three', 'four', 'five'] + >>> number_names[::2] + ['zero', 'two', 'four'] + >>> number_names[:-3] + ['zero', 'one', 'two'] + >>> del number_names[4:] + >>> number_names + ['zero', 'one', 'two', 'three'] + +When a slice is evaluated, the interpreter constructs a "slice" object +whose "start", "stop" and "step" attributes, respectively, are the +results of the expressions between the colons. Any missing expression +evaluates to "None". This "slice" object is then passed to the +"__getitem__()" or "__class_getitem__()" *special method*, as above. + + # continuing with the SubscriptionDemo instance defined above: + >>> demo[2:3] + subscripted with: slice(2, 3, None) + >>> demo[::'spam'] + subscripted with: slice(None, None, 'spam') + + +Comma-separated subscripts +========================== + +The subscript can also be given as two or more comma-separated +expressions or slices: + + # continuing with the SubscriptionDemo instance defined above: + >>> demo[1, 2, 3] + subscripted with: (1, 2, 3) + >>> demo[1:2, 3] + subscripted with: (slice(1, 2, None), 3) + +This form is commonly used with numerical libraries for slicing multi- +dimensional data. In this case, the interpreter constructs a "tuple" +of the results of the expressions or slices, and passes this tuple to +the "__getitem__()" or "__class_getitem__()" *special method*, as +above. + +The subscript may also be given as a single expression or slice +followed by a comma, to specify a one-element tuple: + + >>> demo['spam',] + subscripted with: ('spam',) + + +“Starred” subscriptions +======================= + +Added in version 3.11: Expressions in *tuple_slices* may be starred. +See **PEP 646**. + +The subscript can also contain a starred expression. In this case, the +interpreter unpacks the result into a tuple, and passes this tuple to +"__getitem__()" or "__class_getitem__()": + + # continuing with the SubscriptionDemo instance defined above: + >>> demo[*range(10)] + subscripted with: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) + +Starred expressions may be combined with comma-separated expressions +and slices: + + >>> demo['a', 'b', *range(3), 'c'] + subscripted with: ('a', 'b', 0, 1, 2, 'c') + + +Formal subscription grammar +=========================== + + subscription: primary '[' subscript ']' + subscript: single_subscript | tuple_subscript + single_subscript: proper_slice | assignment_expression + proper_slice: [expression] ":" [expression] [ ":" [expression] ] + tuple_subscript: ','.(single_subscript | starred_expression)+ [','] + +Recall that the "|" operator denotes ordered choice. Specifically, in +"subscript", if both alternatives would match, the first +("single_subscript") has priority. ''', 'truth': r'''Truth Value Testing ******************* @@ -11906,10 +12115,19 @@ negative subscripts by adding the sequence length. For example, "a[-2]" equals "a[n-2]", the second to last item of sequence a with length "n". -Sequences also support slicing: "a[i:j]" selects all items with index -*k* such that *i* "<=" *k* "<" *j*. When used as an expression, a -slice is a sequence of the same type. The comment above about negative -indexes also applies to negative slice positions. +The resulting value must be a nonnegative integer less than the number +of items in the sequence. If it is not, an "IndexError" is raised. + +Sequences also support slicing: "a[start:stop]" selects all items with +index *k* such that *start* "<=" *k* "<" *stop*. When used as an +expression, a slice is a sequence of the same type. The comment above +about negative subscripts also applies to negative slice positions. +Note that no error is raised if a slice position is less than zero or +larger than the length of the sequence. + +If *start* is missing or "None", slicing behaves as if *start* was +zero. If *stop* is missing or "None", slicing behaves as if *stop* was +equal to the length of the sequence. Some sequences also support “extended slicing” with a third “step” parameter: "a[i:j:k]" selects all items of *a* with index *x* where "x @@ -11930,27 +12148,33 @@ cannot change.) The following types are immutable sequences: Strings - A string is a sequence of values that represent Unicode code - points. All the code points in the range "U+0000 - U+10FFFF" can be - represented in a string. Python doesn’t have a char type; instead, - every code point in the string is represented as a string object - with length "1". The built-in function "ord()" converts a code - point from its string form to an integer in the range "0 - 10FFFF"; - "chr()" converts an integer in the range "0 - 10FFFF" to the - corresponding length "1" string object. "str.encode()" can be used - to convert a "str" to "bytes" using the given text encoding, and + A string ("str") is a sequence of values that represent + *characters*, or more formally, *Unicode code points*. All the code + points in the range "0" to "0x10FFFF" can be represented in a + string. + + Python doesn’t have a dedicated *character* type. Instead, every + code point in the string is represented as a string object with + length "1". + + The built-in function "ord()" converts a code point from its string + form to an integer in the range "0" to "0x10FFFF"; "chr()" converts + an integer in the range "0" to "0x10FFFF" to the corresponding + length "1" string object. "str.encode()" can be used to convert a + "str" to "bytes" using the given text encoding, and "bytes.decode()" can be used to achieve the opposite. Tuples - The items of a tuple are arbitrary Python objects. Tuples of two or - more items are formed by comma-separated lists of expressions. A - tuple of one item (a ‘singleton’) can be formed by affixing a comma - to an expression (an expression by itself does not create a tuple, - since parentheses must be usable for grouping of expressions). An - empty tuple can be formed by an empty pair of parentheses. + The items of a "tuple" are arbitrary Python objects. Tuples of two + or more items are formed by comma-separated lists of expressions. + A tuple of one item (a ‘singleton’) can be formed by affixing a + comma to an expression (an expression by itself does not create a + tuple, since parentheses must be usable for grouping of + expressions). An empty tuple can be formed by an empty pair of + parentheses. Bytes - A bytes object is an immutable array. The items are 8-bit bytes, + A "bytes" object is an immutable array. The items are 8-bit bytes, represented by integers in the range 0 <= x < 256. Bytes literals (like "b'abc'") and the built-in "bytes()" constructor can be used to create bytes objects. Also, bytes objects can be decoded to @@ -12079,6 +12303,10 @@ Special read-only attributes +----------------------------------------------------+----------------------------------------------------+ | Attribute | Meaning | |====================================================|====================================================| +| function.__builtins__ | A reference to the "dictionary" that holds the | +| | function’s builtins namespace. Added in version | +| | 3.10. | ++----------------------------------------------------+----------------------------------------------------+ | function.__globals__ | A reference to the "dictionary" that holds the | | | function’s global variables – the global namespace | | | of the module in which the function was defined. | diff --git a/Misc/NEWS.d/3.15.0a6.rst b/Misc/NEWS.d/3.15.0a6.rst new file mode 100644 index 0000000..c3e20e0 --- /dev/null +++ b/Misc/NEWS.d/3.15.0a6.rst @@ -0,0 +1,1101 @@ +.. date: 2026-02-10-08-00-17 +.. gh-issue: 144648 +.. nonce: KEuUXp +.. release date: 2026-02-11 +.. section: macOS + +Allowed _remote_debugging to build on more OS versions by using +proc_listpids() rather than proc_listallpids(). + +.. + +.. date: 2026-02-09-23-01-49 +.. gh-issue: 124111 +.. nonce: WmQG7S +.. section: macOS + +Update macOS installer to use Tcl/Tk 9.0.3. + +.. + +.. date: 2026-02-09-22-43-47 +.. gh-issue: 144551 +.. nonce: VOfgfD +.. section: macOS + +Update macOS installer to use OpenSSL 3.5.5. + +.. + +.. date: 2026-01-05-21-36-58 +.. gh-issue: 80620 +.. nonce: p1bD58 +.. section: Windows + +Support negative timestamps in :func:`time.gmtime`, :func:`time.localtime`, +and various :mod:`datetime` functions. + +.. + +.. date: 2026-02-03-07-57-24 +.. gh-issue: 144415 +.. nonce: U3L15r +.. section: Tests + +The Android testbed now distinguishes between stdout/stderr messages which +were triggered by a newline, and those triggered by a manual call to +``flush``. This fixes logging of progress indicators and similar content. + +.. + +.. date: 2026-01-08-16-56-59 +.. gh-issue: 65784 +.. nonce: aKNo1U +.. section: Tests + +Add support for parametrized resource ``wantobjects`` in regrtests, which +allows to run Tkinter tests with the specified value of +:data:`!tkinter.wantobjects`, for example ``-u wantobjects=0``. + +.. + +.. date: 2026-01-21-12-34-05 +.. gh-issue: 144125 +.. nonce: TAz5uo +.. section: Security + +:mod:`~email.generator.BytesGenerator` will now refuse to serialize (write) +headers that are unsafely folded or delimited; see +:attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas +Bloemsaat and Petr Viktorin in :gh:`121650`). + +.. + +.. date: 2026-01-16-14-40-31 +.. gh-issue: 143935 +.. nonce: U2YtKl +.. section: Security + +Fixed a bug in the folding of comments when flattening an email message +using a modern email policy. Comments consisting of a very long sequence of +non-foldable characters could trigger a forced line wrap that omitted the +required leading space on the continuation line, causing the remainder of +the comment to be interpreted as a new header field. This enabled header +injection with carefully crafted inputs. + +.. + +.. date: 2026-01-16-11-51-19 +.. gh-issue: 143925 +.. nonce: mrtcHW +.. section: Security + +Reject control characters in ``data:`` URL media types. + +.. + +.. date: 2026-01-16-11-43-47 +.. gh-issue: 143923 +.. nonce: DuytMe +.. section: Security + +Reject control characters in POP3 commands. + +.. + +.. date: 2026-01-16-11-41-06 +.. gh-issue: 143921 +.. nonce: AeCOor +.. section: Security + +Reject control characters in IMAP commands. + +.. + +.. date: 2026-01-16-11-13-15 +.. gh-issue: 143919 +.. nonce: kchwZV +.. section: Security + +Reject control characters in :class:`http.cookies.Morsel` fields and values. + +.. + +.. date: 2026-01-16-11-07-36 +.. gh-issue: 143916 +.. nonce: dpWeOD +.. section: Security + +Reject C0 control characters within wsgiref.headers.Headers fields, values, +and parameters. + +.. + +.. date: 2026-02-06-23-58-54 +.. gh-issue: 144538 +.. nonce: 5_OvGv +.. section: Library + +Bump the version of pip bundled in ensurepip to version 26.0.1 + +.. + +.. date: 2026-02-05-17-15-31 +.. gh-issue: 144493 +.. nonce: XuxwVu +.. section: Library + +Improve an exception error message in ``_overlapped.BindLocal()`` that is +raised when :meth:`asyncio.loop.sock_connect` is called on a +:class:`asyncio.ProactorEventLoop` with a socket that has an invalid address +family. + +.. + +.. date: 2026-02-03-14-16-49 +.. gh-issue: 144386 +.. nonce: 9Wa59r +.. section: Library + +Add support for arbitrary descriptors :meth:`!__enter__`, :meth:`!__exit__`, +:meth:`!__aenter__`, and :meth:`!__aexit__` in :class:`contextlib.ExitStack` +and :class:`contextlib.AsyncExitStack`, for consistency with the +:keyword:`with` and :keyword:`async with` statements. + +.. + +.. date: 2026-02-03-08-50-58 +.. gh-issue: 123471 +.. nonce: yF1Gym +.. section: Library + +Make concurrent iteration over +:class:`itertools.combinations_with_replacement` and +:class:`itertools.permutations` safe under free-threading. + +.. + +.. date: 2026-02-02-12-09-38 +.. gh-issue: 74453 +.. nonce: 19h4Z5 +.. section: Library + +Deprecate :func:`os.path.commonprefix` in favor of +:func:`os.path.commonpath` for path segment prefixes. + +The :func:`os.path.commonprefix` function is being deprecated due to having +a misleading name and module. The function is not safe to use for path +prefixes despite being included in a module about path manipulation, meaning +it is easy to accidentally introduce path traversal vulnerabilities into +Python programs by using this function. + +.. + +.. date: 2026-02-01-15-25-00 +.. gh-issue: 144380 +.. nonce: U7py_s +.. section: Library + +Improve performance of :class:`io.BufferedReader` line iteration by ~49%. + +.. + +.. date: 2026-01-31-17-15-49 +.. gh-issue: 144363 +.. nonce: X9f0sU +.. section: Library + +Update bundled `libexpat <https://libexpat.github.io/>`_ to 2.7.4 + +.. + +.. date: 2026-01-30-13-23-06 +.. gh-issue: 140824 +.. nonce: J1OCrC +.. section: Library + +When :mod:`faulthandler` dumps the list of third-party extension modules, +ignore sub-modules of stdlib packages. Patch by Victor Stinner. + +.. + +.. date: 2026-01-27-14-23-10 +.. gh-issue: 144206 +.. nonce: l0un4U +.. section: Library + +Improve error messages for buffer overflow in :func:`fcntl.fcntl` and +:func:`fcntl.ioctl`. + +.. + +.. date: 2026-01-27-10-02-04 +.. gh-issue: 144264 +.. nonce: Wmzbol +.. section: Library + +Speed up Base64 decoding of data containing ignored characters (both in +non-strict mode and with an explicit *ignorechars* argument). It is now up +to 2 times faster for multiline Base64 data. + +.. + +.. date: 2026-01-27-09-58-52 +.. gh-issue: 144249 +.. nonce: mCIy95 +.. section: Library + +Add filename context to :exc:`OSError` exceptions raised by +:func:`ssl.SSLContext.load_cert_chain`, allowing users to have more context. + +.. + +.. date: 2026-01-27-00-03-41 +.. gh-issue: 132888 +.. nonce: yhTfUN +.. section: Library + +Fix incorrect use of :func:`ctypes.GetLastError` and add missing error +checks for Windows API calls in :mod:`!_pyrepl.windows_console`. + +.. + +.. date: 2026-01-26-12-30-57 +.. gh-issue: 142956 +.. nonce: X9CS8J +.. section: Library + +Updated :mod:`tomllib` to parse TOML 1.1.0. + +.. + +.. date: 2026-01-25-03-23-20 +.. gh-issue: 144217 +.. nonce: E1wVXH +.. section: Library + +:mod:`mimetypes`: Add support for DICOM files (for medical imaging) with the +official MIME type ``application/dicom``. Patch by Benedikt Johannes. + +.. + +.. date: 2026-01-24-23-11-17 +.. gh-issue: 144212 +.. nonce: IXqVL8 +.. section: Library + +Mime type ``image/jxl`` is now supported by :mod:`mimetypes`. + +.. + +.. date: 2026-01-24-13-49-05 +.. gh-issue: 143594 +.. nonce: nilGlg +.. section: Library + +Add :meth:`symtable.Function.get_cells` and :meth:`symtable.Symbol.is_cell` +methods. + +.. + +.. date: 2026-01-23-06-43-21 +.. gh-issue: 144169 +.. nonce: LFy9yi +.. section: Library + +Fix three crashes when non-string keyword arguments are supplied to objects +in the :mod:`ast` module. + +.. + +.. date: 2026-01-22-10-18-17 +.. gh-issue: 144128 +.. nonce: akwY06 +.. section: Library + +Fix a crash in :meth:`array.array.fromlist` when an element's +:meth:`~object.__index__` method mutates the input list during conversion. + +.. + +.. date: 2026-01-21-19-39-07 +.. gh-issue: 144100 +.. nonce: hLMZ8Y +.. section: Library + +Fixed a crash in ctypes when using a deprecated ``POINTER(str)`` type in +``argtypes``. Instead of aborting, ctypes now raises a proper Python +exception when the pointer target type is unresolved. + +.. + +.. date: 2026-01-20-20-54-46 +.. gh-issue: 143658 +.. nonce: v8i1jE +.. section: Library + +:mod:`importlib.metadata`: Use :meth:`str.lower` and :meth:`str.replace` to +further improve performance of +:meth:`!importlib.metadata.Prepared.normalize`. Patch by Hugo van Kemenade +and Henry Schreiner. + +.. + +.. date: 2026-01-20-16-35-55 +.. gh-issue: 144050 +.. nonce: 0kKFbF +.. section: Library + +Fix :func:`stat.filemode` in the pure-Python implementation to avoid +misclassifying invalid mode values as block devices. + +.. + +.. date: 2026-01-19-16-45-16 +.. gh-issue: 83069 +.. nonce: 0TaeH9 +.. section: Library + +:meth:`subprocess.Popen.wait`: when ``timeout`` is not ``None``, an +efficient event-driven mechanism now waits for process termination, if +available. Linux >= 5.3 uses :func:`os.pidfd_open` + :func:`select.poll`. +macOS and other BSD variants use :func:`select.kqueue` + ``KQ_FILTER_PROC`` ++ ``KQ_NOTE_EXIT``. Windows keeps using ``WaitForSingleObject`` (unchanged). +If none of these mechanisms are available, the function falls back to the +traditional busy loop (non-blocking call and short sleeps). Patch by +Giampaolo Rodola. + +.. + +.. date: 2026-01-19-12-48-59 +.. gh-issue: 144030 +.. nonce: 7OK_gB +.. section: Library + +The Python implementation of :func:`functools.lru_cache` differed from the +default C implementation in that it did not check that its argument is +callable. This discrepancy is now fixed and both raise a :exc:`TypeError`. + +.. + +.. date: 2026-01-19-10-26-59 +.. gh-issue: 144001 +.. nonce: dGj8Nk +.. section: Library + +Added the *ignorechars* parameter in :func:`binascii.a2b_base64` and +:func:`base64.b64decode`. + +.. + +.. date: 2026-01-19-00-57-40 +.. gh-issue: 144023 +.. nonce: 29XUcp +.. section: Library + +Fixed validation of file descriptor 0 in posix functions when used with +follow_symlinks parameter. + +.. + +.. date: 2026-01-18-14-35-37 +.. gh-issue: 143999 +.. nonce: MneN4O +.. section: Library + +Fix an issue where :func:`inspect.getgeneratorstate` and +:func:`inspect.getcoroutinestate` could fail for generators wrapped by +:func:`types.coroutine` in the suspended state. + +.. + +.. date: 2026-01-17-07-48-27 +.. gh-issue: 143952 +.. nonce: lqJ55y +.. section: Library + +Fixed :mod:`asyncio` debugging tools to work with new remote debugging API. +Patch by Bartosz Sławecki. + +.. + +.. date: 2026-01-16-14-02-39 +.. gh-issue: 143904 +.. nonce: rErHHA +.. section: Library + +:func:`struct.pack_into` now raises OverflowError instead of IndexError for +too large *offset* argument. + +.. + +.. date: 2026-01-16-10-53-17 +.. gh-issue: 143897 +.. nonce: hWJBHN +.. section: Library + +Remove the :meth:`!isxidstart` and :meth:`!isxidcontinue` methods of +:data:`unicodedata.ucd_3_2_0`. They are now only exposed as +:func:`unicodedata.isxidstart` and :func:`unicodedata.isxidcontinue`. + +.. + +.. date: 2026-01-16-06-22-10 +.. gh-issue: 143831 +.. nonce: VLBTLp +.. section: Library + +:class:`annotationlib.ForwardRef` objects are now hashable when created from +annotation scopes with closures. Previously, hashing such objects would +throw an exception. Patch by Bartosz Sławecki. + +.. + +.. date: 2026-01-15-16-04-39 +.. gh-issue: 143874 +.. nonce: 1qQgvo +.. section: Library + +Fixed a bug in :mod:`pdb` where expression results were not sent back to +remote client. + +.. + +.. date: 2026-01-14-20-35-40 +.. gh-issue: 143754 +.. nonce: m2NQXA +.. section: Library + +Add new :mod:`tkinter` widget methods :meth:`!pack_content`, +:meth:`!place_content` and :meth:`!grid_content` which are alternative +spelling of old :meth:`!*_slaves` methods. + +.. + +.. date: 2026-01-13-16-19-50 +.. gh-issue: 143756 +.. nonce: LQOra1 +.. section: Library + +Fix potential thread safety issues in :mod:`ssl` module. + +.. + +.. date: 2026-01-13-15-56-03 +.. gh-issue: 132604 +.. nonce: lvjNTr +.. section: Library + +Previously, :class:`~typing.Protocol` classes that were not decorated with +:deco:`~typing.runtime_checkable`, but that inherited from another +``Protocol`` class that did have this decorator, could be used in +:func:`isinstance` and :func:`issubclass` checks. This behavior is now +deprecated and such checks will throw a :exc:`TypeError` in Python 3.20. +Patch by Bartosz Sławecki. + +.. + +.. date: 2026-01-13-10-38-43 +.. gh-issue: 143543 +.. nonce: DeQRCO +.. section: Library + +Fix a crash in itertools.groupby that could occur when a user-defined +:meth:`~object.__eq__` method re-enters the iterator during key comparison. + +.. + +.. date: 2026-01-11-14-14-19 +.. gh-issue: 143689 +.. nonce: fzHJ2W +.. section: Library + +Fix :meth:`io.BufferedReader.read1` state cleanup on buffer allocation +failure. + +.. + +.. date: 2026-01-09-12-37-19 +.. gh-issue: 143602 +.. nonce: V8vQpj +.. section: Library + +Fix a inconsistency issue in :meth:`~io.RawIOBase.write` that leads to +unexpected buffer overwrite by deduplicating the buffer exports. + +.. + +.. date: 2026-01-07-19-01-59 +.. gh-issue: 142434 +.. nonce: SHRS5p +.. section: Library + +Use ``ppoll()`` if available in :func:`select.poll` to have a timeout +resolution of 1 nanosecond, instead of a resolution of 1 ms. Patch by Victor +Stinner. + +.. + +.. date: 2026-01-07-11-57-59 +.. gh-issue: 140557 +.. nonce: 3P6-nW +.. section: Library + +:class:`array.array` buffers now have the same alignment when empty as when +allocated. Unaligned buffers can still be created by slicing. + +.. + +.. date: 2026-01-05-05-31-05 +.. gh-issue: 143423 +.. nonce: X7YdnR +.. section: Library + +Fix free-threaded build detection in the sampling profiler when +Py_GIL_DISABLED is set to 0. + +.. + +.. date: 2025-12-28-15-55-53 +.. gh-issue: 101178 +.. nonce: 26jYPs +.. section: Library + +Add Ascii85, Base85, and Z85 support to :mod:`binascii` and improve the +performance of the base-85 converters in :mod:`base64`. + +.. + +.. date: 2025-12-19-11-30-31 +.. gh-issue: 142966 +.. nonce: PzGiv2 +.. section: Library + +Fix :func:`!ctypes.POINTER.set_type` not updating the format string to match +the type. + +.. + +.. date: 2025-12-15-02-02-45 +.. gh-issue: 142555 +.. nonce: EC9QN_ +.. section: Library + +:mod:`array`: fix a crash in ``a[i] = v`` when converting *i* to an index +via :meth:`i.__index__ <object.__index__>` or :meth:`i.__float__ +<object.__float__>` mutates the array. + +.. + +.. date: 2025-12-08-18-40-17 +.. gh-issue: 142438 +.. nonce: tH-Y16 +.. section: Library + +Fix _decimal builds configured with EXTRA_FUNCTIONALITY by correcting the +Context.apply wrapper to pass the right argument. + +.. + +.. date: 2025-11-22-20-30-00 +.. gh-issue: 141860 +.. nonce: frksvr +.. section: Library + +Add an ``on_error`` keyword-only parameter to +:func:`multiprocessing.set_forkserver_preload` to control how import +failures during module preloading are handled. Accepts ``'ignore'`` +(default, silent), ``'warn'`` (emit :exc:`ImportWarning`), or ``'fail'`` +(raise exception). Contributed by Nick Neumann and Gregory P. Smith. + +.. + +.. date: 2025-11-06-12-03-29 +.. gh-issue: 125346 +.. nonce: 7Gfpgw +.. section: Library + +Accepting ``+`` and ``/`` characters with an alternative alphabet in +:func:`base64.b64decode` and :func:`base64.urlsafe_b64decode` is now +deprecated. In future Python versions they will be errors in the strict mode +and discarded in the non-strict mode. + +.. + +.. date: 2025-10-27-00-13-04 +.. gh-issue: 140715 +.. nonce: WkozE0 +.. section: Library + +Add ``'%F'`` support to :meth:`~datetime.datetime.strptime`. + +.. + +.. date: 2024-11-27-13-11-16 +.. gh-issue: 67041 +.. nonce: ym2WKK +.. section: Library + +Add the *missing_as_none* parameter to :func:`~urllib.parse.urlparse`, +:func:`~urllib.parse.urlsplit` and :func:`~urllib.parse.urldefrag` +functions. Add the *keep_empty* parameter to +:func:`~urllib.parse.urlunparse` and :func:`~urllib.parse.urlunsplit` +functions. This allows to distinguish between empty and not defined URI +components and preserve empty components. + +.. + +.. date: 2020-07-14-23-54-18 +.. gh-issue: 77188 +.. nonce: TyI3_Q +.. section: Library + +The :mod:`pickle` module now properly handles name-mangled private methods. + +.. + +.. date: 2026-01-13-01-21-20 +.. gh-issue: 143774 +.. nonce: rqGwX1 +.. section: IDLE + +Better explain the operation of Format / Format Paragraph. + +.. + +.. date: 2026-02-10-12-08-58 +.. gh-issue: 134584 +.. nonce: P9LDy5 +.. section: Core and Builtins + +Optimize and eliminate ref-counting in ``_BINARY_OP_SUBSCR_LIST_SLICE`` + +.. + +.. date: 2026-02-08-18-13-38 +.. gh-issue: 144563 +.. nonce: hb3kpp +.. section: Core and Builtins + +Fix interaction of the Tachyon profiler and :mod:`ctypes` and other modules +that load the Python shared library (if present) in an independent map as +this was causing the mechanism that loads the binary information to be +confused. Patch by Pablo Galindo + +.. + +.. date: 2026-02-08-12-47-27 +.. gh-issue: 144601 +.. nonce: E4Yi9J +.. section: Core and Builtins + +Fix crash when importing a module whose ``PyInit`` function raises an +exception from a subinterpreter. + +.. + +.. date: 2026-02-06-17-59-47 +.. gh-issue: 144549 +.. nonce: 5BhPlY +.. section: Core and Builtins + +Fix building the tail calling interpreter on Visual Studio 2026 with +free-threading. + +.. + +.. date: 2026-02-05-13-30-00 +.. gh-issue: 144513 +.. nonce: IjSTd7 +.. section: Core and Builtins + +Fix potential deadlock when using critical sections during stop-the-world +pauses in the free-threaded build. + +.. + +.. date: 2026-02-04-12-19-48 +.. gh-issue: 131798 +.. nonce: My5jLy +.. section: Core and Builtins + +Optimise ``_GUARD_TOS_SLICE`` in the JIT. + +.. + +.. date: 2026-02-04-11-19-45 +.. gh-issue: 144330 +.. nonce: kOowSb +.. section: Core and Builtins + +Move ``classmethod`` and ``staticmethod`` initialization from ``__init__()`` +to ``__new__()``. Patch by Victor Stinner. + +.. + +.. date: 2026-02-03-17-08-13 +.. gh-issue: 144446 +.. nonce: db5619 +.. section: Core and Builtins + +Fix data races in the free-threaded build when reading frame object +attributes while another thread is executing the frame. + +.. + +.. date: 2026-02-02-17-50-14 +.. gh-issue: 120321 +.. nonce: Xfr7tL +.. section: Core and Builtins + +Add ``gi_state``, ``cr_state``, and ``ag_state`` attributes to generators, +coroutines, and async generators that return the current state as a string +(e.g., ``GEN_RUNNING``). The :mod:`inspect` module functions +:func:`~inspect.getgeneratorstate`, :func:`~inspect.getcoroutinestate`, and +:func:`~inspect.getasyncgenstate` now return these attributes directly. + +.. + +.. date: 2026-02-02-17-07-34 +.. gh-issue: 141563 +.. nonce: GheXjr +.. section: Core and Builtins + +Fix thread safety of :c:macro:`! PyDateTime_IMPORT`. + +.. + +.. date: 2026-01-30-15-54-50 +.. gh-issue: 144280 +.. nonce: kgiP5R +.. section: Core and Builtins + +Fix a bug in JIT where the predicate symbol had no truthiness + +.. + +.. date: 2026-01-30-10-38-07 +.. gh-issue: 140550 +.. nonce: Us9vPD +.. section: Core and Builtins + +In :c:member:`PyModuleDef.m_slots`, allow slots that repeat information +present in :c:type:`PyModuleDef`. + +.. + +.. date: 2026-01-29-16-57-11 +.. gh-issue: 139103 +.. nonce: icXIEQ +.. section: Core and Builtins + +Improve scaling of :func:`~collections.namedtuple` instantiation in the +free-threaded build. + +.. + +.. date: 2026-01-29-02-18-08 +.. gh-issue: 144307 +.. nonce: CLbm_o +.. section: Core and Builtins + +Prevent a reference leak in module teardown at interpreter finalization. + +.. + +.. date: 2026-01-29-01-42-14 +.. gh-issue: 144319 +.. nonce: _7EtdB +.. section: Core and Builtins + +Add huge pages support for the pymalloc allocator. Patch by Pablo Galindo + +.. + +.. date: 2026-01-27-17-49-43 +.. gh-issue: 120321 +.. nonce: Vo7c9T +.. section: Core and Builtins + +Made ``gi_yieldfrom`` thread-safe in the free-threading build by using a +lightweight lock on the frame state. + +.. + +.. date: 2026-01-23-20-20-42 +.. gh-issue: 144194 +.. nonce: IbXfxd +.. section: Core and Builtins + +Fix error handling in perf jitdump initialization on memory allocation +failure. + +.. + +.. date: 2026-01-22-17-04-30 +.. gh-issue: 143962 +.. nonce: dQR1a9 +.. section: Core and Builtins + +Name suggestion for not normalized name suggests now the normalized name or +the closest name to the normalized name. If the suggested name is not ASCII, +include also its ASCII representation. + +.. + +.. date: 2026-01-22-16-20-16 +.. gh-issue: 144157 +.. nonce: dxyp7k +.. section: Core and Builtins + +:meth:`bytes.translate` now allows the compiler to unroll its loop more +usefully for a 2x speedup in the common no-deletions specified case. + +.. + +.. date: 2026-01-21-02-30-06 +.. gh-issue: 144068 +.. nonce: 9TTu7v +.. section: Core and Builtins + +Fix JIT tracer memory leak, ensure the JIT tracer state is freed when daemon +threads are cleaned up during interpreter shutdown. + +.. + +.. date: 2026-01-19-02-33-45 +.. gh-issue: 144012 +.. nonce: wVEEWs +.. section: Core and Builtins + +Check if the result is ``NULL`` in ``BINARY_OP_EXTENT`` opcode. + +.. + +.. date: 2026-01-19-01-56-44 +.. gh-issue: 144007 +.. nonce: 1xjdBf +.. section: Core and Builtins + +Eliminate redundant refcounting in the JIT for ``BINARY_OP``. + +.. + +.. date: 2026-01-19-01-26-12 +.. gh-issue: 144005 +.. nonce: Z3O33m +.. section: Core and Builtins + +Eliminate redundant refcounting from ``BINARY_OP_EXTEND``. + +.. + +.. date: 2026-01-16-23-19-38 +.. gh-issue: 143939 +.. nonce: w9TWch +.. section: Core and Builtins + +Fix erroneous "cannot reuse already awaited coroutine" error that could +occur when a generator was run during the process of clearing a coroutine's +frame. + +.. + +.. date: 2026-01-13-22-26-49 +.. gh-issue: 141805 +.. nonce: QzIKPS +.. section: Core and Builtins + +Fix crash in :class:`set` when objects with the same hash are concurrently +added to the set after removing an element with the same hash while the set +still contains elements with the same hash. + +.. + +.. date: 2026-01-11-20-11-36 +.. gh-issue: 143670 +.. nonce: klnGoD +.. section: Core and Builtins + +Fixes a crash in ``ga_repr_items_list`` function. + +.. + +.. date: 2026-01-10-10-58-36 +.. gh-issue: 143650 +.. nonce: k8mR4x +.. section: Core and Builtins + +Fix race condition in :mod:`importlib` where a thread could receive a stale +module reference when another thread's import fails. + +.. + +.. date: 2026-01-08-14-55-31 +.. gh-issue: 143569 +.. nonce: -Ltu3c +.. section: Core and Builtins + +Generator expressions in 3.15 now conform to the documented behavior when +the iterable does not support iteration. This matches the behavior in 3.14 +and earlier + +.. + +.. date: 2025-12-29-19-31-46 +.. gh-issue: 143192 +.. nonce: JxGAyl +.. section: Core and Builtins + +Improve performance of bitwise operations on multi-digit ints. + +.. + +.. date: 2025-12-24-13-19-16 +.. gh-issue: 132657 +.. nonce: _P4DDb +.. section: Core and Builtins + +If we are specializing to ``LOAD_GLOBAL_MODULE`` or ``LOAD_ATTR_MODULE``, +try to enable deferred reference counting for the value, if the object is +owned by a different thread. This applies to the free-threaded build only +and should improve scaling of multi-threaded programs. Note that when +deferred reference counting is enabled, the object will be deallocated by +the GC, rather than by :c:func:`Py_DECREF`. + +.. + +.. date: 2025-12-21-18-12-30 +.. gh-issue: 143055 +.. nonce: PzwccL +.. section: Core and Builtins + +Implement :pep:`798` (Unpacking in Comprehensions). Patch by Adam Hartz. + +.. + +.. date: 2025-11-29-10-06-06 +.. gh-issue: 142037 +.. nonce: OpIGzK +.. section: Core and Builtins + +Improve error messages for printf-style formatting. For errors in the format +string, always include the position of the start of the format unit. For +errors related to the formatted arguments, always include the number or the +name of the argument. Raise more specific errors and include more +information (type and number of arguments, most probable causes of error). + +.. + +.. date: 2025-10-24-17-30-51 +.. gh-issue: 140557 +.. nonce: X2GETk +.. section: Core and Builtins + +:class:`bytearray` buffers now have the same alignment when empty as when +allocated. Unaligned buffers can still be created by slicing. + +.. + +.. date: 2025-10-16-22-36-05 +.. gh-issue: 140232 +.. nonce: u3srgv +.. section: Core and Builtins + +Frozenset objects with immutable elements are no longer tracked by the +garbage collector. + +.. + +.. date: 2024-02-10-05-42-26 +.. gh-issue: 115231 +.. nonce: 6T7dzi +.. section: Core and Builtins + +Setup ``__module__`` attribute for built-in static methods. Patch by Sergey +B Kirpichev. + +.. + +.. date: 2026-01-16-15-04-26 +.. gh-issue: 143869 +.. nonce: vf94km +.. section: C API + +Added :c:func:`PyLong_GetNativeLayout`, :c:struct:`PyLongLayout`, +:c:struct:`PyLongExport`, :c:func:`PyLong_Export`, +:c:func:`PyLong_FreeExport`, :c:struct:`PyLongWriter`, +:c:func:`PyLongWriter_Create`, :c:func:`PyLongWriter_Finish` and +:c:func:`PyLongWriter_Discard` to the limited API. + +.. + +.. date: 2025-12-16-18-39-30 +.. gh-issue: 141070 +.. nonce: 4EKDZ1 +.. section: C API + +Renamed :c:func:`!PyUnstable_Object_Dump` to :c:func:`PyObject_Dump`. + +.. + +.. date: 2026-02-10-06-31-29 +.. gh-issue: 140421 +.. nonce: vxosUx +.. section: Build + +Disable the perf trampoline on older macOS versions where it cannot be +built. + +.. + +.. date: 2026-01-28-19-04-12 +.. gh-issue: 144309 +.. nonce: 3sMFOh +.. section: Build + +Build Python with POSIX 2024, instead of POSIX 2008. Patch by Victor +Stinner. + +.. + +.. date: 2026-01-27-23-39-26 +.. gh-issue: 144278 +.. nonce: tejFwL +.. section: Build + +Enables defining the ``_PY_IMPL_NAME`` and ``_PY_IMPL_CACHE_TAG`` +preprocessor definitions to override :data:`sys.implementation` at build +time. Definitions need to include quotes when setting to a string literal. +Setting the cache tag to ``NULL`` has the effect of completely disabling +automatic creation and use of ``.pyc`` files. + +.. + +.. date: 2026-01-17-15-31-19 +.. gh-issue: 143960 +.. nonce: Zi0EqR +.. section: Build + +Add support for OpenSSL 3.6, drop EOL 3.2. Patch by Hugo van Kemenade. + +.. + +.. date: 2026-01-16-14-27-53 +.. gh-issue: 143941 +.. nonce: TiaE-3 +.. section: Build + +Move WASI-related files to :file:`Platforms/WASI`. Along the way, leave a +deprecated :file:`Tools/wasm/wasi/__main__.py` behind for +backwards-compatibility. + +.. + +.. date: 2026-01-15-03-36-16 +.. gh-issue: 143842 +.. nonce: EZLutl +.. section: Build + +Prevent static builds from clashing with curses by making the optimizer +COLORS table static. diff --git a/Misc/NEWS.d/next/Build/2026-01-15-03-36-16.gh-issue-143842.EZLutl.rst b/Misc/NEWS.d/next/Build/2026-01-15-03-36-16.gh-issue-143842.EZLutl.rst deleted file mode 100644 index 4d5b114..0000000 --- a/Misc/NEWS.d/next/Build/2026-01-15-03-36-16.gh-issue-143842.EZLutl.rst +++ /dev/null @@ -1,2 +0,0 @@ -Prevent static builds from clashing with curses by making the optimizer -COLORS table static. diff --git a/Misc/NEWS.d/next/Build/2026-01-16-14-27-53.gh-issue-143941.TiaE-3.rst b/Misc/NEWS.d/next/Build/2026-01-16-14-27-53.gh-issue-143941.TiaE-3.rst deleted file mode 100644 index 6883936..0000000 --- a/Misc/NEWS.d/next/Build/2026-01-16-14-27-53.gh-issue-143941.TiaE-3.rst +++ /dev/null @@ -1,3 +0,0 @@ -Move WASI-related files to :file:`Platforms/WASI`. Along the way, leave a -deprecated :file:`Tools/wasm/wasi/__main__.py` behind for -backwards-compatibility. diff --git a/Misc/NEWS.d/next/Build/2026-01-17-15-31-19.gh-issue-143960.Zi0EqR.rst b/Misc/NEWS.d/next/Build/2026-01-17-15-31-19.gh-issue-143960.Zi0EqR.rst deleted file mode 100644 index 2b8e01f..0000000 --- a/Misc/NEWS.d/next/Build/2026-01-17-15-31-19.gh-issue-143960.Zi0EqR.rst +++ /dev/null @@ -1 +0,0 @@ -Add support for OpenSSL 3.6, drop EOL 3.2. Patch by Hugo van Kemenade. diff --git a/Misc/NEWS.d/next/Build/2026-01-27-23-39-26.gh-issue-144278.tejFwL.rst b/Misc/NEWS.d/next/Build/2026-01-27-23-39-26.gh-issue-144278.tejFwL.rst deleted file mode 100644 index 49dbdd6..0000000 --- a/Misc/NEWS.d/next/Build/2026-01-27-23-39-26.gh-issue-144278.tejFwL.rst +++ /dev/null @@ -1,5 +0,0 @@ -Enables defining the ``_PY_IMPL_NAME`` and ``_PY_IMPL_CACHE_TAG`` preprocessor -definitions to override :data:`sys.implementation` at build time. Definitions -need to include quotes when setting to a string literal. Setting the cache tag -to ``NULL`` has the effect of completely disabling automatic creation and use of -``.pyc`` files. diff --git a/Misc/NEWS.d/next/Build/2026-01-28-19-04-12.gh-issue-144309.3sMFOh.rst b/Misc/NEWS.d/next/Build/2026-01-28-19-04-12.gh-issue-144309.3sMFOh.rst deleted file mode 100644 index c64ef49..0000000 --- a/Misc/NEWS.d/next/Build/2026-01-28-19-04-12.gh-issue-144309.3sMFOh.rst +++ /dev/null @@ -1 +0,0 @@ -Build Python with POSIX 2024, instead of POSIX 2008. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Build/2026-02-10-06-31-29.gh-issue-140421.vxosUx.rst b/Misc/NEWS.d/next/Build/2026-02-10-06-31-29.gh-issue-140421.vxosUx.rst deleted file mode 100644 index cab48f1..0000000 --- a/Misc/NEWS.d/next/Build/2026-02-10-06-31-29.gh-issue-140421.vxosUx.rst +++ /dev/null @@ -1 +0,0 @@ -Disable the perf trampoline on older macOS versions where it cannot be built. diff --git a/Misc/NEWS.d/next/C_API/2025-12-16-18-39-30.gh-issue-141070.4EKDZ1.rst b/Misc/NEWS.d/next/C_API/2025-12-16-18-39-30.gh-issue-141070.4EKDZ1.rst deleted file mode 100644 index 09ccd12..0000000 --- a/Misc/NEWS.d/next/C_API/2025-12-16-18-39-30.gh-issue-141070.4EKDZ1.rst +++ /dev/null @@ -1 +0,0 @@ -Renamed :c:func:`!PyUnstable_Object_Dump` to :c:func:`PyObject_Dump`. diff --git a/Misc/NEWS.d/next/C_API/2026-01-16-15-04-26.gh-issue-143869.vf94km.rst b/Misc/NEWS.d/next/C_API/2026-01-16-15-04-26.gh-issue-143869.vf94km.rst deleted file mode 100644 index 60b0c1e..0000000 --- a/Misc/NEWS.d/next/C_API/2026-01-16-15-04-26.gh-issue-143869.vf94km.rst +++ /dev/null @@ -1,5 +0,0 @@ -Added :c:func:`PyLong_GetNativeLayout`, :c:struct:`PyLongLayout`, -:c:struct:`PyLongExport`, :c:func:`PyLong_Export`, -:c:func:`PyLong_FreeExport`, :c:struct:`PyLongWriter`, -:c:func:`PyLongWriter_Create`, :c:func:`PyLongWriter_Finish` and -:c:func:`PyLongWriter_Discard` to the limited API. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2024-02-10-05-42-26.gh-issue-115231.6T7dzi.rst b/Misc/NEWS.d/next/Core_and_Builtins/2024-02-10-05-42-26.gh-issue-115231.6T7dzi.rst deleted file mode 100644 index 0e41bc9..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2024-02-10-05-42-26.gh-issue-115231.6T7dzi.rst +++ /dev/null @@ -1,2 +0,0 @@ -Setup ``__module__`` attribute for built-in static methods. Patch by Sergey -B Kirpichev. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-22-36-05.gh-issue-140232.u3srgv.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-22-36-05.gh-issue-140232.u3srgv.rst deleted file mode 100644 index e40daac..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-22-36-05.gh-issue-140232.u3srgv.rst +++ /dev/null @@ -1 +0,0 @@ -Frozenset objects with immutable elements are no longer tracked by the garbage collector. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-10-24-17-30-51.gh-issue-140557.X2GETk.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-10-24-17-30-51.gh-issue-140557.X2GETk.rst deleted file mode 100644 index d584279..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-10-24-17-30-51.gh-issue-140557.X2GETk.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`bytearray` buffers now have the same alignment -when empty as when allocated. Unaligned buffers can still be created by slicing. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-11-29-10-06-06.gh-issue-142037.OpIGzK.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-11-29-10-06-06.gh-issue-142037.OpIGzK.rst deleted file mode 100644 index 6a59be7..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-11-29-10-06-06.gh-issue-142037.OpIGzK.rst +++ /dev/null @@ -1,7 +0,0 @@ -Improve error messages for printf-style formatting. -For errors in the format string, always include the position of the -start of the format unit. -For errors related to the formatted arguments, always include the number -or the name of the argument. -Raise more specific errors and include more information (type and number -of arguments, most probable causes of error). diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-21-18-12-30.gh-issue-143055.PzwccL.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-12-21-18-12-30.gh-issue-143055.PzwccL.rst deleted file mode 100644 index d3ed406..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-21-18-12-30.gh-issue-143055.PzwccL.rst +++ /dev/null @@ -1 +0,0 @@ -Implement :pep:`798` (Unpacking in Comprehensions). Patch by Adam Hartz. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-24-13-19-16.gh-issue-132657._P4DDb.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-12-24-13-19-16.gh-issue-132657._P4DDb.rst deleted file mode 100644 index bbc9611..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-24-13-19-16.gh-issue-132657._P4DDb.rst +++ /dev/null @@ -1,6 +0,0 @@ -If we are specializing to ``LOAD_GLOBAL_MODULE`` or ``LOAD_ATTR_MODULE``, try -to enable deferred reference counting for the value, if the object is owned by -a different thread. This applies to the free-threaded build only and should -improve scaling of multi-threaded programs. Note that when deferred reference -counting is enabled, the object will be deallocated by the GC, rather than by -:c:func:`Py_DECREF`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-29-19-31-46.gh-issue-143192.JxGAyl.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-12-29-19-31-46.gh-issue-143192.JxGAyl.rst deleted file mode 100644 index 3a99b3d..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-12-29-19-31-46.gh-issue-143192.JxGAyl.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance of bitwise operations on multi-digit ints. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-08-14-55-31.gh-issue-143569.-Ltu3c.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-08-14-55-31.gh-issue-143569.-Ltu3c.rst deleted file mode 100644 index c625c3b..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-08-14-55-31.gh-issue-143569.-Ltu3c.rst +++ /dev/null @@ -1,3 +0,0 @@ -Generator expressions in 3.15 now conform to the documented behavior when -the iterable does not support iteration. This matches the behavior in 3.14 -and earlier diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-10-10-58-36.gh-issue-143650.k8mR4x.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-10-10-58-36.gh-issue-143650.k8mR4x.rst deleted file mode 100644 index 7bee70a..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-10-10-58-36.gh-issue-143650.k8mR4x.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix race condition in :mod:`importlib` where a thread could receive a stale -module reference when another thread's import fails. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-11-20-11-36.gh-issue-143670.klnGoD.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-11-20-11-36.gh-issue-143670.klnGoD.rst deleted file mode 100644 index 4ce0e71..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-11-20-11-36.gh-issue-143670.klnGoD.rst +++ /dev/null @@ -1 +0,0 @@ -Fixes a crash in ``ga_repr_items_list`` function. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-13-22-26-49.gh-issue-141805.QzIKPS.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-13-22-26-49.gh-issue-141805.QzIKPS.rst deleted file mode 100644 index 8878d87..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-13-22-26-49.gh-issue-141805.QzIKPS.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix crash in :class:`set` when objects with the same hash are concurrently -added to the set after removing an element with the same hash while the set -still contains elements with the same hash. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-16-23-19-38.gh-issue-143939.w9TWch.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-16-23-19-38.gh-issue-143939.w9TWch.rst deleted file mode 100644 index 4742366..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-16-23-19-38.gh-issue-143939.w9TWch.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix erroneous "cannot reuse already awaited coroutine" error that could -occur when a generator was run during the process of clearing a coroutine's -frame. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-26-12.gh-issue-144005.Z3O33m.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-26-12.gh-issue-144005.Z3O33m.rst deleted file mode 100644 index b358219..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-26-12.gh-issue-144005.Z3O33m.rst +++ /dev/null @@ -1 +0,0 @@ -Eliminate redundant refcounting from ``BINARY_OP_EXTEND``. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-56-44.gh-issue-144007.1xjdBf.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-56-44.gh-issue-144007.1xjdBf.rst deleted file mode 100644 index 26db86f..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-01-56-44.gh-issue-144007.1xjdBf.rst +++ /dev/null @@ -1 +0,0 @@ -Eliminate redundant refcounting in the JIT for ``BINARY_OP``. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-02-33-45.gh-issue-144012.wVEEWs.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-02-33-45.gh-issue-144012.wVEEWs.rst deleted file mode 100644 index 716a6e1..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-19-02-33-45.gh-issue-144012.wVEEWs.rst +++ /dev/null @@ -1 +0,0 @@ -Check if the result is ``NULL`` in ``BINARY_OP_EXTENT`` opcode. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-21-02-30-06.gh-issue-144068.9TTu7v.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-21-02-30-06.gh-issue-144068.9TTu7v.rst deleted file mode 100644 index b3e5db6..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-21-02-30-06.gh-issue-144068.9TTu7v.rst +++ /dev/null @@ -1 +0,0 @@ -Fix JIT tracer memory leak, ensure the JIT tracer state is freed when daemon threads are cleaned up during interpreter shutdown. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-16-20-16.gh-issue-144157.dxyp7k.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-16-20-16.gh-issue-144157.dxyp7k.rst deleted file mode 100644 index ff62d73..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-16-20-16.gh-issue-144157.dxyp7k.rst +++ /dev/null @@ -1,2 +0,0 @@ -:meth:`bytes.translate` now allows the compiler to unroll its loop more -usefully for a 2x speedup in the common no-deletions specified case. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-17-04-30.gh-issue-143962.dQR1a9.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-17-04-30.gh-issue-143962.dQR1a9.rst deleted file mode 100644 index 71c2476..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-22-17-04-30.gh-issue-143962.dQR1a9.rst +++ /dev/null @@ -1,3 +0,0 @@ -Name suggestion for not normalized name suggests now the normalized name or -the closest name to the normalized name. If the suggested name is not ASCII, -include also its ASCII representation. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-23-20-20-42.gh-issue-144194.IbXfxd.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-23-20-20-42.gh-issue-144194.IbXfxd.rst deleted file mode 100644 index 1f33284..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-23-20-20-42.gh-issue-144194.IbXfxd.rst +++ /dev/null @@ -1 +0,0 @@ -Fix error handling in perf jitdump initialization on memory allocation failure. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-27-17-49-43.gh-issue-120321.Vo7c9T.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-27-17-49-43.gh-issue-120321.Vo7c9T.rst deleted file mode 100644 index 052ed07..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-27-17-49-43.gh-issue-120321.Vo7c9T.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made ``gi_yieldfrom`` thread-safe in the free-threading build -by using a lightweight lock on the frame state. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-01-42-14.gh-issue-144319._7EtdB.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-01-42-14.gh-issue-144319._7EtdB.rst deleted file mode 100644 index 805ba60..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-01-42-14.gh-issue-144319._7EtdB.rst +++ /dev/null @@ -1 +0,0 @@ -Add huge pages support for the pymalloc allocator. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-02-18-08.gh-issue-144307.CLbm_o.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-02-18-08.gh-issue-144307.CLbm_o.rst deleted file mode 100644 index d6928e6..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-02-18-08.gh-issue-144307.CLbm_o.rst +++ /dev/null @@ -1 +0,0 @@ -Prevent a reference leak in module teardown at interpreter finalization. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-16-57-11.gh-issue-139103.icXIEQ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-16-57-11.gh-issue-139103.icXIEQ.rst deleted file mode 100644 index de3391d..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-29-16-57-11.gh-issue-139103.icXIEQ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve scaling of :func:`~collections.namedtuple` instantiation in the -free-threaded build. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-10-38-07.gh-issue-140550.Us9vPD.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-10-38-07.gh-issue-140550.Us9vPD.rst deleted file mode 100644 index 7815176..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-10-38-07.gh-issue-140550.Us9vPD.rst +++ /dev/null @@ -1,2 +0,0 @@ -In :c:member:`PyModuleDef.m_slots`, allow slots that repeat information -present in :c:type:`PyModuleDef`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-15-54-50.gh-issue-144280.kgiP5R.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-15-54-50.gh-issue-144280.kgiP5R.rst deleted file mode 100644 index d6a4203..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-30-15-54-50.gh-issue-144280.kgiP5R.rst +++ /dev/null @@ -1 +0,0 @@ -Fix a bug in JIT where the predicate symbol had no truthiness diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-07-34.gh-issue-141563.GheXjr.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-07-34.gh-issue-141563.GheXjr.rst deleted file mode 100644 index 4059525..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-07-34.gh-issue-141563.GheXjr.rst +++ /dev/null @@ -1 +0,0 @@ -Fix thread safety of :c:macro:`! PyDateTime_IMPORT`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-50-14.gh-issue-120321.Xfr7tL.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-50-14.gh-issue-120321.Xfr7tL.rst deleted file mode 100644 index 3e868c8..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-02-17-50-14.gh-issue-120321.Xfr7tL.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add ``gi_state``, ``cr_state``, and ``ag_state`` attributes to generators, -coroutines, and async generators that return the current state as a string -(e.g., ``GEN_RUNNING``). The :mod:`inspect` module functions -:func:`~inspect.getgeneratorstate`, :func:`~inspect.getcoroutinestate`, and -:func:`~inspect.getasyncgenstate` now return these attributes directly. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-03-17-08-13.gh-issue-144446.db5619.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-03-17-08-13.gh-issue-144446.db5619.rst deleted file mode 100644 index 71cf493..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-03-17-08-13.gh-issue-144446.db5619.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix data races in the free-threaded build when reading frame object attributes -while another thread is executing the frame. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-11-19-45.gh-issue-144330.kOowSb.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-11-19-45.gh-issue-144330.kOowSb.rst deleted file mode 100644 index b3c61e1..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-11-19-45.gh-issue-144330.kOowSb.rst +++ /dev/null @@ -1,2 +0,0 @@ -Move ``classmethod`` and ``staticmethod`` initialization from ``__init__()`` -to ``__new__()``. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-12-19-48.gh-issue-131798.My5jLy.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-12-19-48.gh-issue-131798.My5jLy.rst deleted file mode 100644 index 849889f..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-04-12-19-48.gh-issue-131798.My5jLy.rst +++ /dev/null @@ -1 +0,0 @@ -Optimise ``_GUARD_TOS_SLICE`` in the JIT. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-05-13-30-00.gh-issue-144513.IjSTd7.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-05-13-30-00.gh-issue-144513.IjSTd7.rst deleted file mode 100644 index f971601..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-05-13-30-00.gh-issue-144513.IjSTd7.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix potential deadlock when using critical sections during stop-the-world -pauses in the free-threaded build. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-17-59-47.gh-issue-144549.5BhPlY.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-17-59-47.gh-issue-144549.5BhPlY.rst deleted file mode 100644 index 9679e2c..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-06-17-59-47.gh-issue-144549.5BhPlY.rst +++ /dev/null @@ -1 +0,0 @@ -Fix building the tail calling interpreter on Visual Studio 2026 with free-threading. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-12-47-27.gh-issue-144601.E4Yi9J.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-12-47-27.gh-issue-144601.E4Yi9J.rst deleted file mode 100644 index 1c7772e..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-12-47-27.gh-issue-144601.E4Yi9J.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix crash when importing a module whose ``PyInit`` function raises an -exception from a subinterpreter. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-18-13-38.gh-issue-144563.hb3kpp.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-18-13-38.gh-issue-144563.hb3kpp.rst deleted file mode 100644 index 023f9dc..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-08-18-13-38.gh-issue-144563.hb3kpp.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix interaction of the Tachyon profiler and :mod:`ctypes` and other modules -that load the Python shared library (if present) in an independent map as -this was causing the mechanism that loads the binary information to be -confused. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-10-12-08-58.gh-issue-134584.P9LDy5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-10-12-08-58.gh-issue-134584.P9LDy5.rst deleted file mode 100644 index fab5018..0000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-10-12-08-58.gh-issue-134584.P9LDy5.rst +++ /dev/null @@ -1 +0,0 @@ -Optimize and eliminate ref-counting in ``_BINARY_OP_SUBSCR_LIST_SLICE`` diff --git a/Misc/NEWS.d/next/IDLE/2026-01-13-01-21-20.gh-issue-143774.rqGwX1.rst b/Misc/NEWS.d/next/IDLE/2026-01-13-01-21-20.gh-issue-143774.rqGwX1.rst deleted file mode 100644 index dd15d16..0000000 --- a/Misc/NEWS.d/next/IDLE/2026-01-13-01-21-20.gh-issue-143774.rqGwX1.rst +++ /dev/null @@ -1 +0,0 @@ -Better explain the operation of Format / Format Paragraph. diff --git a/Misc/NEWS.d/next/Library/2020-07-14-23-54-18.gh-issue-77188.TyI3_Q.rst b/Misc/NEWS.d/next/Library/2020-07-14-23-54-18.gh-issue-77188.TyI3_Q.rst deleted file mode 100644 index 3e95640..0000000 --- a/Misc/NEWS.d/next/Library/2020-07-14-23-54-18.gh-issue-77188.TyI3_Q.rst +++ /dev/null @@ -1 +0,0 @@ -The :mod:`pickle` module now properly handles name-mangled private methods. diff --git a/Misc/NEWS.d/next/Library/2024-11-27-13-11-16.gh-issue-67041.ym2WKK.rst b/Misc/NEWS.d/next/Library/2024-11-27-13-11-16.gh-issue-67041.ym2WKK.rst deleted file mode 100644 index 9ad1e28..0000000 --- a/Misc/NEWS.d/next/Library/2024-11-27-13-11-16.gh-issue-67041.ym2WKK.rst +++ /dev/null @@ -1,6 +0,0 @@ -Add the *missing_as_none* parameter to :func:`~urllib.parse.urlparse`, -:func:`~urllib.parse.urlsplit` and :func:`~urllib.parse.urldefrag` -functions. Add the *keep_empty* parameter to -:func:`~urllib.parse.urlunparse` and :func:`~urllib.parse.urlunsplit` -functions. This allows to distinguish between empty and not defined URI -components and preserve empty components. diff --git a/Misc/NEWS.d/next/Library/2025-10-27-00-13-04.gh-issue-140715.WkozE0.rst b/Misc/NEWS.d/next/Library/2025-10-27-00-13-04.gh-issue-140715.WkozE0.rst deleted file mode 100644 index c2bb69b..0000000 --- a/Misc/NEWS.d/next/Library/2025-10-27-00-13-04.gh-issue-140715.WkozE0.rst +++ /dev/null @@ -1 +0,0 @@ -Add ``'%F'`` support to :meth:`~datetime.datetime.strptime`. diff --git a/Misc/NEWS.d/next/Library/2025-11-06-12-03-29.gh-issue-125346.7Gfpgw.rst b/Misc/NEWS.d/next/Library/2025-11-06-12-03-29.gh-issue-125346.7Gfpgw.rst deleted file mode 100644 index 187a6eb..0000000 --- a/Misc/NEWS.d/next/Library/2025-11-06-12-03-29.gh-issue-125346.7Gfpgw.rst +++ /dev/null @@ -1,5 +0,0 @@ -Accepting ``+`` and ``/`` characters with an alternative alphabet in -:func:`base64.b64decode` and :func:`base64.urlsafe_b64decode` is now -deprecated. -In future Python versions they will be errors in the strict mode and -discarded in the non-strict mode. diff --git a/Misc/NEWS.d/next/Library/2025-11-22-20-30-00.gh-issue-141860.frksvr.rst b/Misc/NEWS.d/next/Library/2025-11-22-20-30-00.gh-issue-141860.frksvr.rst deleted file mode 100644 index b1efd9c..0000000 --- a/Misc/NEWS.d/next/Library/2025-11-22-20-30-00.gh-issue-141860.frksvr.rst +++ /dev/null @@ -1,5 +0,0 @@ -Add an ``on_error`` keyword-only parameter to -:func:`multiprocessing.set_forkserver_preload` to control how import failures -during module preloading are handled. Accepts ``'ignore'`` (default, silent), -``'warn'`` (emit :exc:`ImportWarning`), or ``'fail'`` (raise exception). -Contributed by Nick Neumann and Gregory P. Smith. diff --git a/Misc/NEWS.d/next/Library/2025-12-08-18-40-17.gh-issue-142438.tH-Y16.rst b/Misc/NEWS.d/next/Library/2025-12-08-18-40-17.gh-issue-142438.tH-Y16.rst deleted file mode 100644 index 5c1db43..0000000 --- a/Misc/NEWS.d/next/Library/2025-12-08-18-40-17.gh-issue-142438.tH-Y16.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix _decimal builds configured with EXTRA_FUNCTIONALITY by correcting the -Context.apply wrapper to pass the right argument. diff --git a/Misc/NEWS.d/next/Library/2025-12-15-02-02-45.gh-issue-142555.EC9QN_.rst b/Misc/NEWS.d/next/Library/2025-12-15-02-02-45.gh-issue-142555.EC9QN_.rst deleted file mode 100644 index 72cc7c6..0000000 --- a/Misc/NEWS.d/next/Library/2025-12-15-02-02-45.gh-issue-142555.EC9QN_.rst +++ /dev/null @@ -1,3 +0,0 @@ -:mod:`array`: fix a crash in ``a[i] = v`` when converting *i* to -an index via :meth:`i.__index__ <object.__index__>` or :meth:`i.__float__ -<object.__float__>` mutates the array. diff --git a/Misc/NEWS.d/next/Library/2025-12-19-11-30-31.gh-issue-142966.PzGiv2.rst b/Misc/NEWS.d/next/Library/2025-12-19-11-30-31.gh-issue-142966.PzGiv2.rst deleted file mode 100644 index 92ea407..0000000 --- a/Misc/NEWS.d/next/Library/2025-12-19-11-30-31.gh-issue-142966.PzGiv2.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`!ctypes.POINTER.set_type` not updating the format string to match the type. diff --git a/Misc/NEWS.d/next/Library/2025-12-28-15-55-53.gh-issue-101178.26jYPs.rst b/Misc/NEWS.d/next/Library/2025-12-28-15-55-53.gh-issue-101178.26jYPs.rst deleted file mode 100644 index 1859538..0000000 --- a/Misc/NEWS.d/next/Library/2025-12-28-15-55-53.gh-issue-101178.26jYPs.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add Ascii85, Base85, and Z85 support to :mod:`binascii` and improve the -performance of the base-85 converters in :mod:`base64`. diff --git a/Misc/NEWS.d/next/Library/2026-01-05-05-31-05.gh-issue-143423.X7YdnR.rst b/Misc/NEWS.d/next/Library/2026-01-05-05-31-05.gh-issue-143423.X7YdnR.rst deleted file mode 100644 index d9276df..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-05-05-31-05.gh-issue-143423.X7YdnR.rst +++ /dev/null @@ -1 +0,0 @@ -Fix free-threaded build detection in the sampling profiler when Py_GIL_DISABLED is set to 0. diff --git a/Misc/NEWS.d/next/Library/2026-01-07-11-57-59.gh-issue-140557.3P6-nW.rst b/Misc/NEWS.d/next/Library/2026-01-07-11-57-59.gh-issue-140557.3P6-nW.rst deleted file mode 100644 index 997ad59..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-07-11-57-59.gh-issue-140557.3P6-nW.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`array.array` buffers now have the same alignment when empty as when -allocated. Unaligned buffers can still be created by slicing. diff --git a/Misc/NEWS.d/next/Library/2026-01-07-19-01-59.gh-issue-142434.SHRS5p.rst b/Misc/NEWS.d/next/Library/2026-01-07-19-01-59.gh-issue-142434.SHRS5p.rst deleted file mode 100644 index cb6990a..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-07-19-01-59.gh-issue-142434.SHRS5p.rst +++ /dev/null @@ -1,3 +0,0 @@ -Use ``ppoll()`` if available in :func:`select.poll` to have a timeout -resolution of 1 nanosecond, instead of a resolution of 1 ms. Patch by Victor -Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-01-09-12-37-19.gh-issue-143602.V8vQpj.rst b/Misc/NEWS.d/next/Library/2026-01-09-12-37-19.gh-issue-143602.V8vQpj.rst deleted file mode 100644 index 0eaec90..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-09-12-37-19.gh-issue-143602.V8vQpj.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a inconsistency issue in :meth:`~io.RawIOBase.write` that leads to -unexpected buffer overwrite by deduplicating the buffer exports. diff --git a/Misc/NEWS.d/next/Library/2026-01-11-14-14-19.gh-issue-143689.fzHJ2W.rst b/Misc/NEWS.d/next/Library/2026-01-11-14-14-19.gh-issue-143689.fzHJ2W.rst deleted file mode 100644 index a423b1b..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-11-14-14-19.gh-issue-143689.fzHJ2W.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :meth:`io.BufferedReader.read1` state cleanup on buffer allocation failure. diff --git a/Misc/NEWS.d/next/Library/2026-01-13-10-38-43.gh-issue-143543.DeQRCO.rst b/Misc/NEWS.d/next/Library/2026-01-13-10-38-43.gh-issue-143543.DeQRCO.rst deleted file mode 100644 index 14622a3..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-13-10-38-43.gh-issue-143543.DeQRCO.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash in itertools.groupby that could occur when a user-defined -:meth:`~object.__eq__` method re-enters the iterator during key comparison. diff --git a/Misc/NEWS.d/next/Library/2026-01-13-15-56-03.gh-issue-132604.lvjNTr.rst b/Misc/NEWS.d/next/Library/2026-01-13-15-56-03.gh-issue-132604.lvjNTr.rst deleted file mode 100644 index 92c4dbb..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-13-15-56-03.gh-issue-132604.lvjNTr.rst +++ /dev/null @@ -1,4 +0,0 @@ -Previously, :class:`~typing.Protocol` classes that were not decorated with :deco:`~typing.runtime_checkable`, -but that inherited from another ``Protocol`` class that did have this decorator, could be used in :func:`isinstance` -and :func:`issubclass` checks. This behavior is now deprecated and such checks will throw a :exc:`TypeError` -in Python 3.20. Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Library/2026-01-13-16-19-50.gh-issue-143756.LQOra1.rst b/Misc/NEWS.d/next/Library/2026-01-13-16-19-50.gh-issue-143756.LQOra1.rst deleted file mode 100644 index fc7eeff..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-13-16-19-50.gh-issue-143756.LQOra1.rst +++ /dev/null @@ -1 +0,0 @@ -Fix potential thread safety issues in :mod:`ssl` module. diff --git a/Misc/NEWS.d/next/Library/2026-01-14-20-35-40.gh-issue-143754.m2NQXA.rst b/Misc/NEWS.d/next/Library/2026-01-14-20-35-40.gh-issue-143754.m2NQXA.rst deleted file mode 100644 index edfdd10..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-14-20-35-40.gh-issue-143754.m2NQXA.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add new :mod:`tkinter` widget methods :meth:`!pack_content`, -:meth:`!place_content` and :meth:`!grid_content` which are alternative -spelling of old :meth:`!*_slaves` methods. diff --git a/Misc/NEWS.d/next/Library/2026-01-15-16-04-39.gh-issue-143874.1qQgvo.rst b/Misc/NEWS.d/next/Library/2026-01-15-16-04-39.gh-issue-143874.1qQgvo.rst deleted file mode 100644 index a11cf71..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-15-16-04-39.gh-issue-143874.1qQgvo.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed a bug in :mod:`pdb` where expression results were not sent back to remote client. diff --git a/Misc/NEWS.d/next/Library/2026-01-16-06-22-10.gh-issue-143831.VLBTLp.rst b/Misc/NEWS.d/next/Library/2026-01-16-06-22-10.gh-issue-143831.VLBTLp.rst deleted file mode 100644 index 620adea..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-16-06-22-10.gh-issue-143831.VLBTLp.rst +++ /dev/null @@ -1,3 +0,0 @@ -:class:`annotationlib.ForwardRef` objects are now hashable when created from -annotation scopes with closures. Previously, hashing such objects would -throw an exception. Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Library/2026-01-16-10-53-17.gh-issue-143897.hWJBHN.rst b/Misc/NEWS.d/next/Library/2026-01-16-10-53-17.gh-issue-143897.hWJBHN.rst deleted file mode 100644 index d53eac0..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-16-10-53-17.gh-issue-143897.hWJBHN.rst +++ /dev/null @@ -1,3 +0,0 @@ -Remove the :meth:`!isxidstart` and :meth:`!isxidcontinue` methods of -:data:`unicodedata.ucd_3_2_0`. They are now only exposed as -:func:`unicodedata.isxidstart` and :func:`unicodedata.isxidcontinue`. diff --git a/Misc/NEWS.d/next/Library/2026-01-16-14-02-39.gh-issue-143904.rErHHA.rst b/Misc/NEWS.d/next/Library/2026-01-16-14-02-39.gh-issue-143904.rErHHA.rst deleted file mode 100644 index f856a4b..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-16-14-02-39.gh-issue-143904.rErHHA.rst +++ /dev/null @@ -1,2 +0,0 @@ -:func:`struct.pack_into` now raises OverflowError instead of IndexError for -too large *offset* argument. diff --git a/Misc/NEWS.d/next/Library/2026-01-17-07-48-27.gh-issue-143952.lqJ55y.rst b/Misc/NEWS.d/next/Library/2026-01-17-07-48-27.gh-issue-143952.lqJ55y.rst deleted file mode 100644 index 1a99d31..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-17-07-48-27.gh-issue-143952.lqJ55y.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed :mod:`asyncio` debugging tools to work with new remote debugging API. -Patch by Bartosz Sławecki. diff --git a/Misc/NEWS.d/next/Library/2026-01-18-14-35-37.gh-issue-143999.MneN4O.rst b/Misc/NEWS.d/next/Library/2026-01-18-14-35-37.gh-issue-143999.MneN4O.rst deleted file mode 100644 index dc87411..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-18-14-35-37.gh-issue-143999.MneN4O.rst +++ /dev/null @@ -1 +0,0 @@ -Fix an issue where :func:`inspect.getgeneratorstate` and :func:`inspect.getcoroutinestate` could fail for generators wrapped by :func:`types.coroutine` in the suspended state. diff --git a/Misc/NEWS.d/next/Library/2026-01-19-00-57-40.gh-issue-144023.29XUcp.rst b/Misc/NEWS.d/next/Library/2026-01-19-00-57-40.gh-issue-144023.29XUcp.rst deleted file mode 100644 index 0d06506..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-19-00-57-40.gh-issue-144023.29XUcp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed validation of file descriptor 0 in posix functions when used with -follow_symlinks parameter. diff --git a/Misc/NEWS.d/next/Library/2026-01-19-10-26-59.gh-issue-144001.dGj8Nk.rst b/Misc/NEWS.d/next/Library/2026-01-19-10-26-59.gh-issue-144001.dGj8Nk.rst deleted file mode 100644 index 02d453f..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-19-10-26-59.gh-issue-144001.dGj8Nk.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added the *ignorechars* parameter in :func:`binascii.a2b_base64` and -:func:`base64.b64decode`. diff --git a/Misc/NEWS.d/next/Library/2026-01-19-12-48-59.gh-issue-144030.7OK_gB.rst b/Misc/NEWS.d/next/Library/2026-01-19-12-48-59.gh-issue-144030.7OK_gB.rst deleted file mode 100644 index ef3c029..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-19-12-48-59.gh-issue-144030.7OK_gB.rst +++ /dev/null @@ -1,3 +0,0 @@ -The Python implementation of :func:`functools.lru_cache` differed from the -default C implementation in that it did not check that its argument is -callable. This discrepancy is now fixed and both raise a :exc:`TypeError`. diff --git a/Misc/NEWS.d/next/Library/2026-01-19-16-45-16.gh-issue-83069.0TaeH9.rst b/Misc/NEWS.d/next/Library/2026-01-19-16-45-16.gh-issue-83069.0TaeH9.rst deleted file mode 100644 index d0d4f2b..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-19-16-45-16.gh-issue-83069.0TaeH9.rst +++ /dev/null @@ -1,7 +0,0 @@ -:meth:`subprocess.Popen.wait`: when ``timeout`` is not ``None``, an efficient -event-driven mechanism now waits for process termination, if available. Linux ->= 5.3 uses :func:`os.pidfd_open` + :func:`select.poll`. macOS and other BSD -variants use :func:`select.kqueue` + ``KQ_FILTER_PROC`` + ``KQ_NOTE_EXIT``. -Windows keeps using ``WaitForSingleObject`` (unchanged). If none of these -mechanisms are available, the function falls back to the traditional busy loop -(non-blocking call and short sleeps). Patch by Giampaolo Rodola. diff --git a/Misc/NEWS.d/next/Library/2026-01-20-16-35-55.gh-issue-144050.0kKFbF.rst b/Misc/NEWS.d/next/Library/2026-01-20-16-35-55.gh-issue-144050.0kKFbF.rst deleted file mode 100644 index dfc062d..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-20-16-35-55.gh-issue-144050.0kKFbF.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`stat.filemode` in the pure-Python implementation to avoid misclassifying -invalid mode values as block devices. diff --git a/Misc/NEWS.d/next/Library/2026-01-20-20-54-46.gh-issue-143658.v8i1jE.rst b/Misc/NEWS.d/next/Library/2026-01-20-20-54-46.gh-issue-143658.v8i1jE.rst deleted file mode 100644 index 8935b4c..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-20-20-54-46.gh-issue-143658.v8i1jE.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`importlib.metadata`: Use :meth:`str.lower` and :meth:`str.replace` to -further improve performance of -:meth:`!importlib.metadata.Prepared.normalize`. Patch by Hugo van Kemenade -and Henry Schreiner. diff --git a/Misc/NEWS.d/next/Library/2026-01-21-19-39-07.gh-issue-144100.hLMZ8Y.rst b/Misc/NEWS.d/next/Library/2026-01-21-19-39-07.gh-issue-144100.hLMZ8Y.rst deleted file mode 100644 index 7093b75..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-21-19-39-07.gh-issue-144100.hLMZ8Y.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a crash in ctypes when using a deprecated ``POINTER(str)`` type in -``argtypes``. Instead of aborting, ctypes now raises a proper Python -exception when the pointer target type is unresolved. diff --git a/Misc/NEWS.d/next/Library/2026-01-22-10-18-17.gh-issue-144128.akwY06.rst b/Misc/NEWS.d/next/Library/2026-01-22-10-18-17.gh-issue-144128.akwY06.rst deleted file mode 100644 index 4010695..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-22-10-18-17.gh-issue-144128.akwY06.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash in :meth:`array.array.fromlist` when an element's :meth:`~object.__index__` method mutates
-the input list during conversion.
diff --git a/Misc/NEWS.d/next/Library/2026-01-23-06-43-21.gh-issue-144169.LFy9yi.rst b/Misc/NEWS.d/next/Library/2026-01-23-06-43-21.gh-issue-144169.LFy9yi.rst deleted file mode 100644 index e2ef3d7..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-23-06-43-21.gh-issue-144169.LFy9yi.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix three crashes when non-string keyword arguments are supplied to objects -in the :mod:`ast` module. diff --git a/Misc/NEWS.d/next/Library/2026-01-24-13-49-05.gh-issue-143594.nilGlg.rst b/Misc/NEWS.d/next/Library/2026-01-24-13-49-05.gh-issue-143594.nilGlg.rst deleted file mode 100644 index e0c2c28..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-24-13-49-05.gh-issue-143594.nilGlg.rst +++ /dev/null @@ -1 +0,0 @@ -Add :meth:`symtable.Function.get_cells` and :meth:`symtable.Symbol.is_cell` methods. diff --git a/Misc/NEWS.d/next/Library/2026-01-24-23-11-17.gh-issue-144212.IXqVL8.rst b/Misc/NEWS.d/next/Library/2026-01-24-23-11-17.gh-issue-144212.IXqVL8.rst deleted file mode 100644 index be77fb3..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-24-23-11-17.gh-issue-144212.IXqVL8.rst +++ /dev/null @@ -1 +0,0 @@ -Mime type ``image/jxl`` is now supported by :mod:`mimetypes`. diff --git a/Misc/NEWS.d/next/Library/2026-01-25-03-23-20.gh-issue-144217.E1wVXH.rst b/Misc/NEWS.d/next/Library/2026-01-25-03-23-20.gh-issue-144217.E1wVXH.rst deleted file mode 100644 index d85df59..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-25-03-23-20.gh-issue-144217.E1wVXH.rst +++ /dev/null @@ -1 +0,0 @@ -:mod:`mimetypes`: Add support for DICOM files (for medical imaging) with the official MIME type ``application/dicom``. Patch by Benedikt Johannes. diff --git a/Misc/NEWS.d/next/Library/2026-01-26-12-30-57.gh-issue-142956.X9CS8J.rst b/Misc/NEWS.d/next/Library/2026-01-26-12-30-57.gh-issue-142956.X9CS8J.rst deleted file mode 100644 index 27f104f..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-26-12-30-57.gh-issue-142956.X9CS8J.rst +++ /dev/null @@ -1 +0,0 @@ -Updated :mod:`tomllib` to parse TOML 1.1.0. diff --git a/Misc/NEWS.d/next/Library/2026-01-27-00-03-41.gh-issue-132888.yhTfUN.rst b/Misc/NEWS.d/next/Library/2026-01-27-00-03-41.gh-issue-132888.yhTfUN.rst deleted file mode 100644 index 71b984c..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-27-00-03-41.gh-issue-132888.yhTfUN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix incorrect use of :func:`ctypes.GetLastError` and add missing error -checks for Windows API calls in :mod:`!_pyrepl.windows_console`. diff --git a/Misc/NEWS.d/next/Library/2026-01-27-09-58-52.gh-issue-144249.mCIy95.rst b/Misc/NEWS.d/next/Library/2026-01-27-09-58-52.gh-issue-144249.mCIy95.rst deleted file mode 100644 index 52f27ce..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-27-09-58-52.gh-issue-144249.mCIy95.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add filename context to :exc:`OSError` exceptions raised by -:func:`ssl.SSLContext.load_cert_chain`, allowing users to have more context. diff --git a/Misc/NEWS.d/next/Library/2026-01-27-10-02-04.gh-issue-144264.Wmzbol.rst b/Misc/NEWS.d/next/Library/2026-01-27-10-02-04.gh-issue-144264.Wmzbol.rst deleted file mode 100644 index 11e3fde..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-27-10-02-04.gh-issue-144264.Wmzbol.rst +++ /dev/null @@ -1,3 +0,0 @@ -Speed up Base64 decoding of data containing ignored characters (both in -non-strict mode and with an explicit *ignorechars* argument). -It is now up to 2 times faster for multiline Base64 data. diff --git a/Misc/NEWS.d/next/Library/2026-01-27-14-23-10.gh-issue-144206.l0un4U.rst b/Misc/NEWS.d/next/Library/2026-01-27-14-23-10.gh-issue-144206.l0un4U.rst deleted file mode 100644 index 1e16d28..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-27-14-23-10.gh-issue-144206.l0un4U.rst +++ /dev/null @@ -1,2 +0,0 @@ -Improve error messages for buffer overflow in :func:`fcntl.fcntl` and -:func:`fcntl.ioctl`. diff --git a/Misc/NEWS.d/next/Library/2026-01-30-13-23-06.gh-issue-140824.J1OCrC.rst b/Misc/NEWS.d/next/Library/2026-01-30-13-23-06.gh-issue-140824.J1OCrC.rst deleted file mode 100644 index dd90b6a..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-30-13-23-06.gh-issue-140824.J1OCrC.rst +++ /dev/null @@ -1,2 +0,0 @@ -When :mod:`faulthandler` dumps the list of third-party extension modules, -ignore sub-modules of stdlib packages. Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-01-31-17-15-49.gh-issue-144363.X9f0sU.rst b/Misc/NEWS.d/next/Library/2026-01-31-17-15-49.gh-issue-144363.X9f0sU.rst deleted file mode 100644 index c17cea6..0000000 --- a/Misc/NEWS.d/next/Library/2026-01-31-17-15-49.gh-issue-144363.X9f0sU.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled `libexpat <https://libexpat.github.io/>`_ to 2.7.4 diff --git a/Misc/NEWS.d/next/Library/2026-02-01-15-25-00.gh-issue-144380.U7py_s.rst b/Misc/NEWS.d/next/Library/2026-02-01-15-25-00.gh-issue-144380.U7py_s.rst deleted file mode 100644 index 4b5b1b3..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-01-15-25-00.gh-issue-144380.U7py_s.rst +++ /dev/null @@ -1 +0,0 @@ -Improve performance of :class:`io.BufferedReader` line iteration by ~49%. diff --git a/Misc/NEWS.d/next/Library/2026-02-02-12-09-38.gh-issue-74453.19h4Z5.rst b/Misc/NEWS.d/next/Library/2026-02-02-12-09-38.gh-issue-74453.19h4Z5.rst deleted file mode 100644 index 8629c83..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-02-12-09-38.gh-issue-74453.19h4Z5.rst +++ /dev/null @@ -1,8 +0,0 @@ -Deprecate :func:`os.path.commonprefix` in favor of -:func:`os.path.commonpath` for path segment prefixes. - -The :func:`os.path.commonprefix` function is being deprecated due to -having a misleading name and module. The function is not safe to use for -path prefixes despite being included in a module about path manipulation, -meaning it is easy to accidentally introduce path traversal -vulnerabilities into Python programs by using this function. diff --git a/Misc/NEWS.d/next/Library/2026-02-03-08-50-58.gh-issue-123471.yF1Gym.rst b/Misc/NEWS.d/next/Library/2026-02-03-08-50-58.gh-issue-123471.yF1Gym.rst deleted file mode 100644 index 85e9a03..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-03-08-50-58.gh-issue-123471.yF1Gym.rst +++ /dev/null @@ -1 +0,0 @@ -Make concurrent iteration over :class:`itertools.combinations_with_replacement` and :class:`itertools.permutations` safe under free-threading. diff --git a/Misc/NEWS.d/next/Library/2026-02-03-14-16-49.gh-issue-144386.9Wa59r.rst b/Misc/NEWS.d/next/Library/2026-02-03-14-16-49.gh-issue-144386.9Wa59r.rst deleted file mode 100644 index 6e60eeba..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-03-14-16-49.gh-issue-144386.9Wa59r.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add support for arbitrary descriptors :meth:`!__enter__`, :meth:`!__exit__`, -:meth:`!__aenter__`, and :meth:`!__aexit__` in :class:`contextlib.ExitStack` -and :class:`contextlib.AsyncExitStack`, for consistency with the -:keyword:`with` and :keyword:`async with` statements. diff --git a/Misc/NEWS.d/next/Library/2026-02-05-17-15-31.gh-issue-144493.XuxwVu.rst b/Misc/NEWS.d/next/Library/2026-02-05-17-15-31.gh-issue-144493.XuxwVu.rst deleted file mode 100644 index fe205b5..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-05-17-15-31.gh-issue-144493.XuxwVu.rst +++ /dev/null @@ -1 +0,0 @@ -Improve an exception error message in ``_overlapped.BindLocal()`` that is raised when :meth:`asyncio.loop.sock_connect` is called on a :class:`asyncio.ProactorEventLoop` with a socket that has an invalid address family. diff --git a/Misc/NEWS.d/next/Library/2026-02-06-23-58-54.gh-issue-144538.5_OvGv.rst b/Misc/NEWS.d/next/Library/2026-02-06-23-58-54.gh-issue-144538.5_OvGv.rst deleted file mode 100644 index fbded72..0000000 --- a/Misc/NEWS.d/next/Library/2026-02-06-23-58-54.gh-issue-144538.5_OvGv.rst +++ /dev/null @@ -1 +0,0 @@ -Bump the version of pip bundled in ensurepip to version 26.0.1 diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-07-36.gh-issue-143916.dpWeOD.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-07-36.gh-issue-143916.dpWeOD.rst deleted file mode 100644 index 44bd0b2..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-07-36.gh-issue-143916.dpWeOD.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reject C0 control characters within wsgiref.headers.Headers fields, values, -and parameters. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-13-15.gh-issue-143919.kchwZV.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-13-15.gh-issue-143919.kchwZV.rst deleted file mode 100644 index 788c3e4..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-13-15.gh-issue-143919.kchwZV.rst +++ /dev/null @@ -1 +0,0 @@ -Reject control characters in :class:`http.cookies.Morsel` fields and values. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst deleted file mode 100644 index 4e13fe9..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst +++ /dev/null @@ -1 +0,0 @@ -Reject control characters in IMAP commands. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-43-47.gh-issue-143923.DuytMe.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-43-47.gh-issue-143923.DuytMe.rst deleted file mode 100644 index 3cde4df..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-43-47.gh-issue-143923.DuytMe.rst +++ /dev/null @@ -1 +0,0 @@ -Reject control characters in POP3 commands. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-51-19.gh-issue-143925.mrtcHW.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-51-19.gh-issue-143925.mrtcHW.rst deleted file mode 100644 index 46109df..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-51-19.gh-issue-143925.mrtcHW.rst +++ /dev/null @@ -1 +0,0 @@ -Reject control characters in ``data:`` URL media types. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-14-40-31.gh-issue-143935.U2YtKl.rst b/Misc/NEWS.d/next/Security/2026-01-16-14-40-31.gh-issue-143935.U2YtKl.rst deleted file mode 100644 index c3d8649..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-14-40-31.gh-issue-143935.U2YtKl.rst +++ /dev/null @@ -1,6 +0,0 @@ -Fixed a bug in the folding of comments when flattening an email message -using a modern email policy. Comments consisting of a very long sequence of -non-foldable characters could trigger a forced line wrap that omitted the -required leading space on the continuation line, causing the remainder of -the comment to be interpreted as a new header field. This enabled header -injection with carefully crafted inputs. diff --git a/Misc/NEWS.d/next/Security/2026-01-21-12-34-05.gh-issue-144125.TAz5uo.rst b/Misc/NEWS.d/next/Security/2026-01-21-12-34-05.gh-issue-144125.TAz5uo.rst deleted file mode 100644 index e6333e7..0000000 --- a/Misc/NEWS.d/next/Security/2026-01-21-12-34-05.gh-issue-144125.TAz5uo.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`~email.generator.BytesGenerator` will now refuse to serialize (write) headers -that are unsafely folded or delimited; see -:attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas -Bloemsaat and Petr Viktorin in :gh:`121650`). diff --git a/Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst b/Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst deleted file mode 100644 index 7d1a153..0000000 --- a/Misc/NEWS.d/next/Tests/2026-01-08-16-56-59.gh-issue-65784.aKNo1U.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add support for parametrized resource ``wantobjects`` in regrtests, -which allows to run Tkinter tests with the specified value of -:data:`!tkinter.wantobjects`, for example ``-u wantobjects=0``. diff --git a/Misc/NEWS.d/next/Tests/2026-02-03-07-57-24.gh-issue-144415.U3L15r.rst b/Misc/NEWS.d/next/Tests/2026-02-03-07-57-24.gh-issue-144415.U3L15r.rst deleted file mode 100644 index b3a8d46..0000000 --- a/Misc/NEWS.d/next/Tests/2026-02-03-07-57-24.gh-issue-144415.U3L15r.rst +++ /dev/null @@ -1,3 +0,0 @@ -The Android testbed now distinguishes between stdout/stderr messages which -were triggered by a newline, and those triggered by a manual call to -``flush``. This fixes logging of progress indicators and similar content. diff --git a/Misc/NEWS.d/next/Windows/2026-01-05-21-36-58.gh-issue-80620.p1bD58.rst b/Misc/NEWS.d/next/Windows/2026-01-05-21-36-58.gh-issue-80620.p1bD58.rst deleted file mode 100644 index fb2f500..0000000 --- a/Misc/NEWS.d/next/Windows/2026-01-05-21-36-58.gh-issue-80620.p1bD58.rst +++ /dev/null @@ -1 +0,0 @@ -Support negative timestamps in :func:`time.gmtime`, :func:`time.localtime`, and various :mod:`datetime` functions. diff --git a/Misc/NEWS.d/next/macOS/2026-02-09-22-43-47.gh-issue-144551.VOfgfD.rst b/Misc/NEWS.d/next/macOS/2026-02-09-22-43-47.gh-issue-144551.VOfgfD.rst deleted file mode 100644 index 4b979a4..0000000 --- a/Misc/NEWS.d/next/macOS/2026-02-09-22-43-47.gh-issue-144551.VOfgfD.rst +++ /dev/null @@ -1 +0,0 @@ -Update macOS installer to use OpenSSL 3.5.5. diff --git a/Misc/NEWS.d/next/macOS/2026-02-09-23-01-49.gh-issue-124111.WmQG7S.rst b/Misc/NEWS.d/next/macOS/2026-02-09-23-01-49.gh-issue-124111.WmQG7S.rst deleted file mode 100644 index 1318b41..0000000 --- a/Misc/NEWS.d/next/macOS/2026-02-09-23-01-49.gh-issue-124111.WmQG7S.rst +++ /dev/null @@ -1 +0,0 @@ -Update macOS installer to use Tcl/Tk 9.0.3. diff --git a/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst b/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst deleted file mode 100644 index 5f8ba04..0000000 --- a/Misc/NEWS.d/next/macOS/2026-02-10-08-00-17.gh-issue-144648.KEuUXp.rst +++ /dev/null @@ -1 +0,0 @@ -Allowed _remote_debugging to build on more OS versions by using proc_listpids() rather than proc_listallpids(). @@ -1,4 +1,4 @@ -This is Python version 3.15.0 alpha 5 +This is Python version 3.15.0 alpha 6 ===================================== .. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push |
