]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Python 3.14.0rc3 v3.14.0rc3
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Thu, 18 Sep 2025 08:45:29 +0000 (09:45 +0100)
committerHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Thu, 18 Sep 2025 08:45:38 +0000 (09:45 +0100)
34 files changed:
Doc/library/imaplib.rst
Include/patchlevel.h
Lib/pydoc_data/topics.py
Misc/NEWS.d/3.14.0rc3.rst [new file with mode: 0644]
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-08-14-14-18-29.gh-issue-137728.HdYS9R.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-15-45-26.gh-issue-137079.YEow69.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-08-17-13-36-53.gh-issue-137883.55VDCN.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-08-22-11-39-40.gh-issue-137384.j4b_in.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-13-54-43.gh-issue-138349.0fGmAi.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-16-09-02.gh-issue-138318.t-WEN5.rst [deleted file]
Misc/NEWS.d/next/Core_and_Builtins/2025-09-02-09-10-06.gh-issue-138372.h1Xk4-.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-05-01-19-04.gh-issue-138192.erluq5.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/Library/2025-06-01-11-14-00.gh-issue-134953.ashdfs.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-16-18-11-41.gh-issue-90548.q3aJUK.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-30-10-58-15.gh-issue-138253.9Ehj-N.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-05-05-53-43.gh-issue-99948.KMSlG6.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-06-11-26-21.gh-issue-138514.66ltOb.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-12-01-01-05.gh-issue-138804.46ZukT.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-15-13-09-19.gh-issue-137226.HH3_ik.rst [deleted file]
Misc/NEWS.d/next/Library/2025-09-16-15-56-29.gh-issue-118803.aOPtmL.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/Security/2025-06-18-13-34-55.gh-issue-135661.NZlpWf.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/Windows/2025-09-15-15-34-29.gh-issue-138896.lkiF_7.rst [deleted file]
README.rst

index 2a12a0ca8e960bfc589a9e9bb321063c2df6d755..3eee2b9e607297a14dac4b2f56dcba731fbbd407 100644 (file)
@@ -413,7 +413,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.14
       An :exc:`IMAP4.error` is raised if MD5 support is not available.
 
 
index 43bbed43e5f229634b1f24801e3d886ddabd830f..00c2ed84995785db77ee07d6516f31d6c6489152 100644 (file)
 #define PY_MINOR_VERSION        14
 #define PY_MICRO_VERSION        0
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_GAMMA
-#define PY_RELEASE_SERIAL       2
+#define PY_RELEASE_SERIAL       3
 
 /* Version as a string */
-#define PY_VERSION              "3.14.0rc2+"
+#define PY_VERSION              "3.14.0rc3"
 /*--end constants--*/
 
 
index a0b00eae261427b32ab1b6e5444dd3848bd8b724..9418ca2fe166b8d8ba024229a8d137045c456560 100644 (file)
@@ -1,4 +1,4 @@
-# Autogenerated by Sphinx on Thu Aug 14 15:19:40 2025
+# Autogenerated by Sphinx on Thu Sep 18 09:45:33 2025
 # as part of the release process.
 
 topics = {
@@ -634,6 +634,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
@@ -649,6 +652,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:
@@ -1093,12 +1098,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
 ***************
@@ -1968,7 +1994,8 @@ An "except*" clause must have a matching expression; it cannot be
 group types, because that would have ambiguous semantics.
 
 It is not possible to mix "except" and "except*" in the same "try".
-"break", "continue" and "return" cannot appear in an "except*" clause.
+The "break", "continue", and "return" statements cannot appear in an
+"except*" clause.
 
 
 "else" clause
@@ -1984,11 +2011,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. For example, this function returns 42.
@@ -2143,9 +2170,9 @@ Added in version 3.10.
 The match statement is used for pattern matching.  Syntax:
 
    match_stmt:   'match' subject_expr ":" NEWLINE INDENT case_block+ DEDENT
-   subject_expr: star_named_expression "," star_named_expressions?
-                 | named_expression
-   case_block:   'case' patterns [guard] ":" block
+   subject_expr: `!star_named_expression` "," `!star_named_expressions`?
+                 | `!named_expression`
+   case_block:   'case' patterns [guard] ":" `!block`
 
 Note:
 
@@ -2236,7 +2263,7 @@ section.
 Guards
 ------
 
-   guard: "if" named_expression
+   guard: "if" `!named_expression`
 
 A "guard" (which is part of the "case") must succeed for code inside
 the "case" block to execute.  It takes the form: "if" followed by an
@@ -2530,7 +2557,7 @@ against a subject value:
    Note:
 
      The length of the subject sequence is obtained via "len()" (i.e.
-     via the "__len__()" protocol).  This length may be cached by the
+     via the "__len__()" protocol). This length may be cached by the
      interpreter in a similar manner as value patterns.
 
 In simple terms "[P1, P2, P3," … ", P<N>]" matches only if all the
@@ -4644,8 +4671,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
@@ -5282,7 +5309,7 @@ syntax for format strings (although in the case of "Formatter",
 subclasses can define their own format string syntax).  The syntax is
 related to that of formatted string literals and template string
 literals, but it is less sophisticated and, in particular, does not
-support arbitrary expressions.
+support arbitrary expressions in interpolations.
 
 Format strings contain “replacement fields” surrounded by curly braces
 "{}". Anything that is not contained in braces is considered literal
@@ -7640,21 +7667,24 @@ behaving similar to those for Python’s standard "dictionary" objects.
 The "collections.abc" module provides a "MutableMapping" *abstract
 base class* to help create those methods from a base set of
 "__getitem__()", "__setitem__()", "__delitem__()", and "keys()".
-Mutable sequences should provide methods "append()", "count()",
-"index()", "extend()", "insert()", "pop()", "remove()", "reverse()"
-and "sort()", like Python standard "list" objects. Finally, sequence
+
+Mutable sequences should provide methods "append()", "clear()",
+"count()", "extend()", "index()", "insert()", "pop()", "remove()", and
+"reverse()", like Python standard "list" objects. Finally, sequence
 types should implement addition (meaning concatenation) and
 multiplication (meaning repetition) by defining the methods
 "__add__()", "__radd__()", "__iadd__()", "__mul__()", "__rmul__()" and
 "__imul__()" described below; they should not define other numerical
-operators.  It is recommended that both mappings and sequences
-implement the "__contains__()" method to allow efficient use of the
-"in" operator; for mappings, "in" should search the mapping’s keys;
-for sequences, it should search through the values.  It is further
-recommended that both mappings and sequences implement the
-"__iter__()" method to allow efficient iteration through the
-container; for mappings, "__iter__()" should iterate through the
-object’s keys; for sequences, it should iterate through the values.
+operators.
+
+It is recommended that both mappings and sequences implement the
+"__contains__()" method to allow efficient use of the "in" operator;
+for mappings, "in" should search the mapping’s keys; for sequences, it
+should search through the values.  It is further recommended that both
+mappings and sequences implement the "__iter__()" method to allow
+efficient iteration through the container; for mappings, "__iter__()"
+should iterate through the object’s keys; for sequences, it should
+iterate through the values.
 
 object.__len__(self)
 
@@ -7891,8 +7921,8 @@ When implementing a class that emulates any built-in type, it is
 important that the emulation only be implemented to the degree that it
 makes sense for the object being modelled.  For example, some
 sequences may work well with retrieval of individual elements, but
-extracting a slice may not make sense.  (One example of this is the
-"NodeList" interface in the W3C’s Document Object Model.)
+extracting a slice may not make sense. (One example of this is the
+NodeList interface in the W3C’s Document Object Model.)
 
 
 Basic customization
@@ -8287,6 +8317,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
@@ -8302,6 +8335,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:
@@ -8997,21 +9032,24 @@ behaving similar to those for Python’s standard "dictionary" objects.
 The "collections.abc" module provides a "MutableMapping" *abstract
 base class* to help create those methods from a base set of
 "__getitem__()", "__setitem__()", "__delitem__()", and "keys()".
-Mutable sequences should provide methods "append()", "count()",
-"index()", "extend()", "insert()", "pop()", "remove()", "reverse()"
-and "sort()", like Python standard "list" objects. Finally, sequence
+
+Mutable sequences should provide methods "append()", "clear()",
+"count()", "extend()", "index()", "insert()", "pop()", "remove()", and
+"reverse()", like Python standard "list" objects. Finally, sequence
 types should implement addition (meaning concatenation) and
 multiplication (meaning repetition) by defining the methods
 "__add__()", "__radd__()", "__iadd__()", "__mul__()", "__rmul__()" and
 "__imul__()" described below; they should not define other numerical
-operators.  It is recommended that both mappings and sequences
-implement the "__contains__()" method to allow efficient use of the
-"in" operator; for mappings, "in" should search the mapping’s keys;
-for sequences, it should search through the values.  It is further
-recommended that both mappings and sequences implement the
-"__iter__()" method to allow efficient iteration through the
-container; for mappings, "__iter__()" should iterate through the
-object’s keys; for sequences, it should iterate through the values.
+operators.
+
+It is recommended that both mappings and sequences implement the
+"__contains__()" method to allow efficient use of the "in" operator;
+for mappings, "in" should search the mapping’s keys; for sequences, it
+should search through the values.  It is further recommended that both
+mappings and sequences implement the "__iter__()" method to allow
+efficient iteration through the container; for mappings, "__iter__()"
+should iterate through the object’s keys; for sequences, it should
+iterate through the values.
 
 object.__len__(self)
 
@@ -9567,7 +9605,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
@@ -9678,7 +9716,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:
 
@@ -9864,14 +9909,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
@@ -9886,7 +9931,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
@@ -9907,7 +9952,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()".
@@ -9918,12 +9964,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
@@ -9957,7 +10003,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*
@@ -9979,14 +10025,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
@@ -10003,7 +10049,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
@@ -10146,7 +10192,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
@@ -10210,7 +10256,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
@@ -10238,7 +10284,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
@@ -10328,9 +10374,10 @@ The allowed prefixes are:
 
 See the linked sections for details on each type.
 
-Prefixes are case-insensitive (for example, "B" works the same as
-"b"). The "r" prefix can be combined with "f", "t" or "b", so "fr",
-"rf", "tr", "rt", "br" and "rb" are also valid prefixes.
+Prefixes are case-insensitive (for example, ‘"B"’ works the same as
+‘"b"’). The ‘"r"’ prefix can be combined with ‘"f"’, ‘"t"’ or ‘"b"’,
+so ‘"fr"’, ‘"rf"’, ‘"tr"’, ‘"rt"’, ‘"br"’, and ‘"rb"’ are also valid
+prefixes.
 
 Added in version 3.3: The "'rb'" prefix of raw bytes literals has been
 added as a synonym of "'br'".Support for the unicode legacy literal
@@ -10350,10 +10397,10 @@ ending quote ends the literal.
    STRING:          [stringprefix] (stringcontent)
    stringprefix:    <("r" | "u" | "b" | "br" | "rb"), case-insensitive>
    stringcontent:
-      | "'" ( !"'" stringitem)* "'"
-      | '"' ( !'"' stringitem)* '"'
       | "\'\'\'" ( !"\'\'\'" longstringitem)* "\'\'\'"
       | '"""' ( !'"""' longstringitem)* '"""'
+      | "'" ( !"'" stringitem)* "'"
+      | '"' ( !'"' stringitem)* '"'
    stringitem:      stringchar | stringescapeseq
    stringchar:      <any source_character, except backslash and newline>
    longstringitem:  stringitem | newline
@@ -10367,7 +10414,7 @@ starting quote.
 Escape sequences
 ================
 
-Unless an "'r'" or "'R'" prefix is present, escape sequences in string
+Unless an ‘"r"’ or ‘"R"’ prefix is present, escape sequences in string
 and bytes literals are interpreted according to rules similar to those
 used by Standard C.  The recognized escape sequences are:
 
@@ -10535,7 +10582,7 @@ Changed in version 3.12: Unrecognized escape sequences produce a
 Bytes literals
 ==============
 
-*Bytes literals* are always prefixed with "'b'" or "'B'"; they produce
+*Bytes literals* are always prefixed with ‘"b"’ or ‘"B"’; they produce
 an instance of the "bytes" type instead of the "str" type. They may
 only contain ASCII characters; bytes with a numeric value of 128 or
 greater must be expressed with escape sequences (typically Hexadecimal
@@ -10554,7 +10601,7 @@ Raw string literals
 ===================
 
 Both string and bytes literals may optionally be prefixed with a
-letter "'r'" or "'R'"; such constructs are called *raw string
+letter ‘"r"’ or ‘"R"’; such constructs are called *raw string
 literals* and *raw bytes literals* respectively and treat backslashes
 as literal characters. As a result, in raw string literals, escape
 sequences are not treated specially:
@@ -10579,7 +10626,7 @@ f-strings
 Added in version 3.6.
 
 A *formatted string literal* or *f-string* is a string literal that is
-prefixed with "f" or "F".  These strings may contain replacement
+prefixed with ‘"f"’ or ‘"F"’.  These strings may contain replacement
 fields, which are expressions delimited by curly braces "{}". While
 other string literals always have a constant value, formatted strings
 are really expressions evaluated at run time.
@@ -10736,12 +10783,12 @@ t-strings
 Added in version 3.14.
 
 A *template string literal* or *t-string* is a string literal that is
-prefixed with "t" or "T".  These strings follow the same syntax and
+prefixed with ‘"t"’ or ‘"T"’. These strings follow the same syntax and
 evaluation rules as formatted string literals, with the following
 differences:
 
-* Rather than evaluating to a "str" object, t-strings evaluate to a
-  "Template" object from the "string.templatelib" module.
+* Rather than evaluating to a "str" object, template string literals
+  evaluate to a "string.templatelib.Template" object.
 
 * The "format()" protocol is not used. Instead, the format specifier
   and conversions (if any) are passed to a new "Interpolation" object
@@ -10752,20 +10799,18 @@ differences:
 * Format specifiers containing nested replacement fields are evaluated
   eagerly, prior to being passed to the "Interpolation" object. For
   instance, an interpolation of the form "{amount:.{precision}f}" will
-  evaluate the expression "{precision}" before setting the
-  "format_spec" attribute of the resulting "Interpolation" object; if
-  "precision" is (for example) "2", the resulting format specifier
-  will be "'.2f'".
-
-* When the equal sign "'='" is provided in an interpolation
-  expression, the resulting "Template" object will have the expression
-  text along with a "'='" character placed in its "strings" attribute.
-  The "interpolations" attribute will also contain an "Interpolation"
-  instance for the expression. By default, the "conversion" attribute
-  will be set to "'r'" (that is, "repr()"), unless there is a
-  conversion explicitly specified (in which case it overrides the
-  default) or a format specifier is provided (in which case, the
-  "conversion" defaults to "None").
+  evaluate the inner expression "{precision}" to determine the value
+  of the "format_spec" attribute. If "precision" were to be "2", the
+  resulting format specifier would be "'.2f'".
+
+* When the equals sign "'='" is provided in an interpolation
+  expression, the text of the expression is appended to the literal
+  string that precedes the relevant interpolation. This includes the
+  equals sign and any surrounding whitespace. The "Interpolation"
+  instance for the expression will be created as normal, except that
+  "conversion" will be set to ‘"r"’ ("repr()") by default. If an
+  explicit conversion or format specifier are provided, this will
+  override the default behaviour.
 ''',
     'subscriptions': r'''Subscriptions
 *************
@@ -11008,7 +11053,8 @@ An "except*" clause must have a matching expression; it cannot be
 group types, because that would have ambiguous semantics.
 
 It is not possible to mix "except" and "except*" in the same "try".
-"break", "continue" and "return" cannot appear in an "except*" clause.
+The "break", "continue", and "return" statements cannot appear in an
+"except*" clause.
 
 
 "else" clause
@@ -11024,11 +11070,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. For example, this function returns 42.
@@ -11316,7 +11362,7 @@ There are currently two intrinsic set types:
 Sets
    These represent a mutable set. They are created by the built-in
    "set()" constructor and can be modified afterwards by several
-   methods, such as "add()".
+   methods, such as "add".
 
 Frozen sets
    These represent an immutable set.  They are created by the built-in
@@ -12261,6 +12307,10 @@ Special read-only attributes
 |                                                    | (this is an index into the *bytecode* string of    |
 |                                                    | the code object)                                   |
 +----------------------------------------------------+----------------------------------------------------+
+| frame.f_generator                                  | The *generator* or *coroutine* object that owns    |
+|                                                    | this frame, or "None" if the frame is a normal     |
+|                                                    | function.  Added in version 3.14.                  |
++----------------------------------------------------+----------------------------------------------------+
 
 
 Special writable attributes
@@ -12441,8 +12491,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.
@@ -12558,8 +12608,8 @@ class dict(iterable, **kwargs)
          1
 
       The example above shows part of the implementation of
-      "collections.Counter".  A different "__missing__" method is used
-      by "collections.defaultdict".
+      "collections.Counter". A different "__missing__()" method is
+      used by "collections.defaultdict".
 
    d[key] = value
 
@@ -12618,7 +12668,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
@@ -12649,10 +12700,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
@@ -12917,7 +12971,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)     |
 +----------------------------+----------------------------------+------------+
