-# Autogenerated by Sphinx on Tue May 6 18:33:44 2025
+# Autogenerated by Sphinx on Mon May 26 16:26:41 2025
# as part of the release process.
topics = {
'atom-identifiers': r'''Identifiers (Names)
*******************
-An identifier occurring as an atom is a name. See section Identifiers
-and keywords for lexical definition and section Naming and binding for
-documentation of naming and binding.
+An identifier occurring as an atom is a name. See section Names
+(identifiers and keywords) for lexical definition and section Naming
+and binding for documentation of naming and binding.
When the name is bound to an object, evaluation of the atom yields
that object. When a name is not bound, an attempt to evaluate it
The "for" statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object:
- for_stmt: "for" target_list "in" starred_list ":" suite
+ for_stmt: "for" target_list "in" starred_expression_list ":" suite
["else" ":" suite]
-The "starred_list" expression is evaluated once; it should yield an
-*iterable* object. An *iterator* is created for that iterable. The
-first item provided by the iterator is then assigned to the target
-list using the standard rules for assignments (see Assignment
-statements), and the suite is executed. This repeats for each item
-provided by the iterator. When the iterator is exhausted, the suite
-in the "else" clause, if present, is executed, and the loop
+The "starred_expression_list" expression is evaluated once; it should
+yield an *iterable* object. An *iterator* is created for that
+iterable. The first item provided by the iterator is then assigned to
+the target list using the standard rules for assignments (see
+Assignment statements), and the suite is executed. This repeats for
+each item provided by the iterator. When the iterator is exhausted,
+the suite in the "else" clause, if present, is executed, and the loop
terminates.
A "break" statement executed in the first suite terminates the loop
introspects and uses the annotations (such as "dataclasses" or
"functools.singledispatch()").
-By default, annotations are lazily evaluated in a annotation scope.
+By default, annotations are lazily evaluated in an annotation scope.
This means that they are not evaluated when the code containing the
annotation is evaluated. Instead, the interpreter saves information
that can be used to evaluate the annotation later if requested. The
>>> f.__annotations__
{'param': 'annotation'}
+This future statement will be deprecated and removed in a future
+version of Python, but not before Python 3.13 reaches its end of life
+(see **PEP 749**). When it is used, introspection tools like
+"annotationlib.get_annotations()" and "typing.get_type_hints()" are
+less likely to be able to resolve annotations at runtime.
+
-[ Footnotes ]-
[1] The exception is propagated to the invocation stack unless there
You can also invoke "pdb" from the command line to debug other
scripts. For example:
- python -m pdb [-c command] (-m module | pyfile) [args ...]
+ python -m pdb [-c command] (-m module | -p pid | pyfile) [args ...]
When invoked as a module, pdb will automatically enter post-mortem
debugging if the program being debugged exits abnormally. After post-
Changed in version 3.7: Added the "-m" option.
+-p, --pid <pid>
+
+ Attach to the process with the specified PID.
+
+ Added in version 3.14.
+
+To attach to a running Python process for remote debugging, use the
+"-p" or "--pid" option with the target process’s PID:
+
+ python -m pdb -p 1234
+
+Note:
+
+ Attaching to a process that is blocked in a system call or waiting
+ for I/O will only work once the next bytecode instruction is
+ executed or when the process receives a signal.
+
Typical usage to execute a statement under control of the debugger is:
>>> import pdb
'exprlists': r'''Expression lists
****************
- starred_expression: ["*"] or_expr
+ starred_expression: "*" or_expr | expression
flexible_expression: assignment_expression | starred_expression
flexible_expression_list: flexible_expression ("," flexible_expression)* [","]
starred_expression_list: starred_expression ("," starred_expression)* [","]
The "for" statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object:
- for_stmt: "for" target_list "in" starred_list ":" suite
+ for_stmt: "for" target_list "in" starred_expression_list ":" suite
["else" ":" suite]
-The "starred_list" expression is evaluated once; it should yield an
-*iterable* object. An *iterator* is created for that iterable. The
-first item provided by the iterator is then assigned to the target
-list using the standard rules for assignments (see Assignment
-statements), and the suite is executed. This repeats for each item
-provided by the iterator. When the iterator is exhausted, the suite
-in the "else" clause, if present, is executed, and the loop
+The "starred_expression_list" expression is evaluated once; it should
+yield an *iterable* object. An *iterator* is created for that
+iterable. The first item provided by the iterator is then assigned to
+the target list using the standard rules for assignments (see
+Assignment statements), and the suite is executed. This repeats for
+each item provided by the iterator. When the iterator is exhausted,
+the suite in the "else" clause, if present, is executed, and the loop
terminates.
A "break" statement executed in the first suite terminates the loop
to help avoid name clashes between “private” attributes of base and
derived classes. See section Identifiers (Names).
''',
- 'identifiers': r'''Identifiers and keywords
-************************
+ 'identifiers': r'''Names (identifiers and keywords)
+********************************
-Identifiers (also referred to as *names*) are described by the
-following lexical definitions.
-
-The syntax of identifiers in Python is based on the Unicode standard
-annex UAX-31, with elaboration and changes as defined below; see also
-**PEP 3131** for further details.
+"NAME" tokens represent *identifiers*, *keywords*, and *soft
+keywords*.
Within the ASCII range (U+0001..U+007F), the valid characters for
-identifiers include the uppercase and lowercase letters "A" through
-"Z", the underscore "_" and, except for the first character, the
-digits "0" through "9". Python 3.0 introduced additional characters
-from outside the ASCII range (see **PEP 3131**). For these
-characters, the classification uses the version of the Unicode
-Character Database as included in the "unicodedata" module.
+names include the uppercase and lowercase letters ("A-Z" and "a-z"),
+the underscore "_" and, except for the first character, the digits "0"
+through "9".
+
+Names must contain at least one character, but have no upper length
+limit. Case is significant.
+
+Besides "A-Z", "a-z", "_" and "0-9", names can also use “letter-like”
+and “number-like” characters from outside the ASCII range, as detailed
+below.
+
+All identifiers are converted into the normalization form NFKC while
+parsing; comparison of identifiers is based on NFKC.
+
+Formally, the first character of a normalized identifier must belong
+to the set "id_start", which is the union of:
-Identifiers are unlimited in length. Case is significant.
+* Unicode category "<Lu>" - uppercase letters (includes "A" to "Z")
- identifier: xid_start xid_continue*
- id_start: <all characters in general categories Lu, Ll, Lt, Lm, Lo, Nl, the underscore, and characters with the Other_ID_Start property>
- id_continue: <all characters in id_start, plus characters in the categories Mn, Mc, Nd, Pc and others with the Other_ID_Continue property>
- xid_start: <all characters in id_start whose NFKC normalization is in "id_start xid_continue*">
- xid_continue: <all characters in id_continue whose NFKC normalization is in "id_continue*">
+* Unicode category "<Ll>" - lowercase letters (includes "a" to "z")
-The Unicode category codes mentioned above stand for:
+* Unicode category "<Lt>" - titlecase letters
-* *Lu* - uppercase letters
+* Unicode category "<Lm>" - modifier letters
-* *Ll* - lowercase letters
+* Unicode category "<Lo>" - other letters
-* *Lt* - titlecase letters
+* Unicode category "<Nl>" - letter numbers
-* *Lm* - modifier letters
+* {""_""} - the underscore
-* *Lo* - other letters
+* "<Other_ID_Start>" - an explicit set of characters in PropList.txt
+ to support backwards compatibility
-* *Nl* - letter numbers
+The remaining characters must belong to the set "id_continue", which
+is the union of:
-* *Mn* - nonspacing marks
+* all characters in "id_start"
-* *Mc* - spacing combining marks
+* Unicode category "<Nd>" - decimal numbers (includes "0" to "9")
-* *Nd* - decimal numbers
+* Unicode category "<Pc>" - connector punctuations
-* *Pc* - connector punctuations
+* Unicode category "<Mn>" - nonspacing marks
-* *Other_ID_Start* - explicit list of characters in PropList.txt to
- support backwards compatibility
+* Unicode category "<Mc>" - spacing combining marks
-* *Other_ID_Continue* - likewise
+* "<Other_ID_Continue>" - another explicit set of characters in
+ PropList.txt to support backwards compatibility
+
+Unicode categories use the version of the Unicode Character Database
+as included in the "unicodedata" module.
+
+These sets are based on the Unicode standard annex UAX-31. See also
+**PEP 3131** for further details.
+
+Even more formally, names are described by the following lexical
+definitions:
-All identifiers are converted into the normal form NFKC while parsing;
-comparison of identifiers is based on NFKC.
+ NAME: xid_start xid_continue*
+ id_start: <Lu> | <Ll> | <Lt> | <Lm> | <Lo> | <Nl> | "_" | <Other_ID_Start>
+ id_continue: id_start | <Nd> | <Pc> | <Mn> | <Mc> | <Other_ID_Continue>
+ xid_start: <all characters in id_start whose NFKC normalization is
+ in (id_start xid_continue*)">
+ xid_continue: <all characters in id_continue whose NFKC normalization is
+ in (id_continue*)">
+ identifier: <NAME, except keywords>
-A non-normative HTML file listing all valid identifier characters for
-Unicode 16.0.0 can be found at
-https://www.unicode.org/Public/16.0.0/ucd/DerivedCoreProperties.txt
+A non-normative listing of all valid identifier characters as defined
+by Unicode is available in the DerivedCoreProperties.txt file in the
+Unicode Character Database.
Keywords
========
-The following identifiers are used as reserved words, or *keywords* of
-the language, and cannot be used as ordinary identifiers. They must
-be spelled exactly as written here:
+The following names are used as reserved words, or *keywords* of the
+language, and cannot be used as ordinary identifiers. They must be
+spelled exactly as written here:
False await else import pass
None break except in raise
Added in version 3.10.
-Some identifiers are only reserved under specific contexts. These are
-known as *soft keywords*. The identifiers "match", "case", "type" and
-"_" can syntactically act as keywords in certain contexts, but this
-distinction is done at the parser level, not when tokenizing.
+Some names are only reserved under specific contexts. These are known
+as *soft keywords*:
+
+* "match", "case", and "_", when used in the "match" statement.
+
+* "type", when used in the "type" statement.
+
+These syntactically act as keywords in their specific contexts, but
+this distinction is done at the parser level, not when tokenizing.
As soft keywords, their use in the grammar is possible while still
preserving compatibility with existing code that uses these names as
identifier names.
-"match", "case", and "_" are used in the "match" statement. "type" is
-used in the "type" statement.
-
Changed in version 3.12: "type" is now a soft keyword.
third argument if the three-argument version of the built-in
"pow()" function is to be supported.
- Changed in version 3.14.0a7 (unreleased): Three-argument "pow()"
- now try calling "__rpow__()" if necessary. Previously it was only
- called in two-argument "pow()" and the binary power operator.
+ Changed in version 3.14: Three-argument "pow()" now try calling
+ "__rpow__()" if necessary. Previously it was only called in two-
+ argument "pow()" and the binary power operator.
Note:
third argument if the three-argument version of the built-in
"pow()" function is to be supported.
- Changed in version 3.14.0a7 (unreleased): Three-argument "pow()"
- now try calling "__rpow__()" if necessary. Previously it was only
- called in two-argument "pow()" and the binary power operator.
+ Changed in version 3.14: Three-argument "pow()" now try calling
+ "__rpow__()" if necessary. Previously it was only called in two-
+ argument "pow()" and the binary power operator.
Note:
Return centered 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)".
+ "len(s)". For example:
+
+ >>> 'Python'.center(10)
+ ' Python '
+ >>> 'Python'.center(10, '-')
+ '--Python--'
+ >>> 'Python'.center(4)
+ 'Python'
str.count(sub[, start[, end]])
*end* are interpreted as in slice notation.
If *sub* is empty, returns the number of empty strings between
- characters which is the length of the string plus one.
+ characters which is the length of the string plus one. For example:
+
+ >>> 'spam, spam, spam'.count('spam')
+ 3
+ >>> 'spam, spam, spam'.count('spam', 5)
+ 2
+ >>> 'spam, spam, spam'.count('spam', 5, 10)
+ 1
+ >>> 'spam, spam, spam'.count('eggs')
+ 0
+ >>> 'spam, spam, spam'.count('')
+ 17
str.encode(encoding='utf-8', errors='strict')
str.isidentifier()
Return "True" if the string is a valid identifier according to the
- language definition, section Identifiers and keywords.
+ language definition, section Names (identifiers and keywords).
"keyword.iskeyword()" can be used to test whether string "s" is a
reserved identifier, such as "def" and "class".
str.isprintable()
- Return true if all characters in the string are printable, false if
- it contains at least one non-printable character.
+ Return "True" if all characters in the string are printable,
+ "False" if it contains at least one non-printable character.
Here “printable” means the character is suitable for "repr()" to
use in its output; “non-printable” means that "repr()" on built-in
>>> ' 1 2 3 '.split()
['1', '2', '3']
+ If *sep* is not specified or is "None" and *maxsplit* is "0", only
+ leading runs of consecutive whitespace are considered.
+
+ For example:
+
+ >>> "".split(None, 0)
+ []
+ >>> " ".split(None, 0)
+ []
+ >>> " foo ".split(maxsplit=0)
+ ['foo ']
+
str.splitlines(keepends=False)
Return a list of the lines in the string, breaking at line
the keyword argument replaces the value from the positional
argument.
- To illustrate, the following examples all return a dictionary equal
- to "{"one": 1, "two": 2, "three": 3}":
+ Providing keyword arguments as in the first example only works for
+ keys that are valid Python identifiers. Otherwise, any valid keys
+ can be used.
+
+ Dictionaries compare equal if and only if they have the same "(key,
+ value)" pairs (regardless of ordering). Order comparisons (‘<’,
+ ‘<=’, ‘>=’, ‘>’) raise "TypeError". To illustrate dictionary
+ creation and equality, the following examples all return a
+ dictionary equal to "{"one": 1, "two": 2, "three": 3}":
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
keys that are valid Python identifiers. Otherwise, any valid keys
can be used.
+ Dictionaries preserve insertion order. Note that updating a key
+ does not affect the order. Keys added after deletion are inserted
+ at the end.
+
+ >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
+ >>> d
+ {'one': 1, 'two': 2, 'three': 3, 'four': 4}
+ >>> list(d)
+ ['one', 'two', 'three', 'four']
+ >>> list(d.values())
+ [1, 2, 3, 4]
+ >>> d["one"] = 42
+ >>> d
+ {'one': 42, 'two': 2, 'three': 3, 'four': 4}
+ >>> del d["two"]
+ >>> d["two"] = None
+ >>> d
+ {'one': 42, 'three': 3, 'four': 4, 'two': None}
+
+ Changed in version 3.7: Dictionary order is guaranteed to be
+ insertion order. This behavior was an implementation detail of
+ CPython from 3.6.
+
These are the operations that dictionaries support (and therefore,
custom mapping types should support too):
Added in version 3.9.
- Dictionaries compare equal if and only if they have the same "(key,
- value)" pairs (regardless of ordering). Order comparisons (‘<’,
- ‘<=’, ‘>=’, ‘>’) raise "TypeError".
-
- Dictionaries preserve insertion order. Note that updating a key
- does not affect the order. Keys added after deletion are inserted
- at the end.
-
- >>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
- >>> d
- {'one': 1, 'two': 2, 'three': 3, 'four': 4}
- >>> list(d)
- ['one', 'two', 'three', 'four']
- >>> list(d.values())
- [1, 2, 3, 4]
- >>> d["one"] = 42
- >>> d
- {'one': 42, 'two': 2, 'three': 3, 'four': 4}
- >>> del d["two"]
- >>> d["two"] = None
- >>> d
- {'one': 42, 'three': 3, 'four': 4, 'two': None}
-
- Changed in version 3.7: Dictionary order is guaranteed to be
- insertion order. This behavior was an implementation detail of
- CPython from 3.6.
-
Dictionaries and dictionary views are reversible.
>>> d = {"one": 1, "two": 2, "three": 3, "four": 4}
--- /dev/null
+.. date: 2025-05-20-21-43-20
+.. gh-issue: 130727
+.. nonce: -69t4D
+.. release date: 2025-05-26
+.. section: Windows
+
+Fix a race in internal calls into WMI that can result in an "invalid handle"
+exception under high load. Patch by Chris Eibl.
+
+..
+
+.. date: 2025-05-19-03-02-04
+.. gh-issue: 76023
+.. nonce: vHOf6M
+.. section: Windows
+
+Make :func:`os.path.realpath` ignore Windows error 1005 when in non-strict
+mode.
+
+..
+
+.. date: 2025-05-13-13-25-27
+.. gh-issue: 133779
+.. nonce: -YcTBz
+.. section: Windows
+
+Reverts the change to generate different :file:`pyconfig.h` files based on
+compiler settings, as it was frequently causing extension builds to break.
+In particular, the ``Py_GIL_DISABLED`` preprocessor variable must now always
+be defined explicitly when compiling for the experimental free-threaded
+runtime. The :func:`sysconfig.get_config_var` function can be used to
+determine whether the current runtime was compiled with that flag or not.
+
+..
+
+.. date: 2025-05-08-19-07-26
+.. gh-issue: 133626
+.. nonce: yFTKYK
+.. section: Windows
+
+Ensures packages are not accidentally bundled into the traditional
+installer.
+
+..
+
+.. date: 2025-05-19-14-57-46
+.. gh-issue: 134215
+.. nonce: sbdDK6
+.. section: Tools/Demos
+
+:term:`REPL` import autocomplete only suggests private modules when
+explicitly specified.
+
+..
+
+.. date: 2025-05-09-14-54-48
+.. gh-issue: 133744
+.. nonce: LCquu0
+.. section: Tests
+
+Fix multiprocessing interrupt test. Add an event to synchronize the parent
+process with the child process: wait until the child process starts
+sleeping. Patch by Victor Stinner.
+
+..
+
+.. date: 2025-05-09-04-11-06
+.. gh-issue: 133682
+.. nonce: -_lwo3
+.. section: Tests
+
+Fixed test case ``test.test_annotationlib.TestStringFormat.test_displays``
+which ensures proper handling of complex data structures (lists, sets,
+dictionaries, and tuples) in string annotations.
+
+..
+
+.. date: 2025-05-08-15-06-01
+.. gh-issue: 133639
+.. nonce: 50-kbV
+.. section: Tests
+
+Fix ``TestPyReplAutoindent.test_auto_indent_default()`` doesn't run
+``input_code``.
+
+..
+
+.. date: 2025-05-09-20-22-54
+.. gh-issue: 133767
+.. nonce: kN2i3Q
+.. section: Security
+
+Fix use-after-free in the "unicode-escape" decoder with a non-"strict" error
+handler.
+
+..
+
+.. date: 2025-01-14-11-19-07
+.. gh-issue: 128840
+.. nonce: M1doZW
+.. section: Security
+
+Short-circuit the processing of long IPv6 addresses early in
+:mod:`ipaddress` to prevent excessive memory consumption and a minor
+denial-of-service.
+
+..
+
+.. date: 2025-05-26-12-31-08
+.. gh-issue: 132710
+.. nonce: ApU3TZ
+.. section: Library
+
+If possible, ensure that :func:`uuid.getnode` returns the same result even
+across different processes. Previously, the result was constant only within
+the same process. Patch by Bénédikt Tran.
+
+..
+
+.. date: 2025-05-24-03-10-36
+.. gh-issue: 80334
+.. nonce: z21cMa
+.. section: Library
+
+:func:`multiprocessing.freeze_support` now checks for work on any "spawn"
+start method platform rather than only on Windows.
+
+..
+
+.. date: 2025-05-23-23-43-39
+.. gh-issue: 134582
+.. nonce: 9POq3l
+.. section: Library
+
+Fix tokenize.untokenize() round-trip errors related to t-strings braces
+escaping
+
+..
+
+.. date: 2025-05-22-18-14-13
+.. gh-issue: 134546
+.. nonce: fjLVzK
+.. section: Library
+
+Ensure :mod:`pdb` remote debugging script is readable by remote Python
+process.
+
+..
+
+.. date: 2025-05-22-14-12-53
+.. gh-issue: 134451
+.. nonce: M1rD-j
+.. section: Library
+
+Converted ``asyncio.tools.CycleFoundException`` from dataclass to a regular
+exception type.
+
+..
+
+.. date: 2025-05-22-13-10-32
+.. gh-issue: 114177
+.. nonce: 3TYUJ3
+.. section: Library
+
+Fix :mod:`asyncio` to not close subprocess pipes which would otherwise error
+out when the event loop is already closed.
+
+..
+
+.. date: 2025-05-20-21-45-58
+.. gh-issue: 90871
+.. nonce: Gkvtp6
+.. section: Library
+
+Fixed an off by one error concerning the backlog parameter in
+:meth:`~asyncio.loop.create_unix_server`. Contributed by Christian Harries.
+
+..
+
+.. date: 2025-05-20-19-16-30
+.. gh-issue: 134323
+.. nonce: ZQZGvw
+.. section: Library
+
+Fix the :meth:`threading.RLock.locked` method.
+
+..
+
+.. date: 2025-05-20-15-13-43
+.. gh-issue: 86802
+.. nonce: trF7TM
+.. section: Library
+
+Fixed asyncio memory leak in cancelled shield tasks. For shielded tasks
+where the shield was cancelled, log potential exceptions through the
+exception handler. Contributed by Christian Harries.
+
+..
+
+.. date: 2025-05-19-20-59-06
+.. gh-issue: 134209
+.. nonce: anhTcF
+.. section: Library
+
+:mod:`curses`: The :meth:`curses.window.instr` and
+:meth:`curses.window.getstr` methods now allocate their internal buffer on
+the heap instead of the stack; in addition, the max buffer size is increased
+from 1023 to 2047.
+
+..
+
+.. date: 2025-05-19-15-05-24
+.. gh-issue: 134235
+.. nonce: pz9PwV
+.. section: Library
+
+Updated tab completion on REPL to include builtin modules. Contributed by
+Tom Wang, Hunter Young
+
+..
+
+.. date: 2025-05-19-10-32-11
+.. gh-issue: 134152
+.. nonce: INJC2j
+.. section: Library
+
+Fixed :exc:`UnboundLocalError` that could occur during :mod:`email` header
+parsing if an expected trailing delimiter is missing in some contexts.
+
+..
+
+.. date: 2025-05-18-13-23-29
+.. gh-issue: 134168
+.. nonce: hgx3Xg
+.. section: Library
+
+:mod:`http.server`: Fix IPv6 address binding and :option:`--directory
+<http.server --directory>` handling when using HTTPS.
+
+..
+
+.. date: 2025-05-18-12-48-39
+.. gh-issue: 62184
+.. nonce: y11l10
+.. section: Library
+
+Remove import of C implementation of :class:`io.FileIO` from Python
+implementation which has its own implementation
+
+..
+
+.. date: 2025-05-17-20-23-57
+.. gh-issue: 133982
+.. nonce: smS7au
+.. section: Library
+
+Emit :exc:`RuntimeWarning` in the Python implementation of :mod:`io` when
+the :term:`file-like object <file object>` is not closed explicitly in the
+presence of multiple I/O layers.
+
+..
+
+.. date: 2025-05-17-18-08-35
+.. gh-issue: 133890
+.. nonce: onn9_X
+.. section: Library
+
+The :mod:`tarfile` module now handles :exc:`UnicodeEncodeError` in the same
+way as :exc:`OSError` when cannot extract a member.
+
+..
+
+.. date: 2025-05-17-13-46-20
+.. gh-issue: 134097
+.. nonce: fgkjE1
+.. section: Library
+
+Fix interaction of the new :term:`REPL` and :option:`-X showrefcount <-X>`
+command line option.
+
+..
+
+.. date: 2025-05-17-12-40-12
+.. gh-issue: 133889
+.. nonce: Eh-zO4
+.. section: Library
+
+The generated directory listing page in
+:class:`http.server.SimpleHTTPRequestHandler` now only shows the decoded
+path component of the requested URL, and not the query and fragment.
+
+..
+
+.. date: 2025-05-16-20-10-25
+.. gh-issue: 134098
+.. nonce: YyTkKr
+.. section: Library
+
+Fix handling paths that end with a percent-encoded slash (``%2f`` or
+``%2F``) in :class:`http.server.SimpleHTTPRequestHandler`.
+
+..
+
+.. date: 2025-05-16-12-40-37
+.. gh-issue: 132124
+.. nonce: T_5Odx
+.. section: Library
+
+On POSIX-compliant systems, :func:`!multiprocessing.util.get_temp_dir` now
+ignores :envvar:`TMPDIR` (and similar environment variables) if the path
+length of ``AF_UNIX`` socket files exceeds the platform-specific maximum
+length when using the :ref:`forkserver
+<multiprocessing-start-method-forkserver>` start method. Patch by Bénédikt
+Tran.
+
+..
+
+.. date: 2025-05-15-14-27-01
+.. gh-issue: 134062
+.. nonce: fRbJet
+.. section: Library
+
+:mod:`ipaddress`: fix collisions in :meth:`~object.__hash__` for
+:class:`~ipaddress.IPv4Network` and :class:`~ipaddress.IPv6Network` objects.
+
+..
+
+.. date: 2025-05-13-18-54-56
+.. gh-issue: 133970
+.. nonce: 6G-Oi6
+.. section: Library
+
+Make :class:`!string.templatelib.Template` and
+:class:`!string.templatelib.Interpolation` generic.
+
+..
+
+.. date: 2025-05-13-18-21-59
+.. gh-issue: 71253
+.. nonce: -3Sf_K
+.. section: Library
+
+Raise :exc:`ValueError` in :func:`open` if *opener* returns a negative
+file-descriptor in the Python implementation of :mod:`io` to match the C
+implementation.
+
+..
+
+.. date: 2025-05-12-20-38-57
+.. gh-issue: 133960
+.. nonce: Aee79f
+.. section: Library
+
+Simplify and improve :func:`typing.evaluate_forward_ref`. It now no longer
+raises errors on certain invalid types. In several situations, it is now
+able to evaluate forward references that were previously unsupported.
+
+..
+
+.. date: 2025-05-12-06-52-10
+.. gh-issue: 133925
+.. nonce: elInBY
+.. section: Library
+
+Make the private class ``typing._UnionGenericAlias`` hashable.
+
+..
+
+.. date: 2025-05-10-12-06-55
+.. gh-issue: 133653
+.. nonce: Gb2aG4
+.. section: Library
+
+Fix :class:`argparse.ArgumentParser` with the *formatter_class* argument.
+Fix TypeError when *formatter_class* is a custom subclass of
+:class:`!HelpFormatter`. Fix TypeError when *formatter_class* is not a
+subclass of :class:`!HelpFormatter` and non-standard *prefix_char* is used.
+Fix support of colorizing when *formatter_class* is not a subclass of
+:class:`!HelpFormatter`.
+
+..
+
+.. date: 2025-05-09-20-59-24
+.. gh-issue: 132641
+.. nonce: 3qTw44
+.. section: Library
+
+Fixed a race in :func:`functools.lru_cache` under free-threading.
+
+..
+
+.. date: 2025-05-09-19-05-24
+.. gh-issue: 133783
+.. nonce: 1voCnR
+.. section: Library
+
+Fix bug with applying :func:`copy.replace` to :mod:`ast` objects. Attributes
+that default to ``None`` were incorrectly treated as required for manually
+created AST nodes.
+
+..
+
+.. date: 2025-05-09-18-29-25
+.. gh-issue: 133684
+.. nonce: Y1DFSt
+.. section: Library
+
+Fix bug where :func:`annotationlib.get_annotations` would return the wrong
+result for certain classes that are part of a class hierarchy where ``from
+__future__ import annotations`` is used.
+
+..
+
+.. date: 2025-05-09-15-50-00
+.. gh-issue: 77057
+.. nonce: fV8SU-
+.. section: Library
+
+Fix handling of invalid markup declarations in
+:class:`html.parser.HTMLParser`.
+
+..
+
+.. date: 2025-05-09-09-10-34
+.. gh-issue: 130328
+.. nonce: s9h4By
+.. section: Library
+
+Speedup pasting in ``PyREPL`` on Windows in a legacy console. Patch by Chris
+Eibl.
+
+..
+
+.. date: 2025-05-09-08-49-03
+.. gh-issue: 133701
+.. nonce: KI8tGz
+.. section: Library
+
+Fix bug where :class:`typing.TypedDict` classes defined under ``from
+__future__ import annotations`` and inheriting from another ``TypedDict``
+had an incorrect ``__annotations__`` attribute.
+
+..
+
+.. date: 2025-05-07-19-16-41
+.. gh-issue: 133581
+.. nonce: kERUCJ
+.. section: Library
+
+Improve unparsing of t-strings in :func:`ast.unparse` and ``from __future__
+import annotations``. Empty t-strings now round-trip correctly and
+formatting in interpolations is preserved. Patch by Jelle Zijlstra.
+
+..
+
+.. date: 2025-05-06-22-54-37
+.. gh-issue: 133551
+.. nonce: rfy1tJ
+.. section: Library
+
+Support t-strings (:pep:`750`) in :mod:`annotationlib`. Patch by Jelle
+Zijlstra.
+
+..
+
+.. date: 2025-05-05-22-11-24
+.. gh-issue: 133439
+.. nonce: LpmyFz
+.. section: Library
+
+Fix dot commands with trailing spaces are mistaken for multi-line SQL
+statements in the sqlite3 command-line interface.
+
+..
+
+.. date: 2025-05-04-17-04-55
+.. gh-issue: 132493
+.. nonce: huirKi
+.. section: Library
+
+Avoid accessing ``__annotations__`` unnecessarily in
+:func:`inspect.signature`.
+
+..
+
+.. date: 2025-04-29-11-48-46
+.. gh-issue: 132876
+.. nonce: lyTQGZ
+.. section: Library
+
+``ldexp()`` on Windows doesn't round subnormal results before Windows 11,
+but should. Python's :func:`math.ldexp` wrapper now does round them, so
+results may change slightly, in rare cases of very small results, on Windows
+versions before 11.
+
+..
+
+.. date: 2025-04-26-15-50-12
+.. gh-issue: 133009
+.. nonce: etBuz5
+.. section: Library
+
+:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.__deepcopy__
+<object.__deepcopy__>` when the element is concurrently mutated. Patch by
+Bénédikt Tran.
+
+..
+
+.. date: 2025-03-30-16-42-38
+.. gh-issue: 91555
+.. nonce: ShVtwW
+.. section: Library
+
+Ignore log messages generated during handling of log messages, to avoid
+deadlock or infinite recursion.
+
+..
+
+.. date: 2024-10-28-06-54-22
+.. gh-issue: 125028
+.. nonce: GEY8Ws
+.. section: Library
+
+:data:`functools.Placeholder` cannot be passed to :func:`functools.partial`
+as a keyword argument.
+
+..
+
+.. date: 2023-02-13-21-56-38
+.. gh-issue: 62824
+.. nonce: CBZzX3
+.. section: Library
+
+Fix aliases for ``iso8859_8`` encoding. Patch by Dave Goncalves.
+
+..
+
+.. date: 2023-02-13-21-41-34
+.. gh-issue: 86155
+.. nonce: ppIGSC
+.. section: Library
+
+:meth:`html.parser.HTMLParser.close` no longer loses data when the
+``<script>`` tag is not closed. Patch by Waylan Limberg.
+
+..
+
+.. date: 2022-07-24-20-56-32
+.. gh-issue: 69426
+.. nonce: unccw7
+.. section: Library
+
+Fix :class:`html.parser.HTMLParser` to not unescape character entities in
+attribute values if they are followed by an ASCII alphanumeric or an equals
+sign.
+
+..
+
+.. bpo: 28494
+.. date: 2017-12-30-18-21-00
+.. nonce: Dt_Wks
+.. section: Library
+
+Improve Zip file validation false positive rate in
+:func:`zipfile.is_zipfile`.
+
+..
+
+.. date: 2025-05-22-14-48-19
+.. gh-issue: 134381
+.. nonce: 2BXhth
+.. section: Core and Builtins
+
+Fix :exc:`RuntimeError` when using a not-started :class:`threading.Thread`
+after calling :func:`os.fork`
+
+..
+
+.. date: 2025-05-21-18-02-56
+.. gh-issue: 127960
+.. nonce: W3J_2X
+.. section: Core and Builtins
+
+PyREPL interactive shell no longer starts with ``__package__`` and
+``__file__`` global names set to ``_pyrepl`` package internals. Contributed
+by Yuichiro Tachibana.
+
+..
+
+.. date: 2025-05-21-15-14-32
+.. gh-issue: 130397
+.. nonce: aG6EON
+.. section: Core and Builtins
+
+Remove special-casing for C stack depth limits for WASI. Due to
+WebAssembly's built-in stack protection this does not pose a security
+concern.
+
+..
+
+.. date: 2025-05-20-14-41-50
+.. gh-issue: 128066
+.. nonce: qzzGfv
+.. section: Core and Builtins
+
+Fixes an edge case where PyREPL improperly threw an error when Python is
+invoked on a read only filesystem while trying to write history file
+entries.
+
+..
+
+.. date: 2025-05-18-14-33-23
+.. gh-issue: 69605
+.. nonce: ZMO49F
+.. section: Core and Builtins
+
+When auto-completing an import in the :term:`REPL`, finding no candidates
+now issues no suggestion, rather than suggestions from the current
+namespace.
+
+..
+
+.. date: 2025-05-17-20-44-51
+.. gh-issue: 134158
+.. nonce: ewLNLp
+.. section: Core and Builtins
+
+Fix coloring of double braces in f-strings and t-strings in the
+:term:`REPL`.
+
+..
+
+.. date: 2025-05-16-20-59-12
+.. gh-issue: 134119
+.. nonce: w8expI
+.. section: Core and Builtins
+
+Fix crash when calling :func:`next` on an exhausted template string
+iterator. Patch by Jelle Zijlstra.
+
+..
+
+.. date: 2025-05-16-17-25-52
+.. gh-issue: 134100
+.. nonce: 5-FbLK
+.. section: Core and Builtins
+
+Fix a use-after-free bug that occurs when an imported module isn't in
+:data:`sys.modules` after its initial import. Patch by Nico-Posada.
+
+..
+
+.. date: 2025-05-15-11-38-16
+.. gh-issue: 133999
+.. nonce: uBZ8uS
+.. section: Core and Builtins
+
+Fix :exc:`SyntaxError` regression in :keyword:`except` parsing after
+:gh:`123440`.
+
+..
+
+.. date: 2025-05-11-13-40-42
+.. gh-issue: 133886
+.. nonce: ryBAyo
+.. section: Core and Builtins
+
+Fix :func:`sys.remote_exec` for non-ASCII paths in non-UTF-8 locales and
+non-UTF-8 paths in UTF-8 locales.
+
+..
+
+.. date: 2025-05-10-17-12-27
+.. gh-issue: 133703
+.. nonce: bVM-re
+.. section: Core and Builtins
+
+Fix hashtable in dict can be bigger than intended in some situations.
+
+..
+
+.. date: 2025-05-09-18-11-21
+.. gh-issue: 133778
+.. nonce: pWEV3t
+.. section: Core and Builtins
+
+Fix bug where assigning to the :attr:`~type.__annotations__` attributes of
+classes defined under ``from __future__ import annotations`` had no effect.
+
+..
+
+.. date: 2025-05-08-13-48-02
+.. gh-issue: 132762
+.. nonce: tKbygC
+.. section: Core and Builtins
+
+:meth:`~dict.fromkeys` no longer loops forever when adding a small set of
+keys to a large base dict. Patch by Angela Liss.
+
+..
+
+.. date: 2025-05-07-23-26-53
+.. gh-issue: 133541
+.. nonce: bHIC55
+.. section: Core and Builtins
+
+Inconsistent indentation in user input crashed the new REPL when syntax
+highlighting was active. This is now fixed.
+
+..
+
+.. date: 2025-05-06-15-01-41
+.. gh-issue: 133516
+.. nonce: RqWVf2
+.. section: Core and Builtins
+
+Raise :exc:`ValueError` when constants ``True``, ``False`` or ``None`` are
+used as an identifier after NFKC normalization.
+
+..
+
+.. date: 2025-04-19-17-16-46
+.. gh-issue: 132542
+.. nonce: 7T_TY_
+.. section: Core and Builtins
+
+Update :attr:`Thread.native_id <threading.Thread.native_id>` after
+:manpage:`fork(2)` to ensure accuracy. Patch by Noam Cohen.
+
+..
+
+.. date: 2025-05-17-14-41-21
+.. gh-issue: 134144
+.. nonce: xVpZik
+.. section: C API
+
+Fix crash when calling :c:func:`Py_EndInterpreter` with a :term:`thread
+state` that isn't the initial thread for the interpreter.
+
+..
+
+.. date: 2025-05-21-19-46-28
+.. gh-issue: 134455
+.. nonce: vdwlrq
+.. section: Build
+
+Fixed ``build-details.json`` generation to use the correct ``c_api.headers``
+as defined in :pep:`739`, instead of ``c_api.include``.
+
+..
+
+.. date: 2025-04-30-10-22-08
+.. gh-issue: 131769
+.. nonce: H0oy5x
+.. section: Build
+
+Fix detecting when the build Python in a cross-build is a pydebug build.
+
+..
+
+.. date: 2025-04-16-09-38-48
+.. gh-issue: 117088
+.. nonce: EFt_5c
+.. section: Build
+
+AIX linker don't support -h option, so avoid it through platform check