]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Python 3.13.8 v3.13.8
authorThomas Wouters <thomas@python.org>
Tue, 7 Oct 2025 12:01:38 +0000 (14:01 +0200)
committerThomas Wouters <thomas@python.org>
Tue, 7 Oct 2025 12:01:51 +0000 (14:01 +0200)
60 files changed:
Doc/c-api/init.rst
Doc/library/imaplib.rst
Doc/library/sqlite3.rst
Include/patchlevel.h
Lib/pydoc_data/topics.py
Misc/NEWS.d/3.13.8.rst [new file with mode: 0644]
Misc/NEWS.d/next/Build/2025-08-20-16-45-34.gh-issue-135734.2hvJCe.rst [deleted file]
Misc/NEWS.d/next/C API/2022-08-05-19-41-20.gh-issue-87135.SCNBYj.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2025-04-20-10-37-39.gh-issue-132744.ArrCp8.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2025-08-10-21-34-12.gh-issue-137576.0ZicS-.rst [deleted file]
Misc/NEWS.d/next/Core and Builtins/2025-09-06-13-53-33.gh-issue-105487.a43YaY.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-03-17-00-30.gh-issue-138479.qUxgWs.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-04-11-52-23.gh-issue-134163.EqKyn8.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-10-14-53-59.gh-issue-71810.ppf0J-.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-15-14-04-56.gh-issue-134466.yR4fYW.rst [deleted file]
Misc/NEWS.d/next/Library/2020-09-23-11-54-17.bpo-41839.kU5Ywl.rst [deleted file]
Misc/NEWS.d/next/Library/2022-01-07-16-56-57.bpo-38735.NFfJX6.rst [deleted file]
Misc/NEWS.d/next/Library/2023-02-13-20-34-52.gh-issue-78319.V1zzed.rst [deleted file]
Misc/NEWS.d/next/Library/2024-05-13-09-50-31.gh-issue-118981.zgOQPv.rst [deleted file]
Misc/NEWS.d/next/Library/2024-08-17-08-17-20.gh-issue-123085.7Io2yH.rst [deleted file]
Misc/NEWS.d/next/Library/2025-06-10-21-00-48.gh-issue-126631.eITVJd.rst [deleted file]
Misc/NEWS.d/next/Library/2025-06-16-15-00-13.gh-issue-135386.lNrxLc.rst [deleted file]
Misc/NEWS.d/next/Library/2025-07-13-11-20-05.gh-issue-136134.xhh0Kq.rst [deleted file]
Misc/NEWS.d/next/Library/2025-07-13-13-31-22.gh-issue-136134.mh6VjS.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-01-23-11-25.gh-issue-137017.0yGcNc.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-06-23-16-42.gh-issue-137477.bk6BDV.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-07-17-18-57.gh-issue-137490.s89ieZ.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-16-09-02-11.gh-issue-137754.mCev1Y.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-16-16-04-15.gh-issue-137317.Dl13B5.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-18-16-02-51.gh-issue-134869.GnAjnU.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-25-18-06-04.gh-issue-138133.Zh9rGo.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-27-17-05-36.gh-issue-138010.ZZJmPL.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-28-13-20-09.gh-issue-138204.8oLOud.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-30-10-04-28.gh-issue-60462.yh_vDc.rst [deleted file]
Misc/NEWS.d/next/Library/2025-08-31-09-06-49.gh-issue-138008.heOvsU.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-03-15-20-10.gh-issue-138432.RMc7UX.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-04-15-18-11.gh-issue-111788.tuTEM5.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-05-07-50-18.gh-issue-138515.E3M-pu.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-05-15-35-59.gh-issue-88375.dC491a.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-10-10-02-59.gh-issue-128636.ldRKGZ.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-11-11-09-28.gh-issue-138779.TNZnLr.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-15-19-29-12.gh-issue-130567.shDEnT.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-16-19-05-29.gh-issue-138998.URl0Y_.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-17-21-54-53.gh-issue-139076.2eX9lG.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-19-09-36-42.gh-issue-112729.mmty0_.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-20-17-50-31.gh-issue-138860.Y9JXap.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-21-15-58-57.gh-issue-139210.HGbMvz.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-24-14-17-34.gh-issue-139289.Vmk25k.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-25-07-33-43.gh-issue-139312.ygE8AC.rst [deleted file]
Misc/NEWS.d/next/Security/2025-06-18-13-34-55.gh-issue-135661.NZlpWf.rst [deleted file]
Misc/NEWS.d/next/Security/2025-09-24-13-39-56.gh-issue-139283.jODz_q.rst [deleted file]
Misc/NEWS.d/next/Security/2025-09-29-00-01-28.gh-issue-139400.X2T-jO.rst [deleted file]
Misc/NEWS.d/next/Tests/2025-09-22-15-40-09.gh-issue-139208.Tc13dl.rst [deleted file]
Misc/NEWS.d/next/Tools-Demos/2025-08-21-14-04-50.gh-issue-137873.qxffLt.rst [deleted file]
Misc/NEWS.d/next/Tools-Demos/2025-09-25-10-31-02.gh-issue-139330.5WWkY0.rst [deleted file]
Misc/NEWS.d/next/Windows/2025-09-15-15-34-29.gh-issue-138896.lkiF_7.rst [deleted file]
Misc/NEWS.d/next/Windows/2025-10-04-12-18-45.gh-issue-139573.EO9kVB.rst [deleted file]
Misc/NEWS.d/next/macOS/2025-10-04-12-29-31.gh-issue-139573.vVpHaP.rst [deleted file]
Misc/NEWS.d/next/macOS/2025-10-06-23-56-36.gh-issue-124111.KOlBvs.rst [deleted file]
README.rst

index cc0f7c3a7de32fc3e62396b1929e1028951a046c..6a6d35d3ac568cb74a3a3800c18f1cfb0eab1e25 100644 (file)
@@ -1193,7 +1193,7 @@ code, or when embedding the Python interpreter:
       created by Python.  Refer to
       :ref:`cautions-regarding-runtime-finalization` for more details.
 
-   .. versionchanged:: next
+   .. versionchanged:: 3.13.8
       Hangs the current thread, rather than terminating it, if called while the
       interpreter is finalizing.
 
@@ -1256,7 +1256,7 @@ with sub-interpreters:
       created by Python.  Refer to
       :ref:`cautions-regarding-runtime-finalization` for more details.
 
-   .. versionchanged:: next
+   .. versionchanged:: 3.13.8
       Hangs the current thread, rather than terminating it, if called while the
       interpreter is finalizing.
 
@@ -1563,7 +1563,7 @@ All of the following functions must be called after :c:func:`Py_Initialize`.
       :c:func:`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`,
       and terminate the current thread if called while the interpreter is finalizing.
 
-   .. versionchanged:: next
+   .. versionchanged:: 3.13.8
       Hangs the current thread, rather than terminating it, if called while the
       interpreter is finalizing.
 
index dc4cac277459b24d791b7a4a49ec7eaad04b03df..8e77f7db925d98353db55e98c0657cd86049b44a 100644 (file)
@@ -325,7 +325,7 @@ An :class:`IMAP4` instance has the following methods:
    the password.  Will only work if the server ``CAPABILITY`` response includes the
    phrase ``AUTH=CRAM-MD5``.
 
-   .. versionchanged:: next
+   .. versionchanged:: 3.13.8
       An :exc:`IMAP4.error` is raised if MD5 support is not available.
 
 
index 7625bd0d7ba96ef66cf4124f22a4938cfb2de231..39da468f142ae54adc49cabc60a3115528f4270f 100644 (file)
@@ -1630,7 +1630,7 @@ Cursor objects
       If the *size* parameter is used, then it is best for it to retain the same
       value from one :meth:`fetchmany` call to the next.
 
-      .. versionchanged:: next
+      .. versionchanged:: 3.13.8
          Negative *size* values are rejected by raising :exc:`ValueError`.
 
    .. method:: fetchall()
@@ -1660,7 +1660,7 @@ Cursor objects
       Read/write attribute that controls the number of rows returned by :meth:`fetchmany`.
       The default value is 1 which means a single row would be fetched per call.
 
-      .. versionchanged:: next
+      .. versionchanged:: 3.13.8
          Negative values are rejected by raising :exc:`ValueError`.
 
    .. attribute:: connection
index 6583c64251b45ab347fd147da3d354e5a9c55334..3f7feaf0b33052033d8484c9c8fbae10c2d91bd0 100644 (file)
 /*--start constants--*/
 #define PY_MAJOR_VERSION        3
 #define PY_MINOR_VERSION        13
-#define PY_MICRO_VERSION        7
+#define PY_MICRO_VERSION        8
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_FINAL
 #define PY_RELEASE_SERIAL       0
 
 /* Version as a string */
-#define PY_VERSION              "3.13.7+"
+#define PY_VERSION              "3.13.8"
 /*--end constants--*/
 
 /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
