]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
33 hours ago[3.15] gh-152375: Fix undefined behaviour in the `INSTRUMENTED_JUMP` macro (GH-152376...
Miss Islington (bot) [Mon, 29 Jun 2026 09:54:27 +0000 (11:54 +0200)] 
[3.15] gh-152375: Fix undefined behaviour in the `INSTRUMENTED_JUMP` macro (GH-152376) (#152566)

(cherry picked from commit cdec9acd63c33d9b822700de8f63eb94d86e1c93)

Co-authored-by: Stan Ulbrych <stan@python.org>
33 hours ago[3.15] gh-148909: Fix broken author attribution URL in 'The Python 2.3 Method Resolut...
Miss Islington (bot) [Mon, 29 Jun 2026 09:35:46 +0000 (11:35 +0200)] 
[3.15] gh-148909: Fix broken author attribution URL in 'The Python 2.3 Method Resolution Order' doc (GH-149092) (#152571)

(cherry picked from commit 7aae0e58b7c02cefd3e13b0d1b65b4ef5cb2b57e)

Co-authored-by: Ivy Xu <fakeshadow1337@gmail.com>
33 hours ago[3.15] GH-151672: `__lazy_import__` always resolves to the module being imported...
Miss Islington (bot) [Mon, 29 Jun 2026 09:23:25 +0000 (11:23 +0200)] 
[3.15] GH-151672: `__lazy_import__` always resolves to the module being imported (GH-151827) (#152534)

GH-151672: `__lazy_import__` always resolves to the module being imported (GH-151827)
(cherry picked from commit 2d0003c0b28dca86197f4b74810966856a27dc60)

Co-authored-by: Brandt Bucher <brandt@python.org>
34 hours ago[3.15] gh-140146: Fix for stdin redirection to a pipe with interactive tkinter on...
Miss Islington (bot) [Mon, 29 Jun 2026 09:13:05 +0000 (11:13 +0200)] 
[3.15] gh-140146: Fix for stdin redirection to a pipe with interactive tkinter on Windows (GH-148819) (GH-152560)

(cherry picked from commit 6d209cbb93d0871ad4a5883637a8f0aebc053f76)

Co-authored-by: mdehoon <mjldehoon@yahoo.com>
34 hours ago[3.15] gh-85320: Use UTF-8 for IDLE configuration and breakpoint files (GH-152475...
Miss Islington (bot) [Mon, 29 Jun 2026 08:44:24 +0000 (10:44 +0200)] 
[3.15] gh-85320: Use UTF-8 for IDLE configuration and breakpoint files (GH-152475) (GH-152555)

They were read and written using the locale encoding, which could corrupt
non-ASCII paths and made them non-portable.
(cherry picked from commit f6e904e1a666cb1e5664750b1c3d8f89cba3a769)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
34 hours ago[3.15] gh-110357: hashlib no longer logs at import when a guaranteed hash is unavaila...
Miss Islington (bot) [Mon, 29 Jun 2026 08:39:32 +0000 (10:39 +0200)] 
[3.15] gh-110357: hashlib no longer logs at import when a guaranteed hash is unavailable (GH-152538) (#152554)

gh-110357: hashlib no longer logs at import when a guaranteed hash is unavailable (GH-152538)

When a normally-guaranteed hash algorithm cannot be constructed at import time
(e.g. an OpenSSL FIPS configuration excludes it from the default provider, or
the build used --without-builtin-hashlib-hashes), importing hashlib emitted an
"ERROR:root:hash algorithm ... will not be supported at runtime" message to
stderr.  For the many programs that never use the missing algorithm this is
pure noise.  Worse, logging.error() lazily calls logging.basicConfig(), which
mutates the root logger's handlers -- a global side effect that the test suite
flags as an altered execution environment.

Stop logging in that path.  Code that actually uses a missing algorithm still
gets a clear ValueError from the stub constructor installed in its place.

The stray output has shown up incidentally in FIPS / "No Builtin Hashes"
buildbot reports for years (e.g. gh-110357, gh-76902) without being the
reported subject.
(cherry picked from commit 8ae1a236fd334a590e90028f615cd4a822ae6f97)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
36 hours ago[3.15] gh-87577: Document that wm_manage does not accept ttk widgets (GH-152532)...
Miss Islington (bot) [Mon, 29 Jun 2026 06:38:47 +0000 (08:38 +0200)] 
[3.15] gh-87577: Document that wm_manage does not accept ttk widgets (GH-152532) (GH-152543)

wm_manage() works only with the classic tkinter Frame, LabelFrame and
Toplevel widgets, not their tkinter.ttk counterparts.
(cherry picked from commit 2670cb062c9ec31cd6df7be645f929a8398601c7)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
40 hours ago[3.15] gh-148660: Fix use-after-free in OrderedDict.copy() on reentrant mutation...
Miss Islington (bot) [Mon, 29 Jun 2026 02:34:20 +0000 (04:34 +0200)] 
[3.15] gh-148660: Fix use-after-free in OrderedDict.copy() on reentrant mutation (GH-151573) (#152540)

gh-148660: Fix use-after-free in OrderedDict.copy() on reentrant mutation (GH-151573)

* gh-148660: Fix use-after-free in OrderedDict.copy() on reentrant mutation

OrderedDict.copy() walks the internal linked list while building the new
dict. The loop body can run arbitrary Python (a key's __eq__/__hash__, or
a subclass __getitem__/__setitem__) which can clear the source dict and
free the nodes being iterated.

Detect this the same way OrderedDict.__eq__ already does (gh-119004):
snapshot od_state before the loop, hold a strong reference to the key and
read the hash before any reentrant call, and raise RuntimeError if the
state changed before advancing to the next node.

* gh-148660: fix NEWS nit, suppress undocumented OrderedDict.copy xref
(cherry picked from commit 7d128e319f3730e776a9161a4b5e9de95c802eaf)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
42 hours ago[3.15] gh-151416: fix a borrowed ref potential use after free via fspath in os.spawnv...
Miss Islington (bot) [Mon, 29 Jun 2026 00:56:40 +0000 (02:56 +0200)] 
[3.15] gh-151416: fix a borrowed ref potential use after free via fspath in os.spawnv/spawnve (GH-151417) (#152535)

gh-151416: fix a borrowed ref potential use after free via fspath in os.spawnv/spawnve (GH-151417)

* gh-151416: Fix use-after-free in os.spawnv/spawnve when __fspath__ mutates argv

The argv conversion loops passed references borrowed from the argv list
into fsconvert_strdup().  An item's __fspath__() can mutate the list and
release its reference to the item, leaving the converter operating on a
freed object.  A shrunk list could also make PyList_GetItem() return
NULL, which PyUnicode_FS{Converter,Decoder}() treat as a request to
release an uninitialized output variable.

Hold a strong reference to each item across the conversion, matching
parse_arglist() and parse_envlist().

* gh-151416: Don't mask non-TypeError argv conversion errors in os.spawnv

os.spawnv() replaced any error raised during argv item conversion,
such as MemoryError, codec errors, or the embedded-null ValueError,
with a generic TypeError.  Only add the contextual message when the
conversion actually raised TypeError, matching how os.spawnve() and
the exec functions propagate these errors.

The test is gated to the native C spawnv: the Python fallback used
elsewhere reports conversion failures from the forked child as exit
status 127 instead of raising.
(cherry picked from commit f57d3d6db39ea0bd39743f1a614b46cbefbfdab6)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
44 hours ago[3.15] GH-151619: Ensure non-module global/builtin namespaces are watched for lazy...
Miss Islington (bot) [Sun, 28 Jun 2026 22:53:20 +0000 (00:53 +0200)] 
[3.15] GH-151619: Ensure non-module global/builtin namespaces are watched for lazy imports (GH-151762) (#152533)

GH-151619: Ensure non-module global/builtin namespaces are watched for lazy imports (GH-151762)
(cherry picked from commit 7ed9062dd05e735505f75e9caac56ccd64913371)

Co-authored-by: Brandt Bucher <brandt@python.org>
47 hours ago[3.15] gh-150743: Limit trailer lines and interim responses read by http.client ...
Miss Islington (bot) [Sun, 28 Jun 2026 19:35:27 +0000 (21:35 +0200)] 
[3.15] gh-150743: Limit trailer lines and interim responses read by http.client (GH-150741) (#152523)

gh-150743: Limit trailer lines and interim responses read by http.client (GH-150741)

http.client read chunked-response trailer lines and skipped interim (1xx)
responses in unbounded loops, so a server streaming either forever would
hang the client even with a socket timeout set (data keeps arriving, so
the timeout never fires).

Trailer lines are now limited to max_response_headers (100 by default)
and interim responses to 100; HTTPException is raised past either limit.

Follow-up to gh-88188 for CVE-2021-3737, which bounded header lines
within an interim response but not these two sibling loops.
(cherry picked from commit 41cc78a7a47fe584e2c2899737fec877d61ae331)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
---

This issue was reported to us via [GHSA-w4q2-g22w-6fr4](https://github.com/python/cpython/security/advisories/GHSA-w4q2-g22w-6fr4) and was determined not to be high enough severity to handle privately.

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2 days ago[3.15] Docs: link to language reference instead of PEP (GH-152462) (#152522)
Miss Islington (bot) [Sun, 28 Jun 2026 19:13:06 +0000 (21:13 +0200)] 
[3.15] Docs: link to language reference instead of PEP (GH-152462) (#152522)

Docs: link to language reference instead of PEP (GH-152462)
(cherry picked from commit 54524ab669a566623336c36994e1b3f2a6711c77)

Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
2 days ago[3.15] gh-152356: Fix Windows blocking sampling after target process exit (GH-152471...
Miss Islington (bot) [Sun, 28 Jun 2026 17:27:42 +0000 (19:27 +0200)] 
[3.15] gh-152356: Fix Windows blocking sampling after target process exit (GH-152471) (#152512)

2 days ago[3.15] gh-87881: Document the result of curses inch() and getbkgd() (GH-152488) ...
Serhiy Storchaka [Sun, 28 Jun 2026 17:06:55 +0000 (20:06 +0300)] 
[3.15] gh-87881: Document the result of curses inch() and getbkgd() (GH-152488) (GH-152511)

Explain the character/attribute bit layout and how to extract the parts
(A_CHARTEXT and A_ATTRIBUTES bit-masks, pair_number() for the color pair).
(cherry picked from commit d831a690766e92b3be5e40134f64407bd041bcbf)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2 days ago[3.15] gh-78335: Complete the widget option lists in tkinter docstrings (GH-152485...
Miss Islington (bot) [Sun, 28 Jun 2026 16:53:52 +0000 (18:53 +0200)] 
[3.15] gh-78335: Complete the widget option lists in tkinter docstrings (GH-152485) (GH-152500)

Several widget __init__ docstrings omitted valid options, and Menubutton and
Message had no option list at all.  List every option supported by the widget,
tagging those added in Tk 9.0 and 9.1.

Add test_options_in_docstring, asserting that every option in OPTIONS is named
in the widget's __init__ docstring.  Options reported by keys() but not in the
docstring are only printed in verbose mode, as some depend on the Tk version.
(cherry picked from commit ba0c0e6be18ea56d00b4534cc9e32d1acaba96d6)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2 days ago[3.15] gh-110904: Recommend windows-curses in the curses HOWTO (GH-152491) (GH-152506)
Miss Islington (bot) [Sun, 28 Jun 2026 16:38:19 +0000 (18:38 +0200)] 
[3.15] gh-110904: Recommend windows-curses in the curses HOWTO (GH-152491) (GH-152506)

The HOWTO pointed at UniCurses, which is unmaintained and exposes its own
API.  windows-curses provides the standard curses interface on Windows, so
existing code runs unchanged.
(cherry picked from commit 7b0dff7d16ce59df44847ab04567eb97bfbc3576)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2 days ago[3.15] gh-152434: Avoid Gecko export in async-aware test (GH-152496) (#152498)
Miss Islington (bot) [Sun, 28 Jun 2026 16:19:01 +0000 (18:19 +0200)] 
[3.15] gh-152434: Avoid Gecko export in async-aware test (GH-152496) (#152498)

2 days ago[3.15] gh-152397: Provide a cross-reference to PEP 798 unpacking syntax (GH-152454...
Miss Islington (bot) [Sun, 28 Jun 2026 03:55:04 +0000 (05:55 +0200)] 
[3.15] gh-152397: Provide a cross-reference to PEP 798 unpacking syntax (GH-152454) (#152460)

Co-authored-by: Raymond Hettinger <rhettinger@users.noreply.github.com>
Co-authored-by: Rishit Agnihotri <Twix1288@users.noreply.github.com>
2 days ago[3.15] gh-152415: Exercise curses non-ASCII tests under 8-bit locale encodings (GH...
Serhiy Storchaka [Sat, 27 Jun 2026 20:40:13 +0000 (23:40 +0300)] 
[3.15] gh-152415: Exercise curses non-ASCII tests under 8-bit locale encodings (GH-152416) (#152453)

The non-ASCII tests only exercised what the runner's locale could encode (in
practice UTF-8).  Add 8-bit-encoding cases to the character and string I/O
tests, each guarded by the existing encodability check: ASCII, a character
common to the Latin encodings ('é'), and ones distinctive to a single encoding
(byte 0xA4 is '¤' in ISO-8859-1, '€' in ISO-8859-15, 'є' in KOI8-U).  Run the
whole suite under different locales to cover them; unrepresentable cases skip.

* gh-152415: Verify character output round-trips in test_output_character

Read each written character back with in_wch() or instr() rather than
inch(), which on a wide build returns the low byte of the code point
instead of the locale-encoded byte and so mangles a non-ASCII character
of an 8-bit locale.  This lets the int-argument cases cover '€'/'є', and
adds matching coverage for the str argument.

insch() with an int byte > 127 is checked only for Latin-1: on a wide
build ncurses winsch stores a printable byte directly as a code point
instead of decoding it through the locale.
(cherry picked from commit 003d3620cc0f44caca7bf26c3e6964f5f379645f)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-152434: Fix async-aware Gecko collection (GH-152442) (#152450)
Miss Islington (bot) [Sat, 27 Jun 2026 18:00:28 +0000 (20:00 +0200)] 
[3.15] gh-152434: Fix async-aware Gecko collection (GH-152442) (#152450)

gh-152434: Fix async-aware Gecko collection (GH-152442)
(cherry picked from commit 87ac0bc66a298b040c4b4c6c2eb83628bf10abf9)

Co-authored-by: László Kiss Kollár <kiss.kollar.laszlo@gmail.com>
3 days ago[3.15] gh-151613: Fix remote debugging frame cache ABA (#152448)
Pablo Galindo Salgado [Sat, 27 Jun 2026 17:42:31 +0000 (19:42 +0200)] 
[3.15] gh-151613: Fix remote debugging frame cache ABA (#152448)

gh-151613: Fix remote debugging frame cache ABA (#151614)

The remote debugging frame cache previously used only the last_profiled_frame address as its cache anchor. If a frame returned and a later frame reused the same _PyInterpreterFrame address, the profiler could accept a stale cache entry and splice parent frames from a different call chain into the current stack.

This adds a last_profiled_frame_seq counter next to last_profiled_frame, increments it when the anchor advances, stores it in frame cache entries, and validates cache hits against both the frame address and the sequence. Cache miss walks now copy stack chunks before storing new cache entries so stored continuations come from a stable snapshot. The new regression test exercises alternating call chains and checks that cached stacks never contain frames from both branches.

(cherry picked from commit 8cda6ae2f1f86f2d26c29586ffc9687b410abfcf)

3 days ago[3.15] gh-145306: Fix browser open after empty export (GH-150017) (#152447)
Miss Islington (bot) [Sat, 27 Jun 2026 17:36:38 +0000 (19:36 +0200)] 
[3.15] gh-145306: Fix browser open after empty export (GH-150017) (#152447)

gh-145306: Fix browser open after empty export (GH-150017)
(cherry picked from commit 860f8a5addcb556c251b8b9caa95d80518928067)

Co-authored-by: ivonastojanovic <80911834+ivonastojanovic@users.noreply.github.com>
3 days ago[3.15] gh-152434: Block --async-aware with --binary (GH-152444) (#152446)
Miss Islington (bot) [Sat, 27 Jun 2026 17:24:53 +0000 (19:24 +0200)] 
[3.15] gh-152434: Block --async-aware with --binary (GH-152444) (#152446)

gh-152434: Block --async-aware with --binary (GH-152444)

The binary writer does not currently handle AwaitedInfo samples and
crashes when running in --async-aware mode.
(cherry picked from commit 876c06cab9e824747d708a031c6b81b1f8a4f8dc)

Co-authored-by: László Kiss Kollár <kiss.kollar.laszlo@gmail.com>
3 days ago[3.15] gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython...
Miss Islington (bot) [Sat, 27 Jun 2026 16:49:40 +0000 (18:49 +0200)] 
[3.15] gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk (GH-151032) (#152443)

gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk (GH-151032)
(cherry picked from commit a69d0fc41ef339378022f1c0190a9692cb276a7f)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
3 days ago[3.15] gh-152391: Improve `test_interpreters.test_stress` test (GH-152396) (#152427)
Miss Islington (bot) [Sat, 27 Jun 2026 15:37:40 +0000 (17:37 +0200)] 
[3.15] gh-152391: Improve `test_interpreters.test_stress` test (GH-152396) (#152427)

gh-152391: Improve `test_interpreters.test_stress` test (GH-152396)
(cherry picked from commit 219f7a9453a2a89266f6e65d75df1606b4816043)

Co-authored-by: sobolevn <mail@sobolevn.me>
3 days ago[3.15] gh-152305: Fix `_pydatetime.time.strftime()` raising on year directives (GH...
Miss Islington (bot) [Sat, 27 Jun 2026 15:36:31 +0000 (17:36 +0200)] 
[3.15] gh-152305: Fix `_pydatetime.time.strftime()` raising on year directives (GH-152306) (#152425)

(cherry picked from commit 5733361fdd85519c931e67fd7cab0ff3a11b8ec0)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
3 days ago[3.15] gh-151126: Sets missing exceptions in `tkinter` and `socket` modules initializ...
Miss Islington (bot) [Sat, 27 Jun 2026 15:28:27 +0000 (17:28 +0200)] 
[3.15] gh-151126: Sets missing exceptions in `tkinter` and `socket` modules initializations (GH-152418) (#152420)

gh-151126: Sets missing exceptions in `tkinter` and `socket` modules initializations (GH-152418)
(cherry picked from commit a9fa8560143098168e0380386acbf4846c37472b)

Co-authored-by: sobolevn <mail@sobolevn.me>
3 days ago[3.15] gh-152402: Use `support.nomemtest` in `test_pyexpat` (GH-152403) (#152411)
Miss Islington (bot) [Sat, 27 Jun 2026 13:58:20 +0000 (15:58 +0200)] 
[3.15] gh-152402: Use `support.nomemtest` in `test_pyexpat` (GH-152403) (#152411)

gh-152402: Use `support.nomemtest` in `test_pyexpat` (GH-152403)
(cherry picked from commit 109c59e25f558732bfde8b65bbbf305a6a8a05d8)

Co-authored-by: sobolevn <mail@sobolevn.me>
3 days ago[3.15] Docs: Fix incomplete sentence in `tp_itemsize` documentation (GH-152381) ...
Miss Islington (bot) [Sat, 27 Jun 2026 13:52:57 +0000 (15:52 +0200)] 
[3.15] Docs: Fix incomplete sentence in `tp_itemsize` documentation (GH-152381) (GH-152417)

(cherry picked from commit 0a21a248cc97eba3d75c7bd07c849ec645aea87b)

Co-authored-by: da-woods <dw-git@d-woods.co.uk>
3 days ago[3.15] gh-70273: Document default class bindings in tkinter (GH-152389) (GH-152393)
Miss Islington (bot) [Sat, 27 Jun 2026 11:47:07 +0000 (13:47 +0200)] 
[3.15] gh-70273: Document default class bindings in tkinter (GH-152389) (GH-152393)

Note in the Bindings and events section that every widget inherits Tk
class bindings for its standard behavior, where they are documented, and
how to suppress an unwanted one by returning "break" from a callback.
(cherry picked from commit 4fd69ef97a67fc935e0d4f30662f2a1985ba6be9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-82830: Improve tkinter messagebox docstrings and cursor documentation ...
Miss Islington (bot) [Sat, 27 Jun 2026 11:30:15 +0000 (13:30 +0200)] 
[3.15] gh-82830: Improve tkinter messagebox docstrings and cursor documentation (GH-152380) (GH-152386)

Document Windows cursor files (gh-99089).
(cherry picked from commit ea7f64a65cb52b8b720cbf5d590c2cf89de8d407)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-152212: Reject a POSIX TZ footer with a missing std offset in pure-Python...
Miss Islington (bot) [Sat, 27 Jun 2026 09:45:43 +0000 (11:45 +0200)] 
[3.15] gh-152212: Reject a POSIX TZ footer with a missing std offset in pure-Python `zoneinfo` (GH-152213) (#152379)

(cherry picked from commit 93454fe0daa2b29e8fefbe76aed7af4fa1eb8623)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
3 days ago[3.15] gh-71880: Allow editing the last cell in curses.textpad.Textbox (GH-152363...
Miss Islington (bot) [Sat, 27 Jun 2026 07:50:59 +0000 (09:50 +0200)] 
[3.15] gh-71880: Allow editing the last cell in curses.textpad.Textbox (GH-152363) (GH-152364)

Textbox.edit() ignored typing in the lower-right cell of the window.  It is
now written with insch(), which fills the cell without moving the cursor out
of the window (addch() there raises an error and scrolls a scrollable window).
(cherry picked from commit 11b394381f30815a8ad0123afb0a55e7a0369f79)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-151678: Add more tests for tkinter.dnd (GH-152362) (GH-152367)
Miss Islington (bot) [Sat, 27 Jun 2026 07:41:21 +0000 (09:41 +0200)] 
[3.15] gh-151678: Add more tests for tkinter.dnd (GH-152362) (GH-152367)

Cover the drag cursor, the Motion and ButtonRelease bindings, switching
between targets, the target search up the master chain, dnd_accept()
returning None, and restarting after a drag has finished.
(cherry picked from commit 389e00f13fb5b20b424980b08678753441db7529)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-38464: Make tkinter nametowidget() work with cloned menus (GH-152336) ...
Miss Islington (bot) [Fri, 26 Jun 2026 23:31:46 +0000 (01:31 +0200)] 
[3.15] gh-38464: Make tkinter nametowidget() work with cloned menus (GH-152336) (GH-152349)

Map the auto-generated name of a cloned menu (a menu used as a menubar
or a cascade) back to the original widget instead of raising KeyError.
(cherry picked from commit 5c3555bdc56a8e110a7d366f8ac0a93cd082e90f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] gh-88758: Handle non-tkinter widgets in tkinter focus methods (GH-152337)...
Miss Islington (bot) [Fri, 26 Jun 2026 23:30:32 +0000 (01:30 +0200)] 
[3.15] gh-88758: Handle non-tkinter widgets in tkinter focus methods (GH-152337) (GH-152346)

focus_get(), focus_displayof(), focus_lastfor() and winfo_containing()
now return None instead of raising KeyError when the focused widget was
not created by tkinter (for example a torn-off menu).
(cherry picked from commit 5fed5ce85d9c862673cc68294f757f345bbcc9b1)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 days ago[3.15] IDLE: fix dedent() usage in htest (GH-152256) (#152342)
Miss Islington (bot) [Fri, 26 Jun 2026 23:13:47 +0000 (01:13 +0200)] 
[3.15] IDLE: fix dedent() usage in htest (GH-152256) (#152342)

IDLE: fix dedent() usage in htest (GH-152256)

Fix typos: in GH-112642, initial string concatenation quotes were left when switching to textwrap.dedent().
(cherry picked from commit 74272d4f0b8478c1d879671ba35ec4ddaae50178)

Co-authored-by: Inada Naoki <songofacandy@gmail.com>
3 days ago[3.15] gh-98894: Skip test_dtrace when building without dtrace (GH-152239) (#152300)
Miss Islington (bot) [Fri, 26 Jun 2026 20:59:17 +0000 (22:59 +0200)] 
[3.15] gh-98894: Skip test_dtrace when building without dtrace (GH-152239) (#152300)

gh-98894: Skip test_dtrace when building without dtrace (GH-152239)
(cherry picked from commit 671357691f84820d4a4799012e937ab9dcbfdaca)

Co-authored-by: stratakis <cstratak@redhat.com>
3 days ago[3.15] gh-80937: Fix memory leak in tkinter createcommand (GH-152294) (GH-152327)
Miss Islington (bot) [Fri, 26 Jun 2026 19:22:21 +0000 (21:22 +0200)] 
[3.15] gh-80937: Fix memory leak in tkinter createcommand (GH-152294) (GH-152327)

A command created with createcommand() held a strong reference to the
interpreter, forming an uncollectable cycle (interpreter -> command ->
interpreter) that kept the interpreter and the callback alive until the
command was removed with deletecommand() or destroy().  The command now
borrows the reference; it cannot outlive the interpreter, which deletes its
commands when finalized.
(cherry picked from commit bbf7786a904e558a15d01475356167e29b2e3708)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days ago[3.15] gh-152235: Defer GC tracking in set.union and set.difference (gh-152290) ...
Donghee Na [Fri, 26 Jun 2026 17:54:25 +0000 (02:54 +0900)] 
[3.15] gh-152235: Defer GC tracking in set.union and set.difference (gh-152290) (gh-152316)

(cherry picked from commit 5a549e82b81378cb294904dab49cbee853bddd64)

4 days ago[3.15] gh-139145: Fix tkinter event loop in interactive mode (GH-152257) (GH-152291)
Miss Islington (bot) [Fri, 26 Jun 2026 15:00:56 +0000 (17:00 +0200)] 
[3.15] gh-139145: Fix tkinter event loop in interactive mode (GH-152257) (GH-152291)

When a Tcl command running its own event loop (such as vwait or
wait_variable) was active and the user typed input on stdin, the event
loop kept spinning at 100% CPU.  The stdin file handler is now removed as
soon as input becomes available.

Also fix gh-139816: an exception raised in a callback no longer stops the
event loop to wait for Enter on a Python built without readline; pending
callbacks keep running until input is actually available on stdin.
(cherry picked from commit 3ffda34f5cd3809a8755c9596948e4e477661d5f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: mdehoon <mjldehoon@yahoo.com>
Co-authored-by: Christopher Chavez <chrischavez@gmx.us>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days ago[3.15] gh-121249: Soft deprecate F and D struct format types (#149346) (#152274)
Victor Stinner [Fri, 26 Jun 2026 14:26:52 +0000 (16:26 +0200)] 
[3.15] gh-121249: Soft deprecate F and D struct format types (#149346) (#152274)

gh-121249: Soft deprecate F and D struct format types (#149346)

Remove F/D type codes from table in the struct module documentation.

(cherry picked from commit 5f17434a1ec9a121eb38f71dc3d5809020b5fbb4)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
4 days ago[3.15] gh-152052: Fix misleading `json` error for `\uXXXX` escape at the end of input...
Miss Islington (bot) [Fri, 26 Jun 2026 14:15:21 +0000 (16:15 +0200)] 
[3.15] gh-152052: Fix misleading `json` error for `\uXXXX` escape at the end of input (GH-152053) (#152283)

(cherry picked from commit 588be7af08c04d63c1a920539c64885fbc4c6d38)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
4 days ago[3.15] gh-152236: Fix skips on `_testcapi.set_nomemory` tests (GH-152253) (#152281)
Miss Islington (bot) [Fri, 26 Jun 2026 14:03:29 +0000 (16:03 +0200)] 
[3.15] gh-152236: Fix skips on `_testcapi.set_nomemory` tests (GH-152253) (#152281)

gh-152236: Fix skips on `_testcapi.set_nomemory` tests (GH-152253)
(cherry picked from commit 1cbe460eb6c5f40980463f381b3096c92320ff84)

Co-authored-by: sobolevn <mail@sobolevn.me>
4 days ago[3.15] gh-152235: Defer GC tracking in more set operations (gh-152273) (gh-152278)
Miss Islington (bot) [Fri, 26 Jun 2026 14:02:58 +0000 (16:02 +0200)] 
[3.15] gh-152235: Defer GC tracking in more set operations (gh-152273) (gh-152278)

gh-152235: Defer GC tracking in more set operations (gh-152273)
(cherry picked from commit a87d24a69d1e97a1e9643c8951d180918ef36e4c)

Co-authored-by: Donghee Na <donghee.na@python.org>
4 days ago[3.15] gh-151722: Defer GC tracking in frozendict.copy() (GH-152230) (#152271)
Miss Islington (bot) [Fri, 26 Jun 2026 12:26:17 +0000 (14:26 +0200)] 
[3.15] gh-151722: Defer GC tracking in frozendict.copy() (GH-152230) (#152271)

gh-151722: Defer GC tracking in frozendict.copy() (GH-152230)

Fix _PyDict_Or() and frozendict.copy(): only track the frozendict by
the GC once the dictionary is fully initialized.

Functions modifying frozendict now ensures that the object is not
tracked by the GC (in debug mode).

* can_modify_dict() checks that _PyObject_GC_IS_TRACKED() is false
  for frozendicts.
* dict_merge_api() makes sure that the dictionary is tracked by the
  GC.
(cherry picked from commit 05679f3576ed3298c9b0f86e8a3462f0b92dff8f)

Co-authored-by: Victor Stinner <vstinner@python.org>
4 days ago[3.15] gh-152156: Fix a crash in `interpeters.create` under limited memory conditions...
Miss Islington (bot) [Fri, 26 Jun 2026 12:11:14 +0000 (14:11 +0200)] 
[3.15] gh-152156: Fix a crash in `interpeters.create` under limited memory conditions (GH-152163) (#152269)

gh-152156: Fix a crash in `interpeters.create` under limited memory conditions (GH-152163)
(cherry picked from commit 3ad66bf10dbb929bcf8efd889e56a9b9068319ca)

Co-authored-by: sobolevn <mail@sobolevn.me>
4 days ago[3.15] gh-152246: Fix pure-Python `zoneinfo` accepting invalid seperators in POSIX...
Miss Islington (bot) [Fri, 26 Jun 2026 12:08:15 +0000 (14:08 +0200)] 
[3.15] gh-152246: Fix pure-Python `zoneinfo` accepting invalid seperators in POSIX TZ rules (GH-152247) (#152265)

(cherry picked from commit f47acc7f0920cb5ef507352172914876cea18a48)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
4 days ago[3.15] gh-152235: Defer GC tracking of set and frozenset to end of construction ...
Miss Islington (bot) [Fri, 26 Jun 2026 03:49:15 +0000 (05:49 +0200)] 
[3.15] gh-152235: Defer GC tracking of set and frozenset to end of construction (gh-152237) (gh-152242)

gh-152235: Defer GC tracking of set and frozenset to end of construction (gh-152237)
(cherry picked from commit 908f438e198a753d40d1166b5f8725e650a9ed6e)

Co-authored-by: Donghee Na <donghee.na@python.org>
5 days ago[3.15] gh-151722: Do not track the frozendict in the GC in _PyDict_FromKeys() (GH...
Miss Islington (bot) [Thu, 25 Jun 2026 18:48:52 +0000 (20:48 +0200)] 
[3.15] gh-151722: Do not track the frozendict in the GC in _PyDict_FromKeys() (GH-152067) (#152225)

gh-151722: Do not track the frozendict in the GC in _PyDict_FromKeys() (GH-152067)

_PyDict_FromKeys() now creates a frozendict copy which is
not tracked by the GC.

dict_merge() no longer requires the dictionary to be tracked by the
GC.
(cherry picked from commit 55bc3126e0a09a8e940da73e51ab1ffeecaf02d4)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Donghee Na <donghee.na@python.org>
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
5 days ago[3.15] gh-151929: Add pythoninfo commands to Platforms/WASI (GH-152136) (#152222)
Miss Islington (bot) [Thu, 25 Jun 2026 17:22:24 +0000 (19:22 +0200)] 
[3.15] gh-151929: Add pythoninfo commands to Platforms/WASI (GH-152136) (#152222)

gh-151929: Add pythoninfo commands to Platforms/WASI (GH-152136)

The "build" command now also runs "pythoninfo-build" and
"pythoninfo-host" commands.

If no subcommand is provided, display the help.

GitHub Action "WASI":

* Add "pythoninfo-build" and "pythoninfo-host" commands.
* Remove unused and outdated CROSS_BUILD_PYTHON environment variable.
(cherry picked from commit 7c8163719cd23d41daeaed0b243be45de3e82e05)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 days ago[3.15] gh-151929: Add pythoninfo-build command to Platforms/emscripten (GH-152210...
Miss Islington (bot) [Thu, 25 Jun 2026 16:51:32 +0000 (18:51 +0200)] 
[3.15] gh-151929: Add pythoninfo-build command to Platforms/emscripten (GH-152210) (#152217)

gh-151929: Add pythoninfo-build command to Platforms/emscripten (GH-152210)

* Add also "pythoninfo-host" command.
* Add pythoninfo to the "build" command.
(cherry picked from commit 7676427cd875a4b7b3d1ad8521b0de151b9e1e63)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 days ago[3.15] gh-148825: Fix build error if specialization is disabled (GH-148826) (#152206)
Miss Islington (bot) [Thu, 25 Jun 2026 14:36:04 +0000 (16:36 +0200)] 
[3.15] gh-148825: Fix build error if specialization is disabled (GH-148826) (#152206)

gh-148825: Fix build error if specialization is disabled (GH-148826)
(cherry picked from commit 56ae0b8e4f78c612f7b3095cd1c936e54ee0db5f)

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
5 days ago[3.15] Don't require `_testcapi` for `test_code` (GH-152185) (#152202)
Miss Islington (bot) [Thu, 25 Jun 2026 14:02:49 +0000 (16:02 +0200)] 
[3.15] Don't require `_testcapi` for `test_code` (GH-152185) (#152202)

(cherry picked from commit 11c241e1a8a71b5f25a304b1f428467b746f5d43)

Co-authored-by: Shahar Naveh <50263213+ShaharNaveh@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
5 days ago[3.15] gh-152168: Don't skip `test_bigmem` if `_testcapi` is missing (GH-152171)...
Miss Islington (bot) [Thu, 25 Jun 2026 13:58:50 +0000 (15:58 +0200)] 
[3.15] gh-152168: Don't skip `test_bigmem` if `_testcapi` is missing (GH-152171) (#152198)

(cherry picked from commit 6a82832a0bd12ff6154fcfcccc3b7b5644eab0e8)

Co-authored-by: Shahar Naveh <50263213+ShaharNaveh@users.noreply.github.com>
5 days ago[3.15] gh-151929: Get uptime on BSD/macOS in pythoninfo (GH-152189) (#152196)
Miss Islington (bot) [Thu, 25 Jun 2026 13:41:18 +0000 (15:41 +0200)] 
[3.15] gh-151929: Get uptime on BSD/macOS in pythoninfo (GH-152189) (#152196)

gh-151929: Get uptime on BSD/macOS in pythoninfo (GH-152189)

* Check sysctlbyname() function and sys/sysctl.h header in
  configure.
* Add _testcapi.uptime_bsd() function.
(cherry picked from commit b6d89edc4a13a71734ae1f1e386122bf62d68ed8)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 days ago[3.15] gh-127802: Schedule removal of legacy tkinter variable trace methods in 3...
Miss Islington (bot) [Thu, 25 Jun 2026 12:34:47 +0000 (14:34 +0200)] 
[3.15] gh-127802: Schedule removal of legacy tkinter variable trace methods in 3.17 (GH-152012) (GH-152186)

The tkinter.Variable methods trace_variable(), trace(), trace_vdelete()
and trace_vinfo(), deprecated since Python 3.14, are now scheduled for
removal in Python 3.17.
(cherry picked from commit deeae2ac07a5aaa6fc1025a048592afe3516e57e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
5 days ago[3.15] gh-151929: Get machine ID and uptime on Windows in pythoninfo (#152146) (...
Victor Stinner [Thu, 25 Jun 2026 12:34:16 +0000 (14:34 +0200)] 
[3.15] gh-151929: Get machine ID and uptime on Windows in pythoninfo (#152146) (#152187)

gh-151929: Get machine ID and uptime on Windows in pythoninfo (#152146)

* Replace "linux." prefix with "system." in pythoninfo.
* Add _winapi.GetTickCount64() function.

(cherry picked from commit f9910519af8beecba7d65e0348f48fb70b9a31c8)

5 days ago[3.15] gh-151678: Add tests for ttk Menubutton and OptionMenu widget options (GH...
Miss Islington (bot) [Thu, 25 Jun 2026 12:10:18 +0000 (14:10 +0200)] 
[3.15] gh-151678: Add tests for ttk Menubutton and OptionMenu widget options (GH-151960) (GH-151963)

Decorate ttk.MenubuttonTest with add_configure_tests() and make
ttk.OptionMenuTest inherit it to cover the standard widget options.
(cherry picked from commit ce147129c183b934800b539c9a85b7d6bf44ae5d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
5 days ago[3.15] gh-151126: Add missing `PyErr_NoMemory` in `_winapi.c` (GH-151588) (#152182)
Miss Islington (bot) [Thu, 25 Jun 2026 11:15:27 +0000 (13:15 +0200)] 
[3.15] gh-151126: Add missing `PyErr_NoMemory` in `_winapi.c` (GH-151588) (#152182)

gh-151126: Add missing `PyErr_NoMemory` in `_winapi.c` (GH-151588)
(cherry picked from commit a580029f1168cf87707b157865b6a6b89a77b7ad)

Co-authored-by: Ivy Xu <fakeshadow1337@gmail.com>
Co-authored-by: sobolevn <mail@sobolevn.me>
5 days ago[3.15] gh-151126: Fix missing memory errors in `_interpretersmodule.c` (GH-151624...
Miss Islington (bot) [Thu, 25 Jun 2026 10:35:45 +0000 (12:35 +0200)] 
[3.15] gh-151126: Fix missing memory errors in `_interpretersmodule.c` (GH-151624) (#152169)

gh-151126: Fix missing memory errors in `_interpretersmodule.c` (GH-151624)
(cherry picked from commit 05225aa06a4c5eceaa2eb29e99c2d44d2dbfe295)

Co-authored-by: stevens <lipengyu@kylinos.cn>
5 days ago[3.15] gh-151126: Fix missing `PyErr_NoMemory` in `testinternalcapi.c` (GH-152177...
Miss Islington (bot) [Thu, 25 Jun 2026 10:19:48 +0000 (12:19 +0200)] 
[3.15] gh-151126: Fix missing `PyErr_NoMemory` in `testinternalcapi.c` (GH-152177) (#152179)

gh-151126: Fix missing `PyErr_NoMemory` in `testinternalcapi.c` (GH-152177)
(cherry picked from commit a0093282ea87e112e3758e6b3eadb8b6b9770569)

Co-authored-by: sobolevn <mail@sobolevn.me>
5 days ago[3.15] gh-152079: Fix `_datetime.fromisoformat()` mishandling a sub-second tz offset...
Miss Islington (bot) [Thu, 25 Jun 2026 09:41:48 +0000 (11:41 +0200)] 
[3.15] gh-152079: Fix `_datetime.fromisoformat()` mishandling a sub-second tz offset (GH-152087) (#152174)

(cherry picked from commit 6f9c76d8d86997012acfa09fed05396aa9349bbf)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
5 days ago[3.15] gh-151763: Fix crash in `_interpqueues.create` on `MemoryError` (GH-152131...
Miss Islington (bot) [Thu, 25 Jun 2026 07:32:24 +0000 (09:32 +0200)] 
[3.15] gh-151763: Fix crash in `_interpqueues.create` on `MemoryError` (GH-152131) (#152158)

gh-151763: Fix crash in `_interpqueues.create` on `MemoryError` (GH-152131)
(cherry picked from commit a6c2d4ae3bd744610e1a8b70396effdabca1593d)

Co-authored-by: sobolevn <mail@sobolevn.me>
5 days ago[3.15] gh-151929: Get boot ID, machine ID and uptime in test.pythoninfo (GH-152127...
Miss Islington (bot) [Thu, 25 Jun 2026 00:00:32 +0000 (02:00 +0200)] 
[3.15] gh-151929: Get boot ID, machine ID and uptime in test.pythoninfo (GH-152127) (#152134)

gh-151929: Get boot ID, machine ID and uptime in test.pythoninfo (GH-152127)
(cherry picked from commit 3db3bba4d1feb3a9fbfcd368d470db17b5336dc4)

GHA: Run test.pythoninfo on the "Cross build Linux" job.

Co-authored-by: Victor Stinner <vstinner@python.org>
5 days ago[3.15] gh-105895: Add `match` and `case` doc to `help()` (GH-152113) (#152126)
Miss Islington (bot) [Wed, 24 Jun 2026 22:02:21 +0000 (00:02 +0200)] 
[3.15] gh-105895: Add `match` and `case` doc to `help()` (GH-152113) (#152126)

gh-105895: Add `match` and `case` doc to `help()` (GH-152113)
(cherry picked from commit 1d55b3778c1c31549c5f914fcc451db4a3dcc501)

Co-authored-by: sobolevn <mail@sobolevn.me>
Co-authored-by: dzherb <zherbin.dima@yandex.ru>
Co-authored-by: Stan Ulbrych <stan@python.org>
6 days ago[3.15] gh-86726: Improve the structure of the tkinter reference (GH-152109 (GH-152111)
Serhiy Storchaka [Wed, 24 Jun 2026 18:41:27 +0000 (21:41 +0300)] 
[3.15] gh-86726: Improve the structure of the tkinter reference (GH-152109 (GH-152111)

Add short group intros before each cluster of Misc methods.
Group the Tk and Toplevel classes in a new "Toplevel widgets" section, move
the Tcl() function to the module-level functions, and move the "File
handlers" section into the reference.
(cherry picked from commit c7faa6936e17630ec26d4e0438ae9b95561b7151)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
6 days ago[3.15] Re-raise unexpected exceptions instead of swallowing them in various tests...
Miss Islington (bot) [Wed, 24 Jun 2026 16:53:16 +0000 (18:53 +0200)] 
[3.15] Re-raise unexpected exceptions instead of swallowing them in various tests (GH-152019) (#152102)

(cherry picked from commit 6c3da17d1f333f6bd4c07d11e2e304159d550822)

Co-authored-by: An Long <aisk@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
6 days ago[3.15] gh-151763: Fix NULL dereference in `os._path_normpath()` under OOM (GH-151779...
Miss Islington (bot) [Wed, 24 Jun 2026 16:25:28 +0000 (18:25 +0200)] 
[3.15] gh-151763: Fix NULL dereference in `os._path_normpath()` under OOM (GH-151779) (#152096)

(cherry picked from commit ce8b81fff4094bd0cfb0c57193135bfc904c0ca2)

Co-authored-by: Zain Nadeem <zainnadeemzainnadeem80@gmail.com>
6 days ago[3.15] gh-90949: Fix copy-paste typo in pyexpat capsule API initialization (GH-151147...
Miss Islington (bot) [Wed, 24 Jun 2026 14:40:44 +0000 (16:40 +0200)] 
[3.15] gh-90949: Fix copy-paste typo in pyexpat capsule API initialization (GH-151147) (#152088)

(cherry picked from commit 15696a69d672567176de3230b11dfa568e8b4ef0)

Co-authored-by: Stan Ulbrych <stan@python.org>
6 days ago[3.15] gh-151496: Use process groups in TraceBackend in test_dtrace (GH-152039) ...
Miss Islington (bot) [Wed, 24 Jun 2026 14:15:43 +0000 (16:15 +0200)] 
[3.15] gh-151496: Use process groups in TraceBackend in test_dtrace (GH-152039) (#152082)

gh-151496: Use process groups in TraceBackend in test_dtrace (GH-152039)

Run the generic DTrace/SystemTap commands in a new process group and
terminate the whole group on timeout.

This prevents a forked tracer child from keeping stdout/stderr pipes
open after the direct tracer process is killed.
(cherry picked from commit 1785f4b35f899704df0be54cba3776906186b2b1)

Co-authored-by: stratakis <cstratak@redhat.com>
6 days ago[3.15] gh-152060: Fix `_pydatetime.fromisoformat()` raising `AssertionError` on inval...
Miss Islington (bot) [Wed, 24 Jun 2026 14:10:54 +0000 (16:10 +0200)] 
[3.15] gh-152060: Fix `_pydatetime.fromisoformat()` raising `AssertionError` on invalid lengths (GH-152061) (#152081)

(cherry picked from commit ff781d52d451db56e154aac35ae7f2c41b1695a4)

Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
6 days ago[3.15] `valgrind-python.supp`: Update suppression for readline leaks (GH-151783)...
Miss Islington (bot) [Wed, 24 Jun 2026 14:02:44 +0000 (16:02 +0200)] 
[3.15] `valgrind-python.supp`: Update suppression for readline leaks (GH-151783) (#152084)

`valgrind-python.supp`: Update suppression for readline leaks (GH-151783)
(cherry picked from commit 28b63d301dcfb7ecff86903094b9351d92d9c31e)

Co-authored-by: Stan Ulbrych <stan@python.org>
6 days ago[3.15] gh-152020: Fix `asyncio.all_tasks()` loosing eager tasks on FT-build (GH-15202...
Miss Islington (bot) [Wed, 24 Jun 2026 12:47:07 +0000 (14:47 +0200)] 
[3.15] gh-152020: Fix `asyncio.all_tasks()` loosing eager tasks on FT-build (GH-152022) (#152076)

gh-152020: Fix `asyncio.all_tasks()` loosing eager tasks on FT-build (GH-152022)
(cherry picked from commit ad2cabfccb539dd23f9a17907bd63913013cb1e3)

Co-authored-by: Timofei <128279579+deadlovelll@users.noreply.github.com>
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
6 days ago[3.15] gh-151763: Fix possible crash on `CodeType` deallocation (GH-152034) (#152069)
Miss Islington (bot) [Wed, 24 Jun 2026 12:17:41 +0000 (14:17 +0200)] 
[3.15] gh-151763: Fix possible crash on `CodeType` deallocation (GH-152034) (#152069)

gh-151763: Fix possible crash on `CodeType` deallocation (GH-152034)
(cherry picked from commit 22dd5b5b374c8eb4def7d55bb8de5928e345c73a)

Co-authored-by: sobolevn <mail@sobolevn.me>
6 days ago[3.15] gh-151814: Fix unbounded memory growth from repeated empty writes to `io.TextI...
Miss Islington (bot) [Wed, 24 Jun 2026 12:14:01 +0000 (14:14 +0200)] 
[3.15] gh-151814: Fix unbounded memory growth from repeated empty writes to `io.TextIOWrapper` (GH-151817)

(cherry picked from commit c61307222e18bfa06691d53e3ad336c46f432de0)

Co-authored-by: Stan Ulbrych <stan@python.org>
6 days ago[3.15] gh-140550: Docs additions & fixups for PEP 793 (GH-151661) (GH-152064)
Miss Islington (bot) [Wed, 24 Jun 2026 12:00:28 +0000 (14:00 +0200)] 
[3.15] gh-140550: Docs additions & fixups for PEP 793 (GH-151661) (GH-152064)

gh-140550: Docs additions & fixups for PEP 793 (GH-151661)
(cherry picked from commit 763cc2209d69bd0bf41cbb9bded5a48ee23ca6de)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
6 days ago[3.15] Capitalize first word in `unittest.mock.assert_*` docs and docstrings (GH...
Miss Islington (bot) [Wed, 24 Jun 2026 10:35:55 +0000 (12:35 +0200)] 
[3.15] Capitalize first word in `unittest.mock.assert_*` docs and docstrings (GH-151951) (#152059)

(cherry picked from commit a46db4f8ba4aa84e0fc5b6986c2388cae2e873ae)

Co-authored-by: Hans Yu <github@shauny.anonaddy.me>
6 days ago[3.15] gh-143927: Normalize all line endings (CR, CRLF, and LF) in configparser ...
Miss Islington (bot) [Wed, 24 Jun 2026 09:35:18 +0000 (11:35 +0200)] 
[3.15] gh-143927: Normalize all line endings (CR, CRLF, and LF) in configparser (GH-143929) (GH-152002)

gh-143927: Normalize all line endings (CR, CRLF, and LF) in configparser (GH-143929)
(cherry picked from commit 5858e42c539dac8394636a6e9b30472b8994851f)

Co-authored-by: Seth Larson <seth@python.org>
6 days ago[3.15] GH-150605: use windows-2025 in GitHub Actions (GH-150606) (#151939)
Miss Islington (bot) [Wed, 24 Jun 2026 09:22:39 +0000 (11:22 +0200)] 
[3.15] GH-150605: use windows-2025 in GitHub Actions (GH-150606) (#151939)

Co-authored-by: Chris Eibl <138194463+chris-eibl@users.noreply.github.com>
6 days ago[3.15] gh-151497: Avoid huge pre-allocation for oversized tarfile extended headers...
Miss Islington (bot) [Wed, 24 Jun 2026 09:21:41 +0000 (11:21 +0200)] 
[3.15] gh-151497: Avoid huge pre-allocation for oversized tarfile extended headers (GH-151498) (GH-151977)

gh-151497: Avoid huge pre-allocation for oversized tarfile extended headers (GH-151498)

tarfile reads a member's extended header (a GNU long name/link or a pax
header) with a single read sized by the header's size field:

    buf = tarfile.fileobj.read(self._block(self.size))

The size is taken from the archive and is not validated, so a ~512-byte
crafted file can claim several gigabytes (or, via base-256 encoding, far
more) and make read() pre-allocate that much memory -- on open/iterate,
before any extraction filter runs.

Read the extended-header data in bounded chunks instead, so an oversized
or truncated header can no longer force a huge allocation. The bytes
returned for valid archives are unchanged.
(cherry picked from commit da99711d37dba3413af05207ea8b12cb06041c0f)

Co-authored-by: Shardul Deshpande <iamsharduld@users.noreply.github.com>
6 days ago[3.15] gh-87904: Document curses classes (GH-151643) (GH-152048)
Miss Islington (bot) [Wed, 24 Jun 2026 07:19:09 +0000 (09:19 +0200)] 
[3.15] gh-87904: Document curses classes (GH-151643) (GH-152048)

Add docstrings for the curses.window, curses.error, curses.panel.panel
and curses.panel.error classes.  Document the panel class and its error
exception in curses.panel.rst, using the real lowercase panel name.
(cherry picked from commit 560ff8e2021d818555884622f6865f4a0d60756f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 days ago[3.15] gh-84008: Document that the LC_NUMERIC locale affects tkinter numeric widgets...
Miss Islington (bot) [Wed, 24 Jun 2026 06:38:52 +0000 (08:38 +0200)] 
[3.15] gh-84008: Document that the LC_NUMERIC locale affects tkinter numeric widgets (GH-152008) (GH-152049)

Spinbox, Scale and ttk.Spinbox format floating-point values according to
the LC_NUMERIC locale, but such values are always parsed with a period, so
a comma-decimal locale breaks DoubleVar.get().
(cherry picked from commit ee78d4323c174d0281fef5e04e965cda4c46eeb7)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
6 days ago[3.15] gh-126219: Fix crash in tkinter.Tk with non-BMP className on Tcl/Tk 8.x (GH...
Miss Islington (bot) [Wed, 24 Jun 2026 06:32:05 +0000 (08:32 +0200)] 
[3.15] gh-126219: Fix crash in tkinter.Tk with non-BMP className on Tcl/Tk 8.x (GH-151980) (GH-152045)

Tcl 8.x crashes when title-casing a non-BMP character during Tk
initialization, so such a className is now rejected with a ValueError.
(cherry picked from commit 124c7cd91be8cff76d1eec0adef65991c23c4419)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
6 days ago[3.15] gh-150994: _colorize: modernize typing imports (GH-151018) (#152041)
Miss Islington (bot) [Wed, 24 Jun 2026 03:27:00 +0000 (05:27 +0200)] 
[3.15] gh-150994: _colorize: modernize typing imports (GH-151018) (#152041)

gh-150994: _colorize: modernize typing imports (GH-151018)
(cherry picked from commit fcda96fbf399d069d11f7e874352ad03273cf0b7)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
6 days ago[3.15] gh-151842: Fix crash upon OOM in `_interpreters.capture_exception` (GH-151843...
Miss Islington (bot) [Tue, 23 Jun 2026 20:58:10 +0000 (22:58 +0200)] 
[3.15] gh-151842: Fix crash upon OOM in `_interpreters.capture_exception` (GH-151843) (GH-152031)

(cherry picked from commit 5e0747db2f5a063657a117e88b58a20624c848d1)

Co-authored-by: Amrutha <amruthamodela06@gmail.com>
7 days ago[3.15] gh-151596: Add missing argument 'size' to pure-Python implementation of `TextI...
Miss Islington (bot) [Tue, 23 Jun 2026 16:41:17 +0000 (18:41 +0200)] 
[3.15] gh-151596: Add missing argument 'size' to pure-Python implementation of `TextIOBase.readline` (GH-151679) (GH-151870)

(cherry picked from commit 30aeeb375b8f6c1f0eec95f7af60d3d4afa37f33)

Co-authored-by: saber-bit <bryanventura0324@gmail.com>
7 days ago[3.15] gh-151126: Add missing `PyErr_NoMemory()` in `type_from_slots_or_spec` (GH...
Miss Islington (bot) [Tue, 23 Jun 2026 15:15:00 +0000 (17:15 +0200)] 
[3.15] gh-151126: Add missing `PyErr_NoMemory()` in `type_from_slots_or_spec` (GH-151582) (#152016)

(cherry picked from commit 7928a8b730b0334c9f97c2144ab00fe0d88f1e97)

Co-authored-by: Ivy Xu <fakeshadow1337@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
7 days ago[3.15] gh-151773: Fix NULL dereference in `PyContextVar_Set` (GH-151836) (#152009)
Miss Islington (bot) [Tue, 23 Jun 2026 14:46:05 +0000 (16:46 +0200)] 
[3.15] gh-151773: Fix NULL dereference in `PyContextVar_Set` (GH-151836) (#152009)

gh-151773: Fix NULL dereference in `PyContextVar_Set` (GH-151836)
(cherry picked from commit d35b1719a58c8682a22ef698e070e97661af8d14)

Co-authored-by: dev <b.chouksey27@gmail.com>
7 days ago[3.15] gh-151558: Fix symlink escape via `tarfile` hardlink-extraction fallback ...
Miss Islington (bot) [Tue, 23 Jun 2026 13:58:57 +0000 (15:58 +0200)] 
[3.15] gh-151558: Fix symlink escape via `tarfile` hardlink-extraction fallback (GH-151559) (#151997)

(cherry picked from commit 27dd970bf6b17ebca7c8ed486a40ab043ed7af8f)

Co-authored-by: Stan Ulbrych <stan@python.org>
7 days ago[3.15] gh-151981: Make `tarfile._Stream.seek` break at EOF (GH-151982) (#151991)
Miss Islington (bot) [Tue, 23 Jun 2026 13:46:28 +0000 (15:46 +0200)] 
[3.15] gh-151981: Make `tarfile._Stream.seek` break at EOF (GH-151982) (#151991)

(cherry picked from commit f50bf13566189c8d0ce5a814f33eff3d89951896)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
7 days agoMerge branch '3.15' of https://github.com/python/cpython into 3.15
Hugo van Kemenade [Tue, 23 Jun 2026 13:28:14 +0000 (16:28 +0300)] 
Merge branch '3.15' of https://github.com/python/cpython into 3.15

7 days agoPost 3.15.0b3
Hugo van Kemenade [Tue, 23 Jun 2026 13:25:59 +0000 (16:25 +0300)] 
Post 3.15.0b3

7 days ago[3.15] gh-151556: Show example CSV file content in the `csv` module docs (GH-151563)
Miss Islington (bot) [Tue, 23 Jun 2026 12:09:29 +0000 (14:09 +0200)] 
[3.15] gh-151556: Show example CSV file content in the `csv` module docs (GH-151563)

(cherry picked from commit 7915c4a8dd5b047b1e48b127690fb6a202a6e4ca)

Co-authored-by: Lucas <lucasefernandes333@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
7 days agoPython 3.15.0b3 v3.15.0b3
Hugo van Kemenade [Tue, 23 Jun 2026 09:35:40 +0000 (12:35 +0300)] 
Python 3.15.0b3

7 days ago[3.15] gh-151905: fix memory error handling in PyFrame_GetBack (GH-151906) (#151919)
Miss Islington (bot) [Tue, 23 Jun 2026 06:28:59 +0000 (08:28 +0200)] 
[3.15] gh-151905: fix memory error handling in PyFrame_GetBack (GH-151906) (#151919)

Co-authored-by: Prakash Sellathurai <prakashsellathurai@gmail.com>
7 days ago[3.15] gh-75666: Fix a reference leak in tkinter event bindings (GH-151808) (GH-151958)
Miss Islington (bot) [Tue, 23 Jun 2026 04:26:53 +0000 (06:26 +0200)] 
[3.15] gh-75666: Fix a reference leak in tkinter event bindings (GH-151808) (GH-151958)

The Tcl commands created for event callbacks are now deleted when a
binding is replaced or unbound, instead of being leaked.
(cherry picked from commit 3f09a175ad022ca7ccdbb8583a0c137d493533ef)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
7 days ago[3.15] gh-151722: Defer GC tracking of frozendict to end of construction (gh-151740...
Miss Islington (bot) [Tue, 23 Jun 2026 00:13:20 +0000 (02:13 +0200)] 
[3.15] gh-151722: Defer GC tracking of frozendict to end of construction (gh-151740) (gh-151954)

gh-151722: Defer GC tracking of frozendict to end of construction (gh-151740)
(cherry picked from commit 6920036f287480f7d39d6a4005803aeac27aff3f)

Co-authored-by: Donghee Na <donghee.na@python.org>
7 days ago[3.15] gh-62480: De-personalize docs on using the C API (GH-151784) (#151936)
Miss Islington (bot) [Mon, 22 Jun 2026 20:09:28 +0000 (22:09 +0200)] 
[3.15] gh-62480: De-personalize docs on using the C API (GH-151784) (#151936)

(cherry picked from commit 1c5a11018ad605072b2efac67f3ca87b41b622c6)

Co-authored-by: Rafael Weingartner-Ortner <38643099+RafaelWO@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
8 days ago[3.15] gh-86726: Document tkinter method-name conflicts (GH-151917) (GH-151926)
Miss Islington (bot) [Mon, 22 Jun 2026 12:42:45 +0000 (14:42 +0200)] 
[3.15] gh-86726: Document tkinter method-name conflicts (GH-151917) (GH-151926)

Document where widget methods shadow inherited Misc, geometry-manager and
Wm methods, correct the inaccurate "size/bbox is an alias of
grid_size/grid_bbox" claims, and add "# overrides X" comments at the
definitions.

Also document the geometry-manager ambiguity: the short names forget, info,
slaves, content and propagate are defined by Pack, Place and Grid but
resolve to the pack variant.

Cross-reference the window-manager methods grid, forget and state with the
same-named grid geometry manager, Pack.forget and ttk.Widget.state.

(cherry picked from commit 4de5683f213a862c23cf8d46e3d797986e663025)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>