@@ -12930,13 +12984,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
@@ -13033,15 +13080,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 ]-
+
+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*.
 
-9. An "IndexError" is raised if *i* is outside the sequence range.
+   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
@@ -13093,63 +13156,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.
+
+-[ Mutable Sequence Methods ]-
 
-3. "remove()" raises "ValueError" when *x* is not found in *s*.
+Mutable sequence types also support the following 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.
+sequence.append(value, /)
 
-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.
+   Append *value* to the end of the sequence This is equivalent to
+   writing "seq[len(seq):len(seq)] = [value]".
 
-   Added in version 3.3: "clear()" and "copy()" methods.
+sequence.clear()
 
-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.
+   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
@@ -13159,7 +13238,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:
 
@@ -13240,7 +13319,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:
 
@@ -13280,8 +13359,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__()"
@@ -13425,63 +13504,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.14.0rc3.rst b/Misc/NEWS.d/3.14.0rc3.rst
new file mode 100644 (file)
index 0000000..339f0ab
--- /dev/null
@@ -0,0 +1,295 @@
+.. date: 2025-09-15-15-34-29
+.. gh-issue: 138896
+.. nonce: lkiF_7
+.. release date: 2025-09-18
+.. section: Windows
+
+Fix error installing C runtime on non-updated Windows machines
+
+..
+
+.. 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-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-16-19-05-29
+.. gh-issue: 138998
+.. nonce: URl0Y_
+.. section: Library
+
+Update bundled libexpat to 2.7.2
+
+..
+
+.. date: 2025-09-16-15-56-29
+.. gh-issue: 118803
+.. nonce: aOPtmL
+.. section: Library
+
+Add back :class:`collections.abc.ByteString` and :class:`typing.ByteString`.
+Both had been removed in prior alpha, beta and release candidates for Python
+3.14, but their removal has now been postponed to Python 3.17.
+
+..
+
+.. date: 2025-09-15-13-09-19
+.. gh-issue: 137226
+.. nonce: HH3_ik
+.. section: Library
+
+Fix :func:`typing.get_type_hints` calls on generic :class:`typing.TypedDict`
+classes defined with string annotations.
+
+..
+
+.. date: 2025-09-12-01-01-05
+.. gh-issue: 138804
+.. nonce: 46ZukT
+.. section: Library
+
+Raise :exc:`TypeError` instead of :exc:`AttributeError` when an argument of
+incorrect type is passed to :func:`shlex.quote`. This restores the behavior
+of the function prior to 3.14.
+
+..
+
+.. 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-06-11-26-21
+.. gh-issue: 138514
+.. nonce: 66ltOb
+.. section: Library
+
+Raise :exc:`ValueError` when a multi-character string is passed to the
+*echo_char* parameter of :func:`getpass.getpass`. Patch by Benjamin Johnson.
+
+..
+
+.. 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-05-05-53-43
+.. gh-issue: 99948
+.. nonce: KMSlG6
+.. section: Library
+
+:func:`ctypes.util.find_library` now works in Emscripten build.
+
+..
+
+.. date: 2025-08-30-10-58-15
+.. gh-issue: 138253
+.. nonce: 9Ehj-N
+.. section: Library
+
+Add the *block* parameter in the :meth:`!put` and :meth:`!get` methods of
+the :mod:`concurrent.interpreters` queues for compatibility with the
+:class:`queue.Queue` interface.
+
+..
+
+.. 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-18-11-41
+.. gh-issue: 90548
+.. nonce: q3aJUK
+.. section: Library
+
+Fix ``musl`` detection for :func:`platform.libc_ver` on Alpine Linux if
+compiled with --strip-all.
+
+..
+
+.. 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-01-11-14-00
+.. gh-issue: 134953
+.. nonce: ashdfs
+.. section: Library
+
+Expand ``_colorize`` theme with ``keyword_constant`` and implement in
+:term:`repl`.
+
+..
+
+.. 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-05-01-19-04
+.. gh-issue: 138192
+.. nonce: erluq5
+.. section: Core and Builtins
+
+Fix :mod:`contextvars` initialization so that all subinterpreters are
+assigned the :attr:`~contextvars.Token.MISSING` value.
+
+..
+
+.. 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-09-02-09-10-06
+.. gh-issue: 138372
+.. nonce: h1Xk4-
+.. section: Core and Builtins
+
+Fix :exc:`SyntaxWarning` emitted for erroneous subscript expressions
+involving :ref:`template string literals <t-strings>`. Patch by Brian
+Schubert.
+
+..
+
+.. date: 2025-09-01-16-09-02
+.. gh-issue: 138318
+.. nonce: t-WEN5
+.. section: Core and Builtins
+
+The default REPL now avoids highlighting built-in names (for instance
+:class:`set` or :func:`format`) when they are used as attribute names (for
+instance in ``value.set`` or ``text.format``).
+
+..
+
+.. date: 2025-09-01-13-54-43
+.. gh-issue: 138349
+.. nonce: 0fGmAi
+.. section: Core and Builtins
+
+Fix crash in certain cases where a module contains both a module-level
+annotation and a comprehension.
+
+..
+
+.. date: 2025-08-22-11-39-40
+.. gh-issue: 137384
+.. nonce: j4b_in
+.. section: Core and Builtins
+
+Fix a crash when using the :mod:`warnings` module in a finalizer at
+shutdown. Patch by Kumar Aditya.
+
+..
+
+.. date: 2025-08-17-13-36-53
+.. gh-issue: 137883
+.. nonce: 55VDCN
+.. section: Core and Builtins
+
+Fix runaway recursion when calling a function with keyword arguments.
+
+..
+
+.. date: 2025-08-15-15-45-26
+.. gh-issue: 137079
+.. nonce: YEow69
+.. section: Core and Builtins
+
+Fix keyword typo recognition when parsing files. Patch by Pablo Galindo.
+
+..
+
+.. date: 2025-08-14-14-18-29
+.. gh-issue: 137728
+.. nonce: HdYS9R
+.. section: Core and Builtins
+
+Fix the JIT's handling of many local variables. This previously caused a
+segfault.
+
+..
+
+.. 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.
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-08-14-14-18-29.gh-issue-137728.HdYS9R.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-14-14-18-29.gh-issue-137728.HdYS9R.rst
deleted file mode 100644 (file)
index cc4a55d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix the JIT's handling of many local variables. This previously caused a segfault.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-15-45-26.gh-issue-137079.YEow69.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-15-15-45-26.gh-issue-137079.YEow69.rst
deleted file mode 100644 (file)
index 5f01a23..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix keyword typo recognition when parsing files. Patch by Pablo Galindo.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-17-13-36-53.gh-issue-137883.55VDCN.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-17-13-36-53.gh-issue-137883.55VDCN.rst
deleted file mode 100644 (file)
index 0bdb263..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix runaway recursion when calling a function with keyword arguments.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-08-22-11-39-40.gh-issue-137384.j4b_in.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-08-22-11-39-40.gh-issue-137384.j4b_in.rst
deleted file mode 100644 (file)
index 583d751..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Fix a crash when using the :mod:`warnings` module in a finalizer at shutdown. Patch by Kumar Aditya.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-13-54-43.gh-issue-138349.0fGmAi.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-13-54-43.gh-issue-138349.0fGmAi.rst
deleted file mode 100644 (file)
index 9b94eec..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix crash in certain cases where a module contains both a module-level
-annotation and a comprehension.
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-16-09-02.gh-issue-138318.t-WEN5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-01-16-09-02.gh-issue-138318.t-WEN5.rst
deleted file mode 100644 (file)
index ce9456d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-The default REPL now avoids highlighting built-in names (for instance :class:`set`
-or :func:`format`) when they are used as attribute names (for instance in ``value.set``
-or ``text.format``).
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-09-02-09-10-06.gh-issue-138372.h1Xk4-.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-02-09-10-06.gh-issue-138372.h1Xk4-.rst
deleted file mode 100644 (file)
index 475e01c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :exc:`SyntaxWarning` emitted for erroneous subscript expressions involving
-:ref:`template string literals <t-strings>`. Patch by Brian Schubert.
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-05-01-19-04.gh-issue-138192.erluq5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-09-05-01-19-04.gh-issue-138192.erluq5.rst
deleted file mode 100644 (file)
index 05fa8ed..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :mod:`contextvars` initialization so that all subinterpreters are assigned the
-:attr:`~contextvars.Token.MISSING` value.
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/Library/2025-06-01-11-14-00.gh-issue-134953.ashdfs.rst b/Misc/NEWS.d/next/Library/2025-06-01-11-14-00.gh-issue-134953.ashdfs.rst
deleted file mode 100644 (file)
index c2f112d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Expand ``_colorize`` theme with ``keyword_constant`` and implement in
-:term:`repl`.
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-16-18-11-41.gh-issue-90548.q3aJUK.rst b/Misc/NEWS.d/next/Library/2025-08-16-18-11-41.gh-issue-90548.q3aJUK.rst
deleted file mode 100644 (file)
index f6e24af..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix ``musl`` detection for :func:`platform.libc_ver` on Alpine Linux if
-compiled with --strip-all.
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-30-10-58-15.gh-issue-138253.9Ehj-N.rst b/Misc/NEWS.d/next/Library/2025-08-30-10-58-15.gh-issue-138253.9Ehj-N.rst
deleted file mode 100644 (file)
index be810b7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Add the *block* parameter in the :meth:`!put` and :meth:`!get` methods
-of the :mod:`concurrent.interpreters` queues for compatibility with the
-:class:`queue.Queue` interface.
diff --git a/Misc/NEWS.d/next/Library/2025-09-05-05-53-43.gh-issue-99948.KMSlG6.rst b/Misc/NEWS.d/next/Library/2025-09-05-05-53-43.gh-issue-99948.KMSlG6.rst
deleted file mode 100644 (file)
index 46e6dfa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-:func:`ctypes.util.find_library` now works in Emscripten build.
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-06-11-26-21.gh-issue-138514.66ltOb.rst b/Misc/NEWS.d/next/Library/2025-09-06-11-26-21.gh-issue-138514.66ltOb.rst
deleted file mode 100644 (file)
index 75151ea..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Raise :exc:`ValueError` when a multi-character string is passed to the
-*echo_char* parameter of :func:`getpass.getpass`. Patch by Benjamin Johnson.
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-12-01-01-05.gh-issue-138804.46ZukT.rst b/Misc/NEWS.d/next/Library/2025-09-12-01-01-05.gh-issue-138804.46ZukT.rst
deleted file mode 100644 (file)
index 5d403f8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Raise :exc:`TypeError` instead of :exc:`AttributeError` when an argument of
-incorrect type is passed to :func:`shlex.quote`. This restores the behavior of
-the function prior to 3.14.
diff --git a/Misc/NEWS.d/next/Library/2025-09-15-13-09-19.gh-issue-137226.HH3_ik.rst b/Misc/NEWS.d/next/Library/2025-09-15-13-09-19.gh-issue-137226.HH3_ik.rst
deleted file mode 100644 (file)
index 38683c8..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix :func:`typing.get_type_hints` calls on generic :class:`typing.TypedDict`
-classes defined with string annotations.
diff --git a/Misc/NEWS.d/next/Library/2025-09-16-15-56-29.gh-issue-118803.aOPtmL.rst b/Misc/NEWS.d/next/Library/2025-09-16-15-56-29.gh-issue-118803.aOPtmL.rst
deleted file mode 100644 (file)
index 0fa8f5c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Add back :class:`collections.abc.ByteString` and :class:`typing.ByteString`.
-Both had been removed in prior alpha, beta and release candidates for Python
-3.14, but their removal has now been postponed to Python 3.17.
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/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/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/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
index 864d2d33842194ee29d2667470e232e3d94903c5..f60fb1bc041a749718ab1c416b3d10e3f906a1af 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.14.0 release candidate 2
+This is Python version 3.14.0 release candidate 3
 =================================================
 
 .. image:: https://github.com/python/cpython/actions/workflows/build.yml/badge.svg?branch=main&event=push