index 78134e8ac48f79d6cc5b943a806dff9a7481e47e..80cdf0cd49bfda060bcfbe79c66900dc96725e5d 100644 (file)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Thu Aug 14 13:12:07 2025
+# Autogenerated by Sphinx on Tue Oct  7 14:01:47 2025
 # as part of the release process.
 
 topics = {
@@ -587,6 +587,9 @@ object.__dir__(self)
 Customizing module attribute access
 ===================================
 
+module.__getattr__()
+module.__dir__()
+
 Special names "__getattr__" and "__dir__" can be also used to
 customize access to module attributes. The "__getattr__" function at
 the module level should accept one argument which is the name of an
@@ -602,6 +605,8 @@ iterable of strings that represents the names accessible on module. If
 present, this function overrides the standard "dir()" search on a
 module.
 
+module.__class__
+
 For a more fine grained customization of the module behavior (setting
 attributes, properties, etc.), one can set the "__class__" attribute
 of a module object to a subclass of "types.ModuleType". For example:
@@ -1037,12 +1042,33 @@ See The standard type hierarchy for more information.
     'bltin-ellipsis-object': r'''The Ellipsis Object
 *******************
 
-This object is commonly used by slicing (see Slicings).  It supports
-no special operations.  There is exactly one ellipsis object, named
-"Ellipsis" (a built-in name).  "type(Ellipsis)()" produces the
-"Ellipsis" singleton.
+This object is commonly used used to indicate that something is
+omitted. It supports no special operations.  There is exactly one
+ellipsis object, named "Ellipsis" (a built-in name).
+"type(Ellipsis)()" produces the "Ellipsis" singleton.
 
 It is written as "Ellipsis" or "...".
+
+In typical use, "..." as the "Ellipsis" object appears in a few
+different places, for instance:
+
+* In type annotations, such as callable arguments or tuple elements.
+
+* As the body of a function instead of a pass statement.
+
+* In third-party libraries, such as Numpy’s slicing and striding.
+
+Python also uses three dots in ways that are not "Ellipsis" objects,
+for instance:
+
+* Doctest’s "ELLIPSIS", as a pattern for missing content.
+
+* The default Python prompt of the *interactive* shell when partial
+  input is incomplete.
+
+Lastly, the Python documentation often uses three dots in conventional
+English usage to mean omitted content, even in code examples that also
+use them as the "Ellipsis".
 ''',
     'bltin-null-object': r'''The Null Object
 ***************
@@ -1859,15 +1885,29 @@ to its previous value:
 "except*" clause
 ----------------
 
-The "except*" clause(s) are used for handling "ExceptionGroup"s. The
-exception type for matching is interpreted as in the case of "except",
-but in the case of exception groups we can have partial matches when
-the type matches some of the exceptions in the group. This means that
-multiple "except*" clauses can execute, each handling part of the
-exception group. Each clause executes at most once and handles an
-exception group of all matching exceptions.  Each exception in the
-group is handled by at most one "except*" clause, the first that
-matches it.
+The "except*" clause(s) specify one or more handlers for groups of
+exceptions ("BaseExceptionGroup" instances). A "try" statement can
+have either "except" or "except*" clauses, but not both. The exception
+type for matching is mandatory in the case of "except*", so "except*:"
+is a syntax error. The type is interpreted as in the case of "except",
+but matching is performed on the exceptions contained in the group
+that is being handled. An "TypeError" is raised if a matching type is
+a subclass of "BaseExceptionGroup", because that would have ambiguous
+semantics.
+
+When an exception group is raised in the try block, each "except*"
+clause splits (see "split()") it into the subgroups of matching and
+non-matching exceptions. If the matching subgroup is not empty, it
+becomes the handled exception (the value returned from
+"sys.exception()") and assigned to the target of the "except*" clause
+(if there is one). Then, the body of the "except*" clause executes. If
+the non-matching subgroup is not empty, it is processed by the next
+"except*" in the same manner. This continues until all exceptions in
+the group have been matched, or the last "except*" clause has run.
+
+After all "except*" clauses execute, the group of unhandled exceptions
+is merged with any exceptions that were raised or re-raised from
+within "except*" clauses. This merged exception group propagates on.:
 
    >>> try:
    ...     raise ExceptionGroup("eg",
@@ -1880,20 +1920,19 @@ matches it.
    caught <class 'ExceptionGroup'> with nested (TypeError(2),)
    caught <class 'ExceptionGroup'> with nested (OSError(3), OSError(4))
      + Exception Group Traceback (most recent call last):
-     |   File "<stdin>", line 2, in <module>
-     | ExceptionGroup: eg
+     |   File "<doctest default[0]>", line 2, in <module>
+     |     raise ExceptionGroup("eg",
+     |         [ValueError(1), TypeError(2), OSError(3), OSError(4)])
+     | ExceptionGroup: eg (1 sub-exception)
      +-+---------------- 1 ----------------
        | ValueError: 1
        +------------------------------------
 
-Any remaining exceptions that were not handled by any "except*" clause
-are re-raised at the end, along with all exceptions that were raised
-from within the "except*" clauses. If this list contains more than one
-exception to reraise, they are combined into an exception group.
-
-If the raised exception is not an exception group and its type matches
-one of the "except*" clauses, it is caught and wrapped by an exception
-group with an empty message string.
+If the exception raised from the "try" block is not an exception group
+and its type matches one of the "except*" clauses, it is caught and
+wrapped by an exception group with an empty message string. This
+ensures that the type of the target "e" is consistently
+"BaseExceptionGroup":
 
    >>> try:
    ...     raise BlockingIOError
@@ -1902,13 +1941,7 @@ group with an empty message string.
    ...
    ExceptionGroup('', (BlockingIOError()))
 
-An "except*" clause must have a matching expression; it cannot be
-"except*:". Furthermore, this expression cannot contain exception
-group types, because that would have ambiguous semantics.
-
-It is not possible to mix "except" and "except*" in the same "try".
-The "break", "continue", and "return" statements cannot appear in an
-"except*" clause.
+"break", "continue" and "return" cannot appear in an "except*" clause.
 
 
 "else" clause
@@ -1924,11 +1957,11 @@ not handled by the preceding "except" clauses.
 ----------------
 
 If "finally" is present, it specifies a ‘cleanup’ handler.  The "try"
-clause is executed, including any "except" and "else" clauses.  If an
+clause is executed, including any "except" and "else" clauses. If an
 exception occurs in any of the clauses and is not handled, the
 exception is temporarily saved. The "finally" clause is executed.  If
 there is a saved exception it is re-raised at the end of the "finally"
-clause.  If the "finally" clause raises another exception, the saved
+clause. If the "finally" clause raises another exception, the saved
 exception is set as the context of the new exception. If the "finally"
 clause executes a "return", "break" or "continue" statement, the saved
 exception is discarded:
@@ -4446,8 +4479,8 @@ to right.
 
 Deletion of a name removes the binding of that name from the local or
 global namespace, depending on whether the name occurs in a "global"
-statement in the same code block.  If the name is unbound, a
-"NameError" exception will be raised.
+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
@@ -5745,9 +5778,15 @@ as globals. It would be impossible to assign to a global variable
 without "global", although free variables may refer to globals without
 being declared global.
 
-The "global" statement applies to the entire scope of a function or
-class body. A "SyntaxError" is raised if a variable is used or
-assigned to prior to its global declaration in the scope.
+The "global" statement applies to the entire current scope (module,
+function body or class definition). A "SyntaxError" is raised if a
+variable is used or assigned to prior to its global declaration in the
+scope.
+
+At the module level, all variables are global, so a "global" statement
+has no effect. However, variables must still not be used or assigned
+to prior to their "global" declaration. This requirement is relaxed in
+the interactive prompt (*REPL*).
 
 **Programmer’s note:** "global" is a directive to the parser.  It
 applies only to code parsed at the same time as the "global"
@@ -7778,6 +7817,9 @@ object.__dir__(self)
 Customizing module attribute access
 -----------------------------------
 
+module.__getattr__()
+module.__dir__()
+
 Special names "__getattr__" and "__dir__" can be also used to
 customize access to module attributes. The "__getattr__" function at
 the module level should accept one argument which is the name of an
@@ -7793,6 +7835,8 @@ iterable of strings that represents the names accessible on module. If
 present, this function overrides the standard "dir()" search on a
 module.
 
+module.__class__
+
 For a more fine grained customization of the module behavior (setting
 attributes, properties, etc.), one can set the "__class__" attribute
 of a module object to a subclass of "types.ModuleType". For example:
@@ -9007,7 +9051,7 @@ str.casefold()
 
    Added in version 3.3.
 
-str.center(width[, fillchar])
+str.center(width, fillchar=' ', /)
 
    Return centered in a string of length *width*. Padding is done
    using the specified *fillchar* (default is an ASCII space). The
@@ -9118,7 +9162,14 @@ str.find(sub[, start[, end]])
    Return the lowest index in the string where substring *sub* is
    found within the slice "s[start:end]".  Optional arguments *start*
    and *end* are interpreted as in slice notation.  Return "-1" if
-   *sub* is not found.
+   *sub* is not found. For example:
+
+      >>> 'spam, spam, spam'.find('sp')
+      0
+      >>> 'spam, spam, spam'.find('sp', 5)
+      6
+
+   See also "rfind()" and "index()".
 
    Note:
 
@@ -9304,14 +9355,14 @@ str.isupper()
    >>> ' '.isupper()
    False
 
-str.join(iterable)
+str.join(iterable, /)
 
    Return a string which is the concatenation of the strings in
    *iterable*. A "TypeError" will be raised if there are any non-
    string values in *iterable*, including "bytes" objects.  The
    separator between elements is the string providing this method.
 
-str.ljust(width[, fillchar])
+str.ljust(width, fillchar=' ', /)
 
    Return the string left justified in a string of length *width*.
    Padding is done using the specified *fillchar* (default is an ASCII
@@ -9326,7 +9377,7 @@ str.lower()
    The lowercasing algorithm used is described in section 3.13
    ‘Default Case Folding’ of the Unicode Standard.
 
-str.lstrip([chars])
+str.lstrip(chars=None, /)
 
    Return a copy of the string with leading characters removed.  The
    *chars* argument is a string specifying the set of characters to be
@@ -9347,7 +9398,8 @@ str.lstrip([chars])
       >>> 'Arthur: three!'.removeprefix('Arthur: ')
       'three!'
 
-static str.maketrans(x[, y[, z]])
+static str.maketrans(dict, /)
+static str.maketrans(from, to, remove='', /)
 
    This static method returns a translation table usable for
    "str.translate()".
@@ -9358,12 +9410,12 @@ static str.maketrans(x[, y[, z]])
    Character keys will then be converted to ordinals.
 
    If there are two arguments, they must be strings of equal length,
-   and in the resulting dictionary, each character in x will be mapped
-   to the character at the same position in y.  If there is a third
-   argument, it must be a string, whose characters will be mapped to
-   "None" in the result.
+   and in the resulting dictionary, each character in *from* will be
+   mapped to the character at the same position in *to*.  If there is
+   a third argument, it must be a string, whose characters will be
+   mapped to "None" in the result.
 
-str.partition(sep)
+str.partition(sep, /)
 
    Split the string at the first occurrence of *sep*, and return a
    3-tuple containing the part before the separator, the separator
@@ -9397,7 +9449,7 @@ str.removesuffix(suffix, /)
 
    Added in version 3.9.
 
-str.replace(old, new, count=-1)
+str.replace(old, new, /, count=-1)
 
    Return a copy of the string with all occurrences of substring *old*
    replaced by *new*.  If *count* is given, only the first *count*
@@ -9419,14 +9471,14 @@ str.rindex(sub[, start[, end]])
    Like "rfind()" but raises "ValueError" when the substring *sub* is
    not found.
 
-str.rjust(width[, fillchar])
+str.rjust(width, fillchar=' ', /)
 
    Return the string right justified in a string of length *width*.
    Padding is done using the specified *fillchar* (default is an ASCII
    space). The original string is returned if *width* is less than or
    equal to "len(s)".
 
-str.rpartition(sep)
+str.rpartition(sep, /)
 
    Split the string at the last occurrence of *sep*, and return a
    3-tuple containing the part before the separator, the separator
@@ -9443,7 +9495,7 @@ str.rsplit(sep=None, maxsplit=-1)
    from the right, "rsplit()" behaves like "split()" which is
    described in detail below.
 
-str.rstrip([chars])
+str.rstrip(chars=None, /)
 
    Return a copy of the string with trailing characters removed.  The
    *chars* argument is a string specifying the set of characters to be
@@ -9586,7 +9638,7 @@ str.startswith(prefix[, start[, end]])
    With optional *start*, test string beginning at that position.
    With optional *end*, stop comparing string at that position.
 
-str.strip([chars])
+str.strip(chars=None, /)
 
    Return a copy of the string with the leading and trailing
    characters removed. The *chars* argument is a string specifying the
@@ -9650,7 +9702,7 @@ str.title()
       >>> titlecase("they're bill's friends.")
       "They're Bill's Friends."
 
-str.translate(table)
+str.translate(table, /)
 
    Return a copy of the string in which each character has been mapped
    through the given translation table.  The table must be an object
@@ -9678,7 +9730,7 @@ str.upper()
    The uppercasing algorithm used is described in section 3.13
    ‘Default Case Folding’ of the Unicode Standard.
 
-str.zfill(width)
+str.zfill(width, /)
 
    Return a copy of the string left filled with ASCII "'0'" digits to
    make a string of length *width*. A leading sign prefix
@@ -10062,15 +10114,29 @@ to its previous value:
 "except*" clause
 ================
 
-The "except*" clause(s) are used for handling "ExceptionGroup"s. The
-exception type for matching is interpreted as in the case of "except",
-but in the case of exception groups we can have partial matches when
-the type matches some of the exceptions in the group. This means that
-multiple "except*" clauses can execute, each handling part of the
-exception group. Each clause executes at most once and handles an
-exception group of all matching exceptions.  Each exception in the
-group is handled by at most one "except*" clause, the first that
-matches it.
+The "except*" clause(s) specify one or more handlers for groups of
+exceptions ("BaseExceptionGroup" instances). A "try" statement can
+have either "except" or "except*" clauses, but not both. The exception
+type for matching is mandatory in the case of "except*", so "except*:"
+is a syntax error. The type is interpreted as in the case of "except",
+but matching is performed on the exceptions contained in the group
+that is being handled. An "TypeError" is raised if a matching type is
+a subclass of "BaseExceptionGroup", because that would have ambiguous
+semantics.
+
+When an exception group is raised in the try block, each "except*"
+clause splits (see "split()") it into the subgroups of matching and
+non-matching exceptions. If the matching subgroup is not empty, it
+becomes the handled exception (the value returned from
+"sys.exception()") and assigned to the target of the "except*" clause
+(if there is one). Then, the body of the "except*" clause executes. If
+the non-matching subgroup is not empty, it is processed by the next
+"except*" in the same manner. This continues until all exceptions in
+the group have been matched, or the last "except*" clause has run.
+
+After all "except*" clauses execute, the group of unhandled exceptions
+is merged with any exceptions that were raised or re-raised from
+within "except*" clauses. This merged exception group propagates on.:
 
    >>> try:
    ...     raise ExceptionGroup("eg",
@@ -10083,20 +10149,19 @@ matches it.
    caught <class 'ExceptionGroup'> with nested (TypeError(2),)
    caught <class 'ExceptionGroup'> with nested (OSError(3), OSError(4))
      + Exception Group Traceback (most recent call last):
-     |   File "<stdin>", line 2, in <module>
-     | ExceptionGroup: eg
+     |   File "<doctest default[0]>", line 2, in <module>
+     |     raise ExceptionGroup("eg",
+     |         [ValueError(1), TypeError(2), OSError(3), OSError(4)])
+     | ExceptionGroup: eg (1 sub-exception)
      +-+---------------- 1 ----------------
        | ValueError: 1
        +------------------------------------
 
-Any remaining exceptions that were not handled by any "except*" clause
-are re-raised at the end, along with all exceptions that were raised
-from within the "except*" clauses. If this list contains more than one
-exception to reraise, they are combined into an exception group.
-
-If the raised exception is not an exception group and its type matches
-one of the "except*" clauses, it is caught and wrapped by an exception
-group with an empty message string.
+If the exception raised from the "try" block is not an exception group
+and its type matches one of the "except*" clauses, it is caught and
+wrapped by an exception group with an empty message string. This
+ensures that the type of the target "e" is consistently
+"BaseExceptionGroup":
 
    >>> try:
    ...     raise BlockingIOError
@@ -10105,13 +10170,7 @@ group with an empty message string.
    ...
    ExceptionGroup('', (BlockingIOError()))
 
-An "except*" clause must have a matching expression; it cannot be
-"except*:". Furthermore, this expression cannot contain exception
-group types, because that would have ambiguous semantics.
-
-It is not possible to mix "except" and "except*" in the same "try".
-The "break", "continue", and "return" statements cannot appear in an
-"except*" clause.
+"break", "continue" and "return" cannot appear in an "except*" clause.
 
 
 "else" clause
@@ -10127,11 +10186,11 @@ not handled by the preceding "except" clauses.
 ================
 
 If "finally" is present, it specifies a ‘cleanup’ handler.  The "try"
-clause is executed, including any "except" and "else" clauses.  If an
+clause is executed, including any "except" and "else" clauses. If an
 exception occurs in any of the clauses and is not handled, the
 exception is temporarily saved. The "finally" clause is executed.  If
 there is a saved exception it is re-raised at the end of the "finally"
-clause.  If the "finally" clause raises another exception, the saved
+clause. If the "finally" clause raises another exception, the saved
 exception is set as the context of the new exception. If the "finally"
 clause executes a "return", "break" or "continue" statement, the saved
 exception is discarded:
@@ -11515,8 +11574,8 @@ identity) may not be used as keys. Values that compare equal (such as
 dictionary entry.
 
 class dict(**kwargs)
-class dict(mapping, **kwargs)
-class dict(iterable, **kwargs)
+class dict(mapping, /, **kwargs)
+class dict(iterable, /, **kwargs)
 
    Return a new dictionary initialized from an optional positional
    argument and a possibly empty set of keyword arguments.
@@ -11692,7 +11751,8 @@ class dict(iterable, **kwargs)
       Return a new view of the dictionary’s keys.  See the
       documentation of view objects.
 
-   pop(key[, default])
+   pop(key, /)
+   pop(key, default, /)
 
       If *key* is in the dictionary, remove it and return its value,
       else return *default*.  If *default* is not given and *key* is
@@ -11723,10 +11783,13 @@ class dict(iterable, **kwargs)
       *key* with a value of *default* and return *default*.  *default*
       defaults to "None".
 
-   update([other])
+   update(**kwargs)
+   update(mapping, /, **kwargs)
+   update(iterable, /, **kwargs)
 
-      Update the dictionary with the key/value pairs from *other*,
-      overwriting existing keys.  Return "None".
+      Update the dictionary with the key/value pairs from *mapping* or
+      *iterable* and *kwargs*, overwriting existing keys.  Return
+      "None".
 
       "update()" accepts either another object with a "keys()" method
       (in which case "__getitem__()" is called with every key returned
@@ -11991,7 +12054,7 @@ operations. [3]
 | "s * n" or "n * s"         | equivalent to adding *s* to      | (2)(7)     |
 |                            | itself *n* times                 |            |
 +----------------------------+----------------------------------+------------+
-| "s[i]"                     | *i*th item of *s*, origin 0      | (3)(9)     |
+| "s[i]"                     | *i*th item of *s*, origin 0      | (3)(8)     |
 +----------------------------+----------------------------------+------------+
 | "s[i:j]"                   | slice of *s* from *i* to *j*     | (3)(4)     |
 +----------------------------+----------------------------------+------------+
@@ -12004,13 +12067,6 @@ operations. [3]
 +----------------------------+----------------------------------+------------+
 | "max(s)"                   | largest item of *s*              |            |
 +----------------------------+----------------------------------+------------+
-| "s.index(x[, i[, j]])"     | index of the first occurrence of | (8)        |
-|                            | *x* in *s* (at or after index    |            |
-|                            | *i* and before index *j*)        |            |
-+----------------------------+----------------------------------+------------+
-| "s.count(x)"               | total number of occurrences of   |            |
-|                            | *x* in *s*                       |            |
-+----------------------------+----------------------------------+------------+
 
 Sequences of the same type also support comparisons.  In particular,
 tuples and lists are compared lexicographically by comparing
@@ -12107,15 +12163,31 @@ Notes:
    that follow specific patterns, and hence don’t support sequence
    concatenation or repetition.
 
-8. "index" raises "ValueError" when *x* is not found in *s*. Not all
-   implementations support passing the additional arguments *i* and
-   *j*. These arguments allow efficient searching of subsections of
-   the sequence. Passing the extra arguments is roughly equivalent to
-   using "s[i:j].index(x)", only without copying any data and with the
-   returned index being relative to the start of the sequence rather
-   than the start of the slice.
+8. An "IndexError" is raised if *i* is outside the sequence range.
+
+-[ Sequence Methods ]-
 
-9. An "IndexError" is raised if *i* is outside the sequence range.
+Sequence types also support the following methods:
+
+sequence.count(value, /)
+
+   Return the total number of occurrences of *value* in *sequence*.
+
+sequence.index(value[, start[, stop])
+
+   Return the index of the first occurrence of *value* in *sequence*.
+
+   Raises "ValueError" if *value* is not found in *sequence*.
+
+   The *start* or *stop* arguments allow for efficient searching of
+   subsections of the sequence, beginning at *start* and ending at
+   *stop*. This is roughly equivalent to "start +
+   sequence[start:stop].index(value)", only without copying any data.
+
+   Caution:
+
+     Not all sequence types support passing the *start* and *stop*
+     arguments.
 
 
 Immutable Sequence Types
@@ -12167,63 +12239,79 @@ accepts integers that meet the value restriction "0 <= x <= 255").
 | "del s[i:j:k]"                 | removes the elements of          |                       |
 |                                | "s[i:j:k]" from the list         |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s.append(x)"                  | appends *x* to the end of the    |                       |
-|                                | sequence (same as                |                       |
-|                                | "s[len(s):len(s)] = [x]")        |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.clear()"                    | removes all items from *s* (same | (5)                   |
-|                                | as "del s[:]")                   |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.copy()"                     | creates a shallow copy of *s*    | (5)                   |
-|                                | (same as "s[:]")                 |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.extend(t)" or "s += t"      | extends *s* with the contents of |                       |
+| "s += t"                       | extends *s* with the contents of |                       |
 |                                | *t* (for the most part the same  |                       |
 |                                | as "s[len(s):len(s)] = t")       |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s *= n"                       | updates *s* with its contents    | (6)                   |
+| "s *= n"                       | updates *s* with its contents    | (2)                   |
 |                                | repeated *n* times               |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s.insert(i, x)"               | inserts *x* into *s* at the      |                       |
-|                                | index given by *i* (same as      |                       |
-|                                | "s[i:i] = [x]")                  |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.pop()" or "s.pop(i)"        | retrieves the item at *i* and    | (2)                   |
-|                                | also removes it from *s*         |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.remove(x)"                  | removes the first item from *s*  | (3)                   |
-|                                | where "s[i]" is equal to *x*     |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.reverse()"                  | reverses the items of *s* in     | (4)                   |
-|                                | place                            |                       |
-+--------------------------------+----------------------------------+-----------------------+
 
 Notes:
 
 1. If *k* is not equal to "1", *t* must have the same length as the
    slice it is replacing.
 
-2. The optional argument *i* defaults to "-1", so that by default the
-   last item is removed and returned.
+2. The value *n* is an integer, or an object implementing
+   "__index__()".  Zero and negative values of *n* clear the sequence.
+   Items in the sequence are not copied; they are referenced multiple
+   times, as explained for "s * n" under Common Sequence Operations.
 
-3. "remove()" raises "ValueError" when *x* is not found in *s*.
+-[ Mutable Sequence Methods ]-
 
-4. The "reverse()" method modifies the sequence in place for economy
-   of space when reversing a large sequence.  To remind users that it
-   operates by side effect, it does not return the reversed sequence.
+Mutable sequence types also support the following methods:
 
-5. "clear()" and "copy()" are included for consistency with the
-   interfaces of mutable containers that don’t support slicing
-   operations (such as "dict" and "set"). "copy()" is not part of the
-   "collections.abc.MutableSequence" ABC, but most concrete mutable
-   sequence classes provide it.
+sequence.append(value, /)
 
-   Added in version 3.3: "clear()" and "copy()" methods.
+   Append *value* to the end of the sequence This is equivalent to
+   writing "seq[len(seq):len(seq)] = [value]".
 
-6. The value *n* is an integer, or an object implementing
-   "__index__()".  Zero and negative values of *n* clear the sequence.
-   Items in the sequence are not copied; they are referenced multiple
-   times, as explained for "s * n" under Common Sequence Operations.
+sequence.clear()
+
+   Added in version 3.3.
+
+   Remove all items from *sequence*. This is equivalent to writing
+   "del sequence[:]".
+
+sequence.copy()
+
+   Added in version 3.3.
+
+   Create a shallow copy of *sequence*. This is equivalent to writing
+   "sequence[:]".
+
+   Hint:
+
+     The "copy()" method is not part of the "MutableSequence" "ABC",
+     but most concrete mutable sequence types provide it.
+
+sequence.extend(iterable, /)
+
+   Extend *sequence* with the contents of *iterable*. For the most
+   part, this is the same as writing "seq[len(seq):len(seq)] =
+   iterable".
+
+sequence.insert(index, value, /)
+
+   Insert *value* into *sequence* at the given *index*. This is
+   equivalent to writing "sequence[index:index] = [value]".
+
+sequence.pop(index=-1, /)
+
+   Retrieve the item at *index* and also removes it from *sequence*.
+   By default, the last item in *sequence* is removed and returned.
+
+sequence.remove(value, /)
+
+   Remove the first item from *sequence* where "sequence[i] == value".
+
+   Raises "ValueError" if *value* is not found in *sequence*.
+
+sequence.reverse()
+
+   Reverse the items of *sequence* in place. This method maintains
+   economy of space when reversing a large sequence. To remind users
+   that it operates by side-effect, it returns "None".
 
 
 Lists
@@ -12233,7 +12321,7 @@ Lists are mutable sequences, typically used to store collections of
 homogeneous items (where the precise degree of similarity will vary by
 application).
 
-class list([iterable])
+class list(iterable=(), /)
 
    Lists may be constructed in several ways:
 
@@ -12314,7 +12402,7 @@ built-in). Tuples are also used for cases where an immutable sequence
 of homogeneous data is needed (such as allowing storage in a "set" or
 "dict" instance).
 
-class tuple([iterable])
+class tuple(iterable=(), /)
 
    Tuples may be constructed in a number of ways:
 
@@ -12354,8 +12442,8 @@ Ranges
 The "range" type represents an immutable sequence of numbers and is
 commonly used for looping a specific number of times in "for" loops.
 
-class range(stop)
-class range(start, stop[, step])
+class range(stop, /)
+class range(start, stop, step=1, /)
 
    The arguments to the range constructor must be integers (either
    built-in "int" or any object that implements the "__index__()"
@@ -12499,63 +12587,79 @@ accepts integers that meet the value restriction "0 <= x <= 255").
 | "del s[i:j:k]"                 | removes the elements of          |                       |
 |                                | "s[i:j:k]" from the list         |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s.append(x)"                  | appends *x* to the end of the    |                       |
-|                                | sequence (same as                |                       |
-|                                | "s[len(s):len(s)] = [x]")        |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.clear()"                    | removes all items from *s* (same | (5)                   |
-|                                | as "del s[:]")                   |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.copy()"                     | creates a shallow copy of *s*    | (5)                   |
-|                                | (same as "s[:]")                 |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.extend(t)" or "s += t"      | extends *s* with the contents of |                       |
+| "s += t"                       | extends *s* with the contents of |                       |
 |                                | *t* (for the most part the same  |                       |
 |                                | as "s[len(s):len(s)] = t")       |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s *= n"                       | updates *s* with its contents    | (6)                   |
+| "s *= n"                       | updates *s* with its contents    | (2)                   |
 |                                | repeated *n* times               |                       |
 +--------------------------------+----------------------------------+-----------------------+
-| "s.insert(i, x)"               | inserts *x* into *s* at the      |                       |
-|                                | index given by *i* (same as      |                       |
-|                                | "s[i:i] = [x]")                  |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.pop()" or "s.pop(i)"        | retrieves the item at *i* and    | (2)                   |
-|                                | also removes it from *s*         |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.remove(x)"                  | removes the first item from *s*  | (3)                   |
-|                                | where "s[i]" is equal to *x*     |                       |
-+--------------------------------+----------------------------------+-----------------------+
-| "s.reverse()"                  | reverses the items of *s* in     | (4)                   |
-|                                | place                            |                       |
-+--------------------------------+----------------------------------+-----------------------+
 
 Notes:
 
 1. If *k* is not equal to "1", *t* must have the same length as the
    slice it is replacing.
 
-2. The optional argument *i* defaults to "-1", so that by default the
-   last item is removed and returned.
+2. The value *n* is an integer, or an object implementing
+   "__index__()".  Zero and negative values of *n* clear the sequence.
+   Items in the sequence are not copied; they are referenced multiple
+   times, as explained for "s * n" under Common Sequence Operations.
 
-3. "remove()" raises "ValueError" when *x* is not found in *s*.
+-[ Mutable Sequence Methods ]-
 
-4. The "reverse()" method modifies the sequence in place for economy
-   of space when reversing a large sequence.  To remind users that it
-   operates by side effect, it does not return the reversed sequence.
+Mutable sequence types also support the following methods:
 
-5. "clear()" and "copy()" are included for consistency with the
-   interfaces of mutable containers that don’t support slicing
-   operations (such as "dict" and "set"). "copy()" is not part of the
-   "collections.abc.MutableSequence" ABC, but most concrete mutable
-   sequence classes provide it.
+sequence.append(value, /)
 
-   Added in version 3.3: "clear()" and "copy()" methods.
+   Append *value* to the end of the sequence This is equivalent to
+   writing "seq[len(seq):len(seq)] = [value]".
 
-6. The value *n* is an integer, or an object implementing
-   "__index__()".  Zero and negative values of *n* clear the sequence.
-   Items in the sequence are not copied; they are referenced multiple
-   times, as explained for "s * n" under Common Sequence Operations.
+sequence.clear()
+
+   Added in version 3.3.
+
+   Remove all items from *sequence*. This is equivalent to writing
+   "del sequence[:]".
+
+sequence.copy()
+
+   Added in version 3.3.
+
+   Create a shallow copy of *sequence*. This is equivalent to writing
+   "sequence[:]".
+
+   Hint:
+
+     The "copy()" method is not part of the "MutableSequence" "ABC",
+     but most concrete mutable sequence types provide it.
+
+sequence.extend(iterable, /)
+
+   Extend *sequence* with the contents of *iterable*. For the most
+   part, this is the same as writing "seq[len(seq):len(seq)] =
+   iterable".
+
+sequence.insert(index, value, /)
+
+   Insert *value* into *sequence* at the given *index*. This is
+   equivalent to writing "sequence[index:index] = [value]".
+
+sequence.pop(index=-1, /)
+
+   Retrieve the item at *index* and also removes it from *sequence*.
+   By default, the last item in *sequence* is removed and returned.
+
+sequence.remove(value, /)
+
+   Remove the first item from *sequence* where "sequence[i] == value".
+
+   Raises "ValueError" if *value* is not found in *sequence*.
+
+sequence.reverse()
+
+   Reverse the items of *sequence* in place. This method maintains
+   economy of space when reversing a large sequence. To remind users
+   that it operates by side-effect, it returns "None".
 ''',
     'unary': r'''Unary arithmetic and bitwise operations
 ***************************************
diff --git a/Misc/NEWS.d/3.13.8.rst b/Misc/NEWS.d/3.13.8.rst
new file mode 100644 (file)
index 0000000..27fc901
--- /dev/null
@@ -0,0 +1,563 @@
+.. date: 2025-10-06-23-56-36
+.. gh-issue: 124111
+.. nonce: KOlBvs
+.. release date: 2025-10-07
+.. section: macOS
+
+Update macOS installer to use Tcl/Tk 8.6.17.
+
+..
+
+.. date: 2025-10-04-12-29-31
+.. gh-issue: 139573
+.. nonce: vVpHaP
+.. section: macOS
+
+Updated bundled version of OpenSSL to 3.0.18.
+
+..
+
+.. date: 2025-10-04-12-18-45
+.. gh-issue: 139573
+.. nonce: EO9kVB
+.. section: Windows
+
+Updated bundled version of OpenSSL to 3.0.18.
+
+..
+
+.. date: 2025-09-15-15-34-29
+.. gh-issue: 138896
+.. nonce: lkiF_7
+.. section: Windows
+
+Fix error installing C runtime on non-updated Windows machines
+
+..
+
+.. date: 2025-09-25-10-31-02
+.. gh-issue: 139330
+.. nonce: 5WWkY0
+.. section: Tools/Demos
+
+SBOM generation tool didn't cross-check the version and checksum values
+against the ``Modules/expat/refresh.sh`` script, leading to the values
+becoming out-of-date during routine updates.
+
+..
+
+.. date: 2025-08-21-14-04-50
+.. gh-issue: 137873
+.. nonce: qxffLt
+.. section: Tools/Demos
+
+The iOS test runner has been simplified, resolving some issues that have
+been observed using the runner in GitHub Actions and Azure Pipelines test
+environments.
+
+..
+
+.. date: 2025-09-22-15-40-09
+.. gh-issue: 139208
+.. nonce: Tc13dl
+.. section: Tests
+
+Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--verbose`` option
+anymore. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-09-29-00-01-28
+.. gh-issue: 139400
+.. nonce: X2T-jO
+.. section: Security
+
+:mod:`xml.parsers.expat`: Make sure that parent Expat parsers are only
+garbage-collected once they are no longer referenced by subparsers created
+by :meth:`~xml.parsers.expat.xmlparser.ExternalEntityParserCreate`. Patch by
+Sebastian Pipping.
+
+..
+
+.. date: 2025-09-24-13-39-56
+.. gh-issue: 139283
+.. nonce: jODz_q
+.. section: Security
+
+:mod:`sqlite3`: correctly handle maximum number of rows to fetch in
+:meth:`Cursor.fetchmany <sqlite3.Cursor.fetchmany>` and reject negative
+values for :attr:`Cursor.arraysize <sqlite3.Cursor.arraysize>`. Patch by
+Bénédikt Tran.
+
+..
+
+.. date: 2025-06-18-13-34-55
+.. gh-issue: 135661
+.. nonce: NZlpWf
+.. section: Security
+
+Fix CDATA section parsing in :class:`html.parser.HTMLParser` according to
+the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the CDATA section.
+Add private method ``_set_support_cdata()`` which can be used to specify how
+to parse ``<[CDATA[`` --- as a CDATA section in foreign content (SVG or
+MathML) or as a bogus comment in the HTML namespace.
+
+..
+
+.. date: 2025-09-25-07-33-43
+.. gh-issue: 139312
+.. nonce: ygE8AC
+.. section: Library
+
+Upgrade bundled libexpat to 2.7.3
+
+..
+
+.. date: 2025-09-24-14-17-34
+.. gh-issue: 139289
+.. nonce: Vmk25k
+.. section: Library
+
+Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and restore the
+existing completer after importing :mod:`rlcompleter`.
+
+..
+
+.. date: 2025-09-21-15-58-57
+.. gh-issue: 139210
+.. nonce: HGbMvz
+.. section: Library
+
+Fix use-after-free when reporting unknown event in
+:func:`xml.etree.ElementTree.iterparse`. Patch by Ken Jin.
+
+..
+
+.. date: 2025-09-20-17-50-31
+.. gh-issue: 138860
+.. nonce: Y9JXap
+.. section: Library
+
+Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock in
+subprocess.
+
+..
+
+.. date: 2025-09-19-09-36-42
+.. gh-issue: 112729
+.. nonce: mmty0_
+.. section: Library
+
+Fix crash when calling ``_interpreters.create`` when the process is out of
+memory.
+
+..
+
+.. date: 2025-09-17-21-54-53
+.. gh-issue: 139076
+.. nonce: 2eX9lG
+.. section: Library
+
+Fix a bug in the :mod:`pydoc` module that was hiding functions in a Python
+module if they were implemented in an extension module and the module did
+not have ``__all__``.
+
+..
+
+.. date: 2025-09-16-19-05-29
+.. gh-issue: 138998
+.. nonce: URl0Y_
+.. section: Library
+
+Update bundled libexpat to 2.7.2
+
+..
+
+.. date: 2025-09-15-19-29-12
+.. gh-issue: 130567
+.. nonce: shDEnT
+.. section: Library
+
+Fix possible crash in :func:`locale.strxfrm` due to a platform bug on macOS.
+
+..
+
+.. date: 2025-09-11-11-09-28
+.. gh-issue: 138779
+.. nonce: TNZnLr
+.. section: Library
+
+Support device numbers larger than ``2**63-1`` for the
+:attr:`~os.stat_result.st_rdev` field of the :class:`os.stat_result`
+structure.
+
+..
+
+.. date: 2025-09-10-10-02-59
+.. gh-issue: 128636
+.. nonce: ldRKGZ
+.. section: Library
+
+Fix crash in PyREPL when os.environ is overwritten with an invalid value for
+mac
+
+..
+
+.. date: 2025-09-05-15-35-59
+.. gh-issue: 88375
+.. nonce: dC491a
+.. section: Library
+
+Fix normalization of the ``robots.txt`` rules and URLs in the
+:mod:`urllib.robotparser` module. No longer ignore trailing ``?``.
+Distinguish raw special characters ``?``, ``=`` and ``&`` from the
+percent-encoded ones.
+
+..
+
+.. date: 2025-09-05-07-50-18
+.. gh-issue: 138515
+.. nonce: E3M-pu
+.. section: Library
+
+:mod:`email` is added to Emscripten build.
+
+..
+
+.. date: 2025-09-04-15-18-11
+.. gh-issue: 111788
+.. nonce: tuTEM5
+.. section: Library
+
+Fix parsing errors in the :mod:`urllib.robotparser` module. Don't fail
+trying to parse weird paths. Don't fail trying to decode non-UTF-8
+``robots.txt`` files.
+
+..
+
+.. date: 2025-09-03-15-20-10
+.. gh-issue: 138432
+.. nonce: RMc7UX
+.. section: Library
+
+:meth:`zoneinfo.reset_tzpath` will now convert any :class:`os.PathLike`
+objects it receives into strings before adding them to ``TZPATH``. It will
+raise ``TypeError`` if anything other than a string is found after this
+conversion. If given an :class:`os.PathLike` object that represents a
+relative path, it will now raise ``ValueError`` instead of ``TypeError``,
+and present a more informative error message.
+
+..
+
+.. date: 2025-08-31-09-06-49
+.. gh-issue: 138008
+.. nonce: heOvsU
+.. section: Library
+
+Fix segmentation faults in the :mod:`ctypes` module due to invalid
+:attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen.
+
+..
+
+.. date: 2025-08-30-10-04-28
+.. gh-issue: 60462
+.. nonce: yh_vDc
+.. section: Library
+
+Fix :func:`locale.strxfrm` on Solaris (and possibly other platforms).
+
+..
+
+.. date: 2025-08-28-13-20-09
+.. gh-issue: 138204
+.. nonce: 8oLOud
+.. section: Library
+
+Forbid expansion of shared anonymous :mod:`memory maps <mmap>` on Linux,
+which caused a bus error.
+
+..
+
+.. date: 2025-08-27-17-05-36
+.. gh-issue: 138010
+.. nonce: ZZJmPL
+.. section: Library
+
+Fix an issue where defining a class with a
+:deco:`warnings.deprecated`-decorated base class may not invoke the correct
+:meth:`~object.__init_subclass__` method in cases involving multiple
+inheritance. Patch by Brian Schubert.
+
+..
+
+.. date: 2025-08-25-18-06-04
+.. gh-issue: 138133
+.. nonce: Zh9rGo
+.. section: Library
+
+Prevent infinite traceback loop when sending CTRL^C to Python through
+``strace``.
+
+..
+
+.. date: 2025-08-18-16-02-51
+.. gh-issue: 134869
+.. nonce: GnAjnU
+.. section: Library
+
+Fix an issue where pressing Ctrl+C during tab completion in the REPL would
+leave the autocompletion menu in a corrupted state.
+
+..
+
+.. date: 2025-08-16-16-04-15
+.. gh-issue: 137317
+.. nonce: Dl13B5
+.. section: Library
+
+:func:`inspect.signature` now correctly handles classes that use a
+descriptor on a wrapped :meth:`!__init__` or :meth:`!__new__` method.
+Contributed by Yongyu Yan.
+
+..
+
+.. date: 2025-08-16-09-02-11
+.. gh-issue: 137754
+.. nonce: mCev1Y
+.. section: Library
+
+Fix import of the :mod:`zoneinfo` module if the C implementation of the
+:mod:`datetime` module is not available.
+
+..
+
+.. date: 2025-08-07-17-18-57
+.. gh-issue: 137490
+.. nonce: s89ieZ
+.. section: Library
+
+Handle :data:`~errno.ECANCELED` in the same way as :data:`~errno.EINTR` in
+:func:`signal.sigwaitinfo` on NetBSD.
+
+..
+
+.. date: 2025-08-06-23-16-42
+.. gh-issue: 137477
+.. nonce: bk6BDV
+.. section: Library
+
+Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` and
+:func:`inspect.getsource` for generator expressions.
+
+..
+
+.. date: 2025-08-01-23-11-25
+.. gh-issue: 137017
+.. nonce: 0yGcNc
+.. section: Library
+
+Fix :obj:`threading.Thread.is_alive` to remain ``True`` until the underlying
+OS thread is fully cleaned up. This avoids false negatives in edge cases
+involving thread monitoring or premature :obj:`threading.Thread.is_alive`
+calls.
+
+..
+
+.. date: 2025-07-13-13-31-22
+.. gh-issue: 136134
+.. nonce: mh6VjS
+.. section: Library
+
+:meth:`!SMTP.auth_cram_md5` now raises an :exc:`~smtplib.SMTPException`
+instead of a :exc:`ValueError` if Python has been built without MD5 support.
+In particular, :class:`~smtplib.SMTP` clients will not attempt to use this
+method even if the remote server is assumed to support it. Patch by Bénédikt
+Tran.
+
+..
+
+.. date: 2025-07-13-11-20-05
+.. gh-issue: 136134
+.. nonce: xhh0Kq
+.. section: Library
+
+:meth:`IMAP4.login_cram_md5 <imaplib.IMAP4.login_cram_md5>` now raises an
+:exc:`IMAP4.error <imaplib.IMAP4.error>` if CRAM-MD5 authentication is not
+supported. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-06-16-15-00-13
+.. gh-issue: 135386
+.. nonce: lNrxLc
+.. section: Library
+
+Fix opening a :mod:`dbm.sqlite3` database for reading from read-only file or
+directory.
+
+..
+
+.. date: 2025-06-10-21-00-48
+.. gh-issue: 126631
+.. nonce: eITVJd
+.. section: Library
+
+Fix :mod:`multiprocessing` ``forkserver`` bug which prevented ``__main__``
+from being preloaded.
+
+..
+
+.. date: 2024-08-17-08-17-20
+.. gh-issue: 123085
+.. nonce: 7Io2yH
+.. section: Library
+
+In a bare call to :func:`importlib.resources.files`, ensure the caller's
+frame is properly detected when ``importlib.resources`` is itself available
+as a compiled module only (no source).
+
+..
+
+.. date: 2024-05-13-09-50-31
+.. gh-issue: 118981
+.. nonce: zgOQPv
+.. section: Library
+
+Fix potential hang in ``multiprocessing.popen_spawn_posix`` that can happen
+when the child proc dies early by closing the child fds right away.
+
+..
+
+.. date: 2023-02-13-20-34-52
+.. gh-issue: 78319
+.. nonce: V1zzed
+.. section: Library
+
+UTF8 support for the IMAP APPEND command has been made RFC compliant.
+
+..
+
+.. bpo: 38735
+.. date: 2022-01-07-16-56-57
+.. nonce: NFfJX6
+.. section: Library
+
+Fix failure when importing a module from the root directory on unix-like
+platforms with sys.pycache_prefix set.
+
+..
+
+.. bpo: 41839
+.. date: 2020-09-23-11-54-17
+.. nonce: kU5Ywl
+.. section: Library
+
+Allow negative priority values from :func:`os.sched_get_priority_min` and
+:func:`os.sched_get_priority_max` functions.
+
+..
+
+.. date: 2025-09-15-14-04-56
+.. gh-issue: 134466
+.. nonce: yR4fYW
+.. section: Core and Builtins
+
+Don't run PyREPL in a degraded environment where setting termios attributes
+is not allowed.
+
+..
+
+.. date: 2025-09-10-14-53-59
+.. gh-issue: 71810
+.. nonce: ppf0J-
+.. section: Core and Builtins
+
+Raise :exc:`OverflowError` for ``(-1).to_bytes()`` for signed conversions
+when bytes count is zero.  Patch by Sergey B Kirpichev.
+
+..
+
+.. date: 2025-09-06-13-53-33
+.. gh-issue: 105487
+.. nonce: a43YaY
+.. section: Core and Builtins
+
+Remove non-existent :meth:`~object.__copy__`, :meth:`~object.__deepcopy__`,
+and :attr:`~type.__bases__` from the :meth:`~object.__dir__` entries of
+:class:`types.GenericAlias`.
+
+..
+
+.. date: 2025-09-04-11-52-23
+.. gh-issue: 134163
+.. nonce: EqKyn8
+.. section: Core and Builtins
+
+Fix a hang when the process is out of memory inside an exception handler.
+
+..
+
+.. date: 2025-09-03-17-00-30
+.. gh-issue: 138479
+.. nonce: qUxgWs
+.. section: Core and Builtins
+
+Fix a crash when a generic object's ``__typing_subst__`` returns an object
+that isn't a :class:`tuple`.
+
+..
+
+.. date: 2025-08-10-21-34-12
+.. gh-issue: 137576
+.. nonce: 0ZicS-
+.. section: Core and Builtins
+
+Fix for incorrect source code being shown in tracebacks from the Basic REPL
+when :envvar:`PYTHONSTARTUP` is given. Patch by Adam Hartz.
+
+..
+
+.. date: 2025-04-20-10-37-39
+.. gh-issue: 132744
+.. nonce: ArrCp8
+.. section: Core and Builtins
+
+Certain calls now check for runaway recursion and respect the system
+recursion limit.
+
+..
+
+.. date: 2022-08-05-19-41-20
+.. gh-issue: 87135
+.. nonce: SCNBYj
+.. section: C API
+
+Attempting to acquire the GIL after runtime finalization has begun in a
+different thread now causes the thread to hang rather than terminate, which
+avoids potential crashes or memory corruption caused by attempting to
+terminate a thread that is running code not specifically designed to support
+termination. In most cases this hanging is harmless since the process will
+soon exit anyway.
+
+While not officially marked deprecated until 3.14, ``PyThread_exit_thread``
+is no longer called internally and remains solely for interface
+compatibility. Its behavior is inconsistent across platforms, and it can
+only be used safely in the unlikely case that every function in the entire
+call stack has been designed to support the platform-dependent termination
+mechanism.  It is recommended that users of this function change their
+design to not require thread termination.  In the unlikely case that thread
+termination is needed and can be done safely, users may migrate to calling
+platform-specific APIs such as ``pthread_exit`` (POSIX) or ``_endthreadex``
+(Windows) directly.
+
+..
+
+.. date: 2025-08-20-16-45-34
+.. gh-issue: 135734
+.. nonce: 2hvJCe
+.. section: Build
+
+Python can correctly be configured and built with ``./configure
+--enable-optimizations --disable-test-modules``. Previously, the profile
+data generation step failed due to PGO tests where immortalization couldn't
+be properly suppressed. Patch by Bénédikt Tran.
diff --git a/Misc/NEWS.d/next/Build/2025-08-20-16-45-34.gh-issue-135734.2hvJCe.rst b/Misc/NEWS.d/next/Build/2025-08-20-16-45-34.gh-issue-135734.2hvJCe.rst
deleted file mode 100644 (file)
index 9a83580..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Python can correctly be configured and built with
-``./configure --enable-optimizations --disable-test-modules``.
-Previously, the profile data generation step failed due to PGO tests where
-immortalization couldn't be properly suppressed. Patch by Bénédikt Tran.
diff --git a/Misc/NEWS.d/next/C API/2022-08-05-19-41-20.gh-issue-87135.SCNBYj.rst b/Misc/NEWS.d/next/C API/2022-08-05-19-41-20.gh-issue-87135.SCNBYj.rst
deleted file mode 100644 (file)
index 6753c64..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Attempting to acquire the GIL after runtime finalization has begun in a
-different thread now causes the thread to hang rather than terminate, which
-avoids potential crashes or memory corruption caused by attempting to
-terminate a thread that is running code not specifically designed to support
-termination. In most cases this hanging is harmless since the process will
-soon exit anyway.
-
-While not officially marked deprecated until 3.14, ``PyThread_exit_thread``
-is no longer called internally and remains solely for interface compatibility.
-Its behavior is inconsistent across platforms, and it can only be used safely
-in the unlikely case that every function in the entire call stack has been
-designed to support the platform-dependent termination mechanism.  It is
-recommended that users of this function change their design to not require
-thread termination.  In the unlikely case that thread termination is needed and
-can be done safely, users may migrate to calling platform-specific APIs such as
-``pthread_exit`` (POSIX) or ``_endthreadex`` (Windows) directly.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2025-04-20-10-37-39.gh-issue-132744.ArrCp8.rst b/Misc/NEWS.d/next/Core and Builtins/2025-04-20-10-37-39.gh-issue-132744.ArrCp8.rst
deleted file mode 100644 (file)
index bcd7256..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Certain calls now check for runaway recursion and respect the system recursion limit.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2025-08-10-21-34-12.gh-issue-137576.0ZicS-.rst b/Misc/NEWS.d/next/Core and Builtins/2025-08-10-21-34-12.gh-issue-137576.0ZicS-.rst
deleted file mode 100644 (file)
index 19e0f3b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix for incorrect source code being shown in tracebacks from the Basic REPL
-when :envvar:`PYTHONSTARTUP` is given. Patch by Adam Hartz.
diff --git a/Misc/NEWS.d/next/Core and Builtins/2025-09-06-13-53-33.gh-issue-105487.a43YaY.rst b/Misc/NEWS.d/next/Core and Builtins/2025-09-06-13-53-33.gh-issue-105487.a43YaY.rst
deleted file mode 100644 (file)
index 968e92c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Remove non-existent :meth:`~object.__copy__`, :meth:`~object.__deepcopy__`, and :attr:`~type.__bases__` from the :meth:`~object.__dir__` entries of :class:`types.GenericAlias`.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-03-17-00-30.gh-issue-138479.qUxgWs.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-03-17-00-30.gh-issue-138479.qUxgWs.rst
deleted file mode 100644 (file)
index c94640a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a crash when a generic object's ``__typing_subst__`` returns an object
-that isn't a :class:`tuple`.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-04-11-52-23.gh-issue-134163.EqKyn8.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-04-11-52-23.gh-issue-134163.EqKyn8.rst
deleted file mode 100644 (file)
index 24e8efd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix a hang when the process is out of memory inside an exception handler.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-10-14-53-59.gh-issue-71810.ppf0J-.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-10-14-53-59.gh-issue-71810.ppf0J-.rst
deleted file mode 100644 (file)
index a87db44..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Raise :exc:`OverflowError` for ``(-1).to_bytes()`` for signed conversions
-when bytes count is zero.  Patch by Sergey B Kirpichev.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-15-14-04-56.gh-issue-134466.yR4fYW.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-15-14-04-56.gh-issue-134466.yR4fYW.rst
deleted file mode 100644 (file)
index 4fae7e0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Don't run PyREPL in a degraded environment where setting termios attributes
-is not allowed.
diff --git a/Misc/NEWS.d/next/Library/2020-09-23-11-54-17.bpo-41839.kU5Ywl.rst b/Misc/NEWS.d/next/Library/2020-09-23-11-54-17.bpo-41839.kU5Ywl.rst
deleted file mode 100644 (file)
index 7606604..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Allow negative priority values from :func:`os.sched_get_priority_min` and
-:func:`os.sched_get_priority_max` functions.
diff --git a/Misc/NEWS.d/next/Library/2022-01-07-16-56-57.bpo-38735.NFfJX6.rst b/Misc/NEWS.d/next/Library/2022-01-07-16-56-57.bpo-38735.NFfJX6.rst
deleted file mode 100644 (file)
index 7f4ea04..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix failure when importing a module from the root directory on unix-like
-platforms with sys.pycache_prefix set.
diff --git a/Misc/NEWS.d/next/Library/2023-02-13-20-34-52.gh-issue-78319.V1zzed.rst b/Misc/NEWS.d/next/Library/2023-02-13-20-34-52.gh-issue-78319.V1zzed.rst
deleted file mode 100644 (file)
index cc8a6e7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-UTF8 support for the IMAP APPEND command has been made RFC compliant.
diff --git a/Misc/NEWS.d/next/Library/2024-05-13-09-50-31.gh-issue-118981.zgOQPv.rst b/Misc/NEWS.d/next/Library/2024-05-13-09-50-31.gh-issue-118981.zgOQPv.rst
deleted file mode 100644 (file)
index 72b9f6c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix potential hang in ``multiprocessing.popen_spawn_posix`` that can happen
-when the child proc dies early by closing the child fds right away.
diff --git a/Misc/NEWS.d/next/Library/2024-08-17-08-17-20.gh-issue-123085.7Io2yH.rst b/Misc/NEWS.d/next/Library/2024-08-17-08-17-20.gh-issue-123085.7Io2yH.rst
deleted file mode 100644 (file)
index 2e09401..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-In a bare call to :func:`importlib.resources.files`, ensure the caller's
-frame is properly detected when ``importlib.resources`` is itself available
-as a compiled module only (no source).
diff --git a/Misc/NEWS.d/next/Library/2025-06-10-21-00-48.gh-issue-126631.eITVJd.rst b/Misc/NEWS.d/next/Library/2025-06-10-21-00-48.gh-issue-126631.eITVJd.rst
deleted file mode 100644 (file)
index 195253b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :mod:`multiprocessing` ``forkserver`` bug which prevented ``__main__``
-from being preloaded.
diff --git a/Misc/NEWS.d/next/Library/2025-06-16-15-00-13.gh-issue-135386.lNrxLc.rst b/Misc/NEWS.d/next/Library/2025-06-16-15-00-13.gh-issue-135386.lNrxLc.rst
deleted file mode 100644 (file)
index dbf1f45..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix opening a :mod:`dbm.sqlite3` database for reading from read-only file
-or directory.
diff --git a/Misc/NEWS.d/next/Library/2025-07-13-11-20-05.gh-issue-136134.xhh0Kq.rst b/Misc/NEWS.d/next/Library/2025-07-13-11-20-05.gh-issue-136134.xhh0Kq.rst
deleted file mode 100644 (file)
index 619526a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:meth:`IMAP4.login_cram_md5 <imaplib.IMAP4.login_cram_md5>` now raises an
-:exc:`IMAP4.error <imaplib.IMAP4.error>` if CRAM-MD5 authentication is not
-supported. Patch by Bénédikt Tran.
diff --git a/Misc/NEWS.d/next/Library/2025-07-13-13-31-22.gh-issue-136134.mh6VjS.rst b/Misc/NEWS.d/next/Library/2025-07-13-13-31-22.gh-issue-136134.mh6VjS.rst
deleted file mode 100644 (file)
index f0290be..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-:meth:`!SMTP.auth_cram_md5` now raises an :exc:`~smtplib.SMTPException`
-instead of a :exc:`ValueError` if Python has been built without MD5 support.
-In particular, :class:`~smtplib.SMTP` clients will not attempt to use this
-method even if the remote server is assumed to support it. Patch by Bénédikt
-Tran.
diff --git a/Misc/NEWS.d/next/Library/2025-08-01-23-11-25.gh-issue-137017.0yGcNc.rst b/Misc/NEWS.d/next/Library/2025-08-01-23-11-25.gh-issue-137017.0yGcNc.rst
deleted file mode 100644 (file)
index 7c2c013..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix :obj:`threading.Thread.is_alive` to remain ``True`` until the underlying OS
-thread is fully cleaned up. This avoids false negatives in edge cases
-involving thread monitoring or premature :obj:`threading.Thread.is_alive` calls.
diff --git a/Misc/NEWS.d/next/Library/2025-08-06-23-16-42.gh-issue-137477.bk6BDV.rst b/Misc/NEWS.d/next/Library/2025-08-06-23-16-42.gh-issue-137477.bk6BDV.rst
deleted file mode 100644 (file)
index a6e097e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :func:`!inspect.getblock`, :func:`inspect.getsourcelines` and
-:func:`inspect.getsource` for generator expressions.
diff --git a/Misc/NEWS.d/next/Library/2025-08-07-17-18-57.gh-issue-137490.s89ieZ.rst b/Misc/NEWS.d/next/Library/2025-08-07-17-18-57.gh-issue-137490.s89ieZ.rst
deleted file mode 100644 (file)
index bcb0938..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Handle :data:`~errno.ECANCELED` in the same way as :data:`~errno.EINTR` in
-:func:`signal.sigwaitinfo` on NetBSD.
diff --git a/Misc/NEWS.d/next/Library/2025-08-16-09-02-11.gh-issue-137754.mCev1Y.rst b/Misc/NEWS.d/next/Library/2025-08-16-09-02-11.gh-issue-137754.mCev1Y.rst
deleted file mode 100644 (file)
index 323870a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix import of the :mod:`zoneinfo` module if the C implementation of the
-:mod:`datetime` module is not available.
diff --git a/Misc/NEWS.d/next/Library/2025-08-16-16-04-15.gh-issue-137317.Dl13B5.rst b/Misc/NEWS.d/next/Library/2025-08-16-16-04-15.gh-issue-137317.Dl13B5.rst
deleted file mode 100644 (file)
index 026cc32..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-:func:`inspect.signature` now correctly handles classes that use a descriptor
-on a wrapped :meth:`!__init__` or :meth:`!__new__` method.
-Contributed by Yongyu Yan.
diff --git a/Misc/NEWS.d/next/Library/2025-08-18-16-02-51.gh-issue-134869.GnAjnU.rst b/Misc/NEWS.d/next/Library/2025-08-18-16-02-51.gh-issue-134869.GnAjnU.rst
deleted file mode 100644 (file)
index abb3579..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix an issue where pressing Ctrl+C during tab completion in the REPL would leave the autocompletion menu in a corrupted state.
diff --git a/Misc/NEWS.d/next/Library/2025-08-25-18-06-04.gh-issue-138133.Zh9rGo.rst b/Misc/NEWS.d/next/Library/2025-08-25-18-06-04.gh-issue-138133.Zh9rGo.rst
deleted file mode 100644 (file)
index f9045ef..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Prevent infinite traceback loop when sending CTRL^C to Python through ``strace``.
diff --git a/Misc/NEWS.d/next/Library/2025-08-27-17-05-36.gh-issue-138010.ZZJmPL.rst b/Misc/NEWS.d/next/Library/2025-08-27-17-05-36.gh-issue-138010.ZZJmPL.rst
deleted file mode 100644 (file)
index 1cc031a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix an issue where defining a class with a :deco:`warnings.deprecated`-decorated
-base class may not invoke the correct
-:meth:`~object.__init_subclass__` method in cases involving multiple
-inheritance. Patch by Brian Schubert.
diff --git a/Misc/NEWS.d/next/Library/2025-08-28-13-20-09.gh-issue-138204.8oLOud.rst b/Misc/NEWS.d/next/Library/2025-08-28-13-20-09.gh-issue-138204.8oLOud.rst
deleted file mode 100644 (file)
index 8eb5497..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Forbid expansion of shared anonymous :mod:`memory maps <mmap>` on Linux,
-which caused a bus error.
diff --git a/Misc/NEWS.d/next/Library/2025-08-30-10-04-28.gh-issue-60462.yh_vDc.rst b/Misc/NEWS.d/next/Library/2025-08-30-10-04-28.gh-issue-60462.yh_vDc.rst
deleted file mode 100644 (file)
index 1365b1b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix :func:`locale.strxfrm` on Solaris (and possibly other platforms).
diff --git a/Misc/NEWS.d/next/Library/2025-08-31-09-06-49.gh-issue-138008.heOvsU.rst b/Misc/NEWS.d/next/Library/2025-08-31-09-06-49.gh-issue-138008.heOvsU.rst
deleted file mode 100644 (file)
index 40930b8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix segmentation faults in the :mod:`ctypes` module due to invalid :attr:`~ctypes._CFuncPtr.argtypes`. Patch by Dung Nguyen.
diff --git a/Misc/NEWS.d/next/Library/2025-09-03-15-20-10.gh-issue-138432.RMc7UX.rst b/Misc/NEWS.d/next/Library/2025-09-03-15-20-10.gh-issue-138432.RMc7UX.rst
deleted file mode 100644 (file)
index b48b978..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-:meth:`zoneinfo.reset_tzpath` will now convert any :class:`os.PathLike` objects
-it receives into strings before adding them to ``TZPATH``. It will raise
-``TypeError`` if anything other than a string is found after this conversion.
-If given an :class:`os.PathLike` object that represents a relative path, it
-will now raise ``ValueError`` instead of ``TypeError``, and present a more
-informative error message.
diff --git a/Misc/NEWS.d/next/Library/2025-09-04-15-18-11.gh-issue-111788.tuTEM5.rst b/Misc/NEWS.d/next/Library/2025-09-04-15-18-11.gh-issue-111788.tuTEM5.rst
deleted file mode 100644 (file)
index a86e71e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix parsing errors in the :mod:`urllib.robotparser` module.
-Don't fail trying to parse weird paths.
-Don't fail trying to decode non-UTF-8 ``robots.txt`` files.
diff --git a/Misc/NEWS.d/next/Library/2025-09-05-07-50-18.gh-issue-138515.E3M-pu.rst b/Misc/NEWS.d/next/Library/2025-09-05-07-50-18.gh-issue-138515.E3M-pu.rst
deleted file mode 100644 (file)
index 12712b8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-:mod:`email` is added to Emscripten build.
diff --git a/Misc/NEWS.d/next/Library/2025-09-05-15-35-59.gh-issue-88375.dC491a.rst b/Misc/NEWS.d/next/Library/2025-09-05-15-35-59.gh-issue-88375.dC491a.rst
deleted file mode 100644 (file)
index 1660f39..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fix normalization of the ``robots.txt`` rules and URLs in the
-:mod:`urllib.robotparser` module. No longer ignore trailing ``?``.
-Distinguish raw special characters ``?``, ``=`` and ``&`` from the
-percent-encoded ones.
diff --git a/Misc/NEWS.d/next/Library/2025-09-10-10-02-59.gh-issue-128636.ldRKGZ.rst b/Misc/NEWS.d/next/Library/2025-09-10-10-02-59.gh-issue-128636.ldRKGZ.rst
deleted file mode 100644 (file)
index 54eae0a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix crash in PyREPL when os.environ is overwritten with an invalid value for
-mac
diff --git a/Misc/NEWS.d/next/Library/2025-09-11-11-09-28.gh-issue-138779.TNZnLr.rst b/Misc/NEWS.d/next/Library/2025-09-11-11-09-28.gh-issue-138779.TNZnLr.rst
deleted file mode 100644 (file)
index d54f21f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Support device numbers larger than ``2**63-1`` for the
-:attr:`~os.stat_result.st_rdev` field of the :class:`os.stat_result`
-structure.
diff --git a/Misc/NEWS.d/next/Library/2025-09-15-19-29-12.gh-issue-130567.shDEnT.rst b/Misc/NEWS.d/next/Library/2025-09-15-19-29-12.gh-issue-130567.shDEnT.rst
deleted file mode 100644 (file)
index c194b23..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix possible crash in :func:`locale.strxfrm` due to a platform bug on
-macOS.
diff --git a/Misc/NEWS.d/next/Library/2025-09-16-19-05-29.gh-issue-138998.URl0Y_.rst b/Misc/NEWS.d/next/Library/2025-09-16-19-05-29.gh-issue-138998.URl0Y_.rst
deleted file mode 100644 (file)
index ce377ab..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update bundled libexpat to 2.7.2
diff --git a/Misc/NEWS.d/next/Library/2025-09-17-21-54-53.gh-issue-139076.2eX9lG.rst b/Misc/NEWS.d/next/Library/2025-09-17-21-54-53.gh-issue-139076.2eX9lG.rst
deleted file mode 100644 (file)
index 5e0ae6e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Fix a bug in the :mod:`pydoc` module that was hiding functions in a Python
-module if they were implemented in an extension module and the module did
-not have ``__all__``.
diff --git a/Misc/NEWS.d/next/Library/2025-09-19-09-36-42.gh-issue-112729.mmty0_.rst b/Misc/NEWS.d/next/Library/2025-09-19-09-36-42.gh-issue-112729.mmty0_.rst
deleted file mode 100644 (file)
index 07485fc..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix crash when calling ``_interpreters.create`` when the
-process is out of memory.
diff --git a/Misc/NEWS.d/next/Library/2025-09-20-17-50-31.gh-issue-138860.Y9JXap.rst b/Misc/NEWS.d/next/Library/2025-09-20-17-50-31.gh-issue-138860.Y9JXap.rst
deleted file mode 100644 (file)
index 0903eb7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Lazy import :mod:`rlcompleter` in :mod:`pdb` to avoid deadlock in subprocess.
diff --git a/Misc/NEWS.d/next/Library/2025-09-21-15-58-57.gh-issue-139210.HGbMvz.rst b/Misc/NEWS.d/next/Library/2025-09-21-15-58-57.gh-issue-139210.HGbMvz.rst
deleted file mode 100644 (file)
index 1227b29..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix use-after-free when reporting unknown event in :func:`xml.etree.ElementTree.iterparse`. Patch by Ken Jin.
diff --git a/Misc/NEWS.d/next/Library/2025-09-24-14-17-34.gh-issue-139289.Vmk25k.rst b/Misc/NEWS.d/next/Library/2025-09-24-14-17-34.gh-issue-139289.Vmk25k.rst
deleted file mode 100644 (file)
index 0416261..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Do a real lazy-import on :mod:`rlcompleter` in :mod:`pdb` and restore the existing completer after importing :mod:`rlcompleter`.
diff --git a/Misc/NEWS.d/next/Library/2025-09-25-07-33-43.gh-issue-139312.ygE8AC.rst b/Misc/NEWS.d/next/Library/2025-09-25-07-33-43.gh-issue-139312.ygE8AC.rst
deleted file mode 100644 (file)
index 5178bda..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Upgrade bundled libexpat to 2.7.3
diff --git a/Misc/NEWS.d/next/Security/2025-06-18-13-34-55.gh-issue-135661.NZlpWf.rst b/Misc/NEWS.d/next/Security/2025-06-18-13-34-55.gh-issue-135661.NZlpWf.rst
deleted file mode 100644 (file)
index fe000d9..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Fix CDATA section parsing in :class:`html.parser.HTMLParser` according to
-the HTML5 standard: ``] ]>`` and ``]] >`` no longer end the CDATA section.
-Add private method ``_set_support_cdata()`` which can be used to specify
-how to parse ``<[CDATA[`` --- as a CDATA section in foreign content
-(SVG or MathML) or as a bogus comment in the HTML namespace.
diff --git a/Misc/NEWS.d/next/Security/2025-09-24-13-39-56.gh-issue-139283.jODz_q.rst b/Misc/NEWS.d/next/Security/2025-09-24-13-39-56.gh-issue-139283.jODz_q.rst
deleted file mode 100644 (file)
index a8fd83b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-:mod:`sqlite3`: correctly handle maximum number of rows to fetch in
-:meth:`Cursor.fetchmany <sqlite3.Cursor.fetchmany>` and reject negative
-values for :attr:`Cursor.arraysize <sqlite3.Cursor.arraysize>`. Patch by
-Bénédikt Tran.
diff --git a/Misc/NEWS.d/next/Security/2025-09-29-00-01-28.gh-issue-139400.X2T-jO.rst b/Misc/NEWS.d/next/Security/2025-09-29-00-01-28.gh-issue-139400.X2T-jO.rst
deleted file mode 100644 (file)
index a5dea3b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-:mod:`xml.parsers.expat`: Make sure that parent Expat parsers are only
-garbage-collected once they are no longer referenced by subparsers created
-by :meth:`~xml.parsers.expat.xmlparser.ExternalEntityParserCreate`.
-Patch by Sebastian Pipping.
diff --git a/Misc/NEWS.d/next/Tests/2025-09-22-15-40-09.gh-issue-139208.Tc13dl.rst b/Misc/NEWS.d/next/Tests/2025-09-22-15-40-09.gh-issue-139208.Tc13dl.rst
deleted file mode 100644 (file)
index b8672ac..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix regrtest ``--fast-ci --verbose``: don't ignore the ``--verbose`` option
-anymore. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/Tools-Demos/2025-08-21-14-04-50.gh-issue-137873.qxffLt.rst b/Misc/NEWS.d/next/Tools-Demos/2025-08-21-14-04-50.gh-issue-137873.qxffLt.rst
deleted file mode 100644 (file)
index 5b75858..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The iOS test runner has been simplified, resolving some issues that have
-been observed using the runner in GitHub Actions and Azure Pipelines test
-environments.
diff --git a/Misc/NEWS.d/next/Tools-Demos/2025-09-25-10-31-02.gh-issue-139330.5WWkY0.rst b/Misc/NEWS.d/next/Tools-Demos/2025-09-25-10-31-02.gh-issue-139330.5WWkY0.rst
deleted file mode 100644 (file)
index 77e74ba..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SBOM generation tool didn't cross-check the version and checksum values
-against the ``Modules/expat/refresh.sh`` script, leading to the values
-becoming out-of-date during routine updates.
diff --git a/Misc/NEWS.d/next/Windows/2025-09-15-15-34-29.gh-issue-138896.lkiF_7.rst b/Misc/NEWS.d/next/Windows/2025-09-15-15-34-29.gh-issue-138896.lkiF_7.rst
deleted file mode 100644 (file)
index 018bf20..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix error installing C runtime on non-updated Windows machines
diff --git a/Misc/NEWS.d/next/Windows/2025-10-04-12-18-45.gh-issue-139573.EO9kVB.rst b/Misc/NEWS.d/next/Windows/2025-10-04-12-18-45.gh-issue-139573.EO9kVB.rst
deleted file mode 100644 (file)
index 02a3bfb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Updated bundled version of OpenSSL to 3.0.18.
diff --git a/Misc/NEWS.d/next/macOS/2025-10-04-12-29-31.gh-issue-139573.vVpHaP.rst b/Misc/NEWS.d/next/macOS/2025-10-04-12-29-31.gh-issue-139573.vVpHaP.rst
deleted file mode 100644 (file)
index 02a3bfb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Updated bundled version of OpenSSL to 3.0.18.
diff --git a/Misc/NEWS.d/next/macOS/2025-10-06-23-56-36.gh-issue-124111.KOlBvs.rst b/Misc/NEWS.d/next/macOS/2025-10-06-23-56-36.gh-issue-124111.KOlBvs.rst
deleted file mode 100644 (file)
index 2787e5d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Update macOS installer to use Tcl/Tk 8.6.17.
index 8097f94c9ea66ad0ce022d9d7bc6eb0c3da069bb..f45f1a94f24af6f7fe3d5c0ffcb9b235c3920fee 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.13.7
+This is Python version 3.13.8
 =============================
 
 .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg