]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
3 days agogh-153568: Cache repeated identifiers while parsing (#153577)
Pablo Galindo Salgado [Sat, 18 Jul 2026 13:25:39 +0000 (15:25 +0200)] 
gh-153568: Cache repeated identifiers while parsing (#153577)

3 days agogh-153896: Deduplicate unhashable arguments in `typing.Literal` (GH-153914)
Massimiliano Bruni [Sat, 18 Jul 2026 13:16:03 +0000 (15:16 +0200)] 
gh-153896: Deduplicate unhashable arguments in `typing.Literal` (GH-153914)

3 days agogh-153908: Fix data race in `itertools.count.__repr__` (GH-153917)
John [Sat, 18 Jul 2026 13:01:51 +0000 (15:01 +0200)] 
gh-153908: Fix data race in `itertools.count.__repr__` (GH-153917)

3 days agogh-122102: Fix/improve docs of descriptor-related tools in `inspect` (GH-122104)
Jan Kaliszewski [Sat, 18 Jul 2026 13:01:31 +0000 (15:01 +0200)] 
gh-122102: Fix/improve docs of descriptor-related tools in `inspect` (GH-122104)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
3 days agogh-153934: Correct documented paramemeter in `calendar.weekheader` from `n` to `width...
Marta [Sat, 18 Jul 2026 12:46:23 +0000 (14:46 +0200)] 
gh-153934: Correct documented paramemeter in `calendar.weekheader` from `n` to `width` (GH-153942)

3 days agogh-153903: Add a `ctypes` decorator for generating function pointers using annotation...
Peter Bierma [Sat, 18 Jul 2026 12:30:50 +0000 (08:30 -0400)] 
gh-153903: Add a `ctypes` decorator for generating function pointers using annotations (GH-153904)

Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
3 days agogh-153926: Fix documented parameter name for `calendar.calendar` and `calendar.prcal...
Vyron Vasileiadis [Sat, 18 Jul 2026 12:29:23 +0000 (15:29 +0300)] 
gh-153926: Fix documented parameter name for `calendar.calendar` and `calendar.prcal` (#153927)

gh-153926: Fix documented parameter name for calendar.calendar and calendar.prcal

calendar.calendar() and calendar.prcal() are bound methods of the
module's TextCalendar instance, whose first parameter is named theyear,
but the documentation named it year, so the documented keyword raised
TypeError. Update the documentation to match the real signature, which
also matches the sibling month() and prmonth() functions.

3 days agogh-153236: Propagate lazy submodule import errors (#153237)
Pablo Galindo Salgado [Sat, 18 Jul 2026 12:28:43 +0000 (14:28 +0200)] 
gh-153236: Propagate lazy submodule import errors (#153237)

3 days agogh-152433: Windows: implement ``os.cpu_count()`` for UWP (GH-152479)
thexai [Sat, 18 Jul 2026 12:19:03 +0000 (14:19 +0200)] 
gh-152433: Windows: implement ``os.cpu_count()`` for UWP (GH-152479)

3 days agogh-149319: Make `asyncio` REPL respect `-I` and `-E` options (#149405)
Jonathan Dung [Sat, 18 Jul 2026 12:10:37 +0000 (20:10 +0800)] 
gh-149319: Make `asyncio` REPL respect `-I` and `-E` options (#149405)

3 days agoFix duplicated words in "What's new in Python 3.15" documentation (#153922)
Michael Newman [Sat, 18 Jul 2026 11:55:56 +0000 (07:55 -0400)] 
Fix duplicated words in "What's new in Python 3.15" documentation (#153922)

3 days agogh-153808: Replace obsolete 'condition list' verbiage with 'expression list' in eval...
palakkhinvasara [Sat, 18 Jul 2026 11:42:38 +0000 (17:12 +0530)] 
gh-153808: Replace obsolete 'condition list' verbiage with 'expression list' in eval() docs (GH-153811)

3 days agogh-151822: Colorize commands separately in the REPL (#151823)
Bartosz Sławecki [Sat, 18 Jul 2026 11:17:51 +0000 (13:17 +0200)] 
gh-151822: Colorize commands separately in the REPL (#151823)

3 days agoTest `calendar.February` deprecation (#153893)
vjabuilds [Sat, 18 Jul 2026 10:54:10 +0000 (12:54 +0200)] 
Test `calendar.February` deprecation (#153893)

Calendar related tests now check if both deprecated constants surface the proper warnings.

* extended `test_deprecation_warning` to check `constants.February` as well

Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
3 days agoFix punctuation in `Doc/library/concurrent.interpreters.rst` (GH-153894)
Raúl Santos Quirós [Sat, 18 Jul 2026 10:38:45 +0000 (12:38 +0200)] 
Fix punctuation in `Doc/library/concurrent.interpreters.rst` (GH-153894)

3 days agogh-153899: Fix documented parameter names for `filecmp.cmpfiles` (#153900)
Vyron Vasileiadis [Sat, 18 Jul 2026 10:34:50 +0000 (13:34 +0300)] 
gh-153899: Fix documented parameter names for `filecmp.cmpfiles` (#153900)

Update the `filecmp.cmpfiles()` docs to match its actual signature.

3 days agogh-147950: Additionally bind `yank-arg` to `M-_` in pyrepl (#147949)
Jonathan Oberländer [Sat, 18 Jul 2026 09:56:14 +0000 (11:56 +0200)] 
gh-147950: Additionally bind `yank-arg` to `M-_` in pyrepl (#147949)

3 days agoAdd versionadded tag to wave module getformat functions (#153897)
Elias Dorneles [Sat, 18 Jul 2026 09:30:40 +0000 (11:30 +0200)] 
Add versionadded tag to wave module getformat functions (#153897)

3 days agogh-104533: Add a dataclass-like decorator for `ctypes` structures (GH-153781)
Peter Bierma [Sat, 18 Jul 2026 08:48:16 +0000 (04:48 -0400)] 
gh-104533: Add a dataclass-like decorator for `ctypes` structures (GH-153781)

Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
3 days agoFix duplicated words in the 'Coroutines and tasks' documentation (#153880)
Michael Newman [Sat, 18 Jul 2026 07:22:45 +0000 (03:22 -0400)] 
Fix duplicated words in the 'Coroutines and tasks' documentation (#153880)

3 days agogh-150583: Fix zstd compression level with digested ZstdDict (#150586)
Rogdham [Sat, 18 Jul 2026 04:15:39 +0000 (06:15 +0200)] 
gh-150583: Fix zstd compression level with digested ZstdDict (#150586)

3 days agogh-153872: Update macOS installer ReadMe files for 3.15. (#153875)
Ned Deily [Fri, 17 Jul 2026 23:43:38 +0000 (01:43 +0200)] 
gh-153872: Update macOS installer ReadMe files for 3.15. (#153875)

4 days agogh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (#153868)
Ned Deily [Fri, 17 Jul 2026 22:14:40 +0000 (00:14 +0200)] 
gh-124111: Update macOS installer to use Tcl/Tk 9.0.4. (#153868)

4 days agoSkip curses tests when scr_dump()/is_keypad() are unavailable (GH-153866)
Serhiy Storchaka [Fri, 17 Jul 2026 21:59:27 +0000 (00:59 +0300)] 
Skip curses tests when scr_dump()/is_keypad() are unavailable (GH-153866)

test_scr_dump() and test_state_getters() errored instead of skipping on
builds without scr_dump(), is_keypad() or is_leaveok() (e.g. some narrow
ncurses, NetBSD, PDCurses).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agogh-152023: Update macOS installer builds to SQLite 3.53.3 (#153867)
Ned Deily [Fri, 17 Jul 2026 21:48:26 +0000 (23:48 +0200)] 
gh-152023: Update macOS installer builds to SQLite 3.53.3 (#153867)

Enable median() and percentile() functions.

4 days agogh-153853: Fix parameter name of calendar.setfirstweekday() in docs (#153851)
Ibrahim Shaqqou [Fri, 17 Jul 2026 18:51:37 +0000 (14:51 -0400)] 
gh-153853: Fix parameter name of calendar.setfirstweekday() in docs (#153851)

4 days agogh-153844: Support AST input in symtable.symtable() (GH-153845)
Serhiy Storchaka [Fri, 17 Jul 2026 16:17:08 +0000 (19:17 +0300)] 
gh-153844: Support AST input in symtable.symtable() (GH-153845)

The builtin compile() accepts an AST object since Python 2.6, but
symtable.symtable() only accepted str and bytes, although the
implementation builds the symbol table from an AST anyway.  Accept an
AST object as well: convert it for the requested compile type, validate
it, honor future statements found in the tree, and build the symbol
table the same way the compiler does.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
4 days agoShut down leaked executors in `test_interpreter_pool` (#153780)
Stan Ulbrych [Fri, 17 Jul 2026 15:19:48 +0000 (17:19 +0200)] 
Shut down leaked executors in `test_interpreter_pool` (#153780)

4 days agogh-153395: Accept curses.complexchar in curses.ascii predicates and conversions ...
Serhiy Storchaka [Fri, 17 Jul 2026 08:10:21 +0000 (11:10 +0300)] 
gh-153395: Accept curses.complexchar in curses.ascii predicates and conversions (GH-153396)

The curses.ascii predicates and the ctrl() and unctrl() functions now accept
a curses.complexchar, classifying it by its single character.  ctrl() now
returns a non-ASCII argument unchanged instead of masking it to a control
character.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4 days agogh-153521: Support structured arguments in imaplib commands (GH-153522)
Serhiy Storchaka [Fri, 17 Jul 2026 08:06:45 +0000 (11:06 +0300)] 
gh-153521: Support structured arguments in imaplib commands (GH-153522)

Command methods now accept a structured *message_set* (an integer, or a
sequence of integers, (start, stop) ranges and range objects) and lists of
flags or other atoms in place of preformatted parenthesized strings.

The search, fetch, sort, thread and uid methods gain a keyword-only *params*
argument that substitutes and quotes '?' placeholders in their value-bearing
arguments, in the manner of sqlite3 parameter substitution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: R. David Murray <rdmurray@bitdance.com>
4 days agogh-85943: Fix BytesWarning in the struct format cache under -bb (GH-153627)
Serhiy Storchaka [Fri, 17 Jul 2026 07:49:11 +0000 (10:49 +0300)] 
gh-85943: Fix BytesWarning in the struct format cache under -bb (GH-153627)

Normalize bytes format strings to str before using them as the cache key,
so that equal str and bytes formats no longer collide and get compared.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4 days agogh-152384: pixi-packages: use `flags` to define variants (#152385)
Lucas Colley [Fri, 17 Jul 2026 06:32:29 +0000 (08:32 +0200)] 
gh-152384: pixi-packages: use `flags` to define variants (#152385)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
4 days agogh-153404: Silently ignore non-decimal digits in robots.txt Crawl-delay and Request...
tonghuaroot (童话) [Fri, 17 Jul 2026 05:54:46 +0000 (13:54 +0800)] 
gh-153404: Silently ignore non-decimal digits in robots.txt Crawl-delay and Request-rate (GH-153405)

str.isdigit() returned True for non-decimal Unicode digits such as
U+00B2 SUPERSCRIPT TWO, which int() then rejected with ValueError.

5 days agogh-149162: Use _Py_LOCK_DONT_DETACH in intern_common (gh-149164)
Sam Gross [Thu, 16 Jul 2026 17:37:00 +0000 (10:37 -0700)] 
gh-149162: Use _Py_LOCK_DONT_DETACH in intern_common (gh-149164)

Avoids potential deadlocks with C++ static local initialization in
extensions that call PyUnicode_InternFromString during one-time
initialization.

5 days agogh-153761: Fix asyncio sock_accept() dropping a connection when cancelled (#153762)
Timofei [Thu, 16 Jul 2026 06:05:25 +0000 (09:05 +0300)] 
gh-153761: Fix asyncio sock_accept() dropping a connection when cancelled (#153762)

6 days agogh-153630: Add `str.remove{prefix,suffix}()` to the `str` method summary (#153629)
darida12321 [Wed, 15 Jul 2026 18:05:17 +0000 (19:05 +0100)] 
gh-153630: Add `str.remove{prefix,suffix}()` to the `str` method summary (#153629)

Co-authored-by: Stan Ulbrych <stan@python.org>
6 days agogh-150077: Fix fileobj leak in `tarfile.TarFile.zstopen` on `BaseException` (GH-150080)
stevens [Wed, 15 Jul 2026 17:53:23 +0000 (01:53 +0800)] 
gh-150077: Fix fileobj leak in `tarfile.TarFile.zstopen` on `BaseException` (GH-150080)

This is one of those times when a bare `except` is appropriate.

6 days agogh-153550: Modernize the older prose sections of the tkinter documentation (GH-153647)
Serhiy Storchaka [Wed, 15 Jul 2026 16:19:00 +0000 (19:19 +0300)] 
gh-153550: Modernize the older prose sections of the tkinter documentation (GH-153647)

Refresh the narrative "Tkinter life preserver" and "Handy reference"
sections to match the overhauled reference (gh-86726 and gh-153549).

* Rework "The packer" into a general "Geometry management" section
  covering grid, pack and place, and cross-link it with the Grid, Pack
  and Place reference classes.
* Rework "The window manager" and "Coupling widget variables", replacing
  the dated App(Frame) examples with direct Tk() and ttk examples.
* Replace page-number citations to Ousterhout's book with links to the
  relevant Tk man pages.
* Modernize the tkinter.ttk front matter and its Tcl/Tk links, and add
  cross-references between the two documents.
* Reconcile the "Packer options" and "Tk option data types" lists with
  the reference, and fill in the empty Entry index list.
* Fix the malformed target-selection list in tkinter.dnd.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 days agogh-150452: use PyMutex in socket module (#150453)
Thomas Kowalski [Wed, 15 Jul 2026 10:39:28 +0000 (12:39 +0200)] 
gh-150452: use PyMutex in socket module (#150453)

6 days agogh-150952: Fix incorrect sock_sendto docstring (#150953)
Timofei [Wed, 15 Jul 2026 08:44:30 +0000 (11:44 +0300)] 
gh-150952: Fix incorrect sock_sendto docstring (#150953)

6 days agogh-153716: Harden ttk/tkinter GUI tests against display scaling (GH-153717)
Serhiy Storchaka [Wed, 15 Jul 2026 03:06:24 +0000 (06:06 +0300)] 
gh-153716: Harden ttk/tkinter GUI tests against display scaling (GH-153717)

Compute probe coordinates from each widget's own realized geometry
instead of hardcoding pixels such as (5, 5) or width - 5, which land on
a different element, or miss it entirely, at a high display scaling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6 days agoRemove duplicate button_ok code in idlelib.textview (#153733)
Terry Jan Reedy [Wed, 15 Jul 2026 03:03:35 +0000 (23:03 -0400)] 
Remove duplicate button_ok code in idlelib.textview (#153733)

6 days agogh-153313: Run Emscripten PyRepl test in CI (#153701)
Hood Chatham [Wed, 15 Jul 2026 01:04:30 +0000 (03:04 +0200)] 
gh-153313: Run Emscripten PyRepl test in CI (#153701)

Adds the PyRepl test to the Github CI configuration for Emscripten.

6 days agogh-102960: Make frames weak-referenceable (#152838)
Łukasz Langa [Tue, 14 Jul 2026 23:58:14 +0000 (01:58 +0200)] 
gh-102960: Make frames weak-referenceable (#152838)

Add an explicit f_weakreflist field to the frame object, following the
same pattern as generators and coroutines, including free-threading-safe
weakref clearing via FT_CLEAR_WEAKREFS() in frame_dealloc().

Py_TPFLAGS_MANAGED_WEAKREF is not used because static builtin types
must not carry it (see init_static_type()) and the pre-header would
cost two extra words per frame instead of one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6 days agogh-153695: Fix sqlite3.Row.__hash__ with an unhashable value (#153696)
tonghuaroot (童话) [Tue, 14 Jul 2026 22:23:58 +0000 (06:23 +0800)] 
gh-153695: Fix sqlite3.Row.__hash__ with an unhashable value (#153696)

7 days agogh-152433: Allow posixmodule.c to build for Windows UWP (GH-152998)
thexai [Tue, 14 Jul 2026 21:35:59 +0000 (23:35 +0200)] 
gh-152433: Allow posixmodule.c to build for Windows UWP (GH-152998)

7 days agogh-148488: Clarify the company/tag separator in the py -V docs (GH-153427)
Serhiy Storchaka [Tue, 14 Jul 2026 21:32:20 +0000 (00:32 +0300)] 
gh-148488: Clarify the company/tag separator in the py -V docs (GH-153427)

7 days agogh-151126: Fix `PyErr_NoMemory` errors in `_ctypes.c` (#152720)
stevens [Tue, 14 Jul 2026 16:48:17 +0000 (00:48 +0800)] 
gh-151126: Fix `PyErr_NoMemory`  errors in `_ctypes.c`  (#152720)

7 days agogh-151912: Fix segfault in `type()` with NULL `tp_new` metaclasses (#151916)
Santhosh .I 🦇 [Tue, 14 Jul 2026 16:19:03 +0000 (21:49 +0530)] 
gh-151912: Fix segfault in `type()` with NULL `tp_new` metaclasses (#151916)

7 days agogh-151907: Avoid creating temporary objects in some list comprehensions (GH-151908)
Peter Bierma [Tue, 14 Jul 2026 15:06:29 +0000 (11:06 -0400)] 
gh-151907: Avoid creating temporary objects in some list comprehensions (GH-151908)

Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
7 days agogh-153313: Work around string decoding bug in emcc 6.0.2 (gh-153698)
Hood Chatham [Tue, 14 Jul 2026 14:21:39 +0000 (16:21 +0200)] 
gh-153313: Work around string decoding bug in emcc 6.0.2 (gh-153698)

7 days agogh-71086: Document negative offset support in struct.pack_into() and unpack_from...
Serhiy Storchaka [Tue, 14 Jul 2026 13:36:26 +0000 (16:36 +0300)] 
gh-71086: Document negative offset support in struct.pack_into() and unpack_from() (GH-153650)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7 days agogh-49555: Clarify imaplib modified UTF-7 docs and comments (GH-153485)
Serhiy Storchaka [Tue, 14 Jul 2026 12:47:32 +0000 (15:47 +0300)] 
gh-49555: Clarify imaplib modified UTF-7 docs and comments (GH-153485)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
7 days agogh-98078: fix asyncio SSL transports not sending the fatal TLS alerts (#153620)
Kumar Aditya [Tue, 14 Jul 2026 08:15:54 +0000 (13:45 +0530)] 
gh-98078: fix asyncio SSL transports not sending the fatal TLS alerts (#153620)

7 days agogh-71019: document which objects connect_read_pipe/connect_write_pipe accept and...
Kumar Aditya [Tue, 14 Jul 2026 07:31:14 +0000 (13:01 +0530)] 
gh-71019: document which objects connect_read_pipe/connect_write_pipe accept and add tests (#153660)

7 days agogh-153658: Fix sqlite3 iterdump() for table names containing a single quote (#153659)
tonghuaroot (童话) [Tue, 14 Jul 2026 07:16:43 +0000 (15:16 +0800)] 
gh-153658: Fix sqlite3 iterdump() for table names containing a single quote (#153659)

7 days agogh-141510: Update `marshal` module comment with `frozendict` support (#153655)
sobolevn [Tue, 14 Jul 2026 06:50:45 +0000 (09:50 +0300)] 
gh-141510: Update `marshal` module comment with `frozendict` support (#153655)

7 days agogh-153631: Move to `macos-26` runner for iOS (#153632)
Russell Keith-Magee [Mon, 13 Jul 2026 22:38:43 +0000 (06:38 +0800)] 
gh-153631: Move to `macos-26` runner for iOS (#153632)

Switches iOS CI to use the macos-26 runner, and makes a small change to the iOS
build script to improve build stability. xcodebuild doesn't guarantee that the
CoreSimulatorService is running before starting a simulator. If the service
isn't running, xcodebuild reports that no simulators are available, and fails to
start the test app. However, simctl blocks until the simulator is available, and
simctl is used to evaluate the default simulator. So - the iOS build script now
unconditionally determines the default simulator, even if a specific simulator
is requested.

8 days agogh-152405: Do not expose the internal mapping when rich-comparing `MappingProxyType...
sobolevn [Mon, 13 Jul 2026 19:07:51 +0000 (22:07 +0300)] 
gh-152405: Do not expose the internal mapping when rich-comparing `MappingProxyType` objects (#152483)

8 days agogh-89696: Fix `loop.sock_connect` docs on address resolution (#153651)
Kumar Aditya [Mon, 13 Jul 2026 09:46:24 +0000 (15:16 +0530)] 
gh-89696: Fix `loop.sock_connect` docs on address resolution (#153651)

8 days agogh-148286: Fix UB in `ZstdDecompressor.unused_data` when a frame is decompressed...
Stan Ulbrych [Mon, 13 Jul 2026 07:02:02 +0000 (09:02 +0200)] 
gh-148286: Fix UB in `ZstdDecompressor.unused_data` when a frame is decompressed in one call (#153258)

Co-authored-by: Emma Smith <emma@emmatyping.dev>
8 days agogh-153037: Make ZstdFile.__next__ raise io.UnsupportedOperation on non-readable files...
Łukasz [Mon, 13 Jul 2026 02:15:53 +0000 (04:15 +0200)] 
gh-153037: Make ZstdFile.__next__ raise io.UnsupportedOperation on non-readable files (#153045)

Make `ZstdFile.__next__` raise `io.UnsupportedOperation` on non-readable files, consistent with other compression modules.

9 days agogh-153513: Remove obsolete Tk version guards in tkinter tests (GH-153615)
Serhiy Storchaka [Sun, 12 Jul 2026 15:27:10 +0000 (18:27 +0300)] 
gh-153513: Remove obsolete Tk version guards in tkinter tests (GH-153615)

Since gh-153513, _tkinter returns int, float and pixel objects for the
corresponding Tcl object types on all Tk versions.  The tests for the
Text "tabs" and ttk "padding" options therefore no longer need to expect
string tuples on Tk older than 8.6.14.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
9 days agogh-90431: Document cancellation behavior of asyncio.wait() and asyncio.as_completed...
Kumar Aditya [Sun, 12 Jul 2026 10:54:42 +0000 (16:24 +0530)] 
gh-90431: Document cancellation behavior of asyncio.wait() and asyncio.as_completed() (#153616)

9 days agogh-151615: Avoid repeated reschedule in asyncio _accept_connection (#151616)
Timofei [Sun, 12 Jul 2026 10:08:32 +0000 (13:08 +0300)] 
gh-151615: Avoid repeated reschedule in asyncio _accept_connection (#151616)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
10 days agogh-152132: Close stderr_copy in test_api.test_run (#153591)
Victor Stinner [Sat, 11 Jul 2026 21:55:02 +0000 (23:55 +0200)] 
gh-152132: Close stderr_copy in test_api.test_run (#153591)

Previously, the test was leaking a file descriptor.

10 days agogh-102591: Document that urlcleanup resets the global opener (#153562)
Taeknology [Sat, 11 Jul 2026 19:40:09 +0000 (04:40 +0900)] 
gh-102591: Document that urlcleanup resets the global opener (#153562)

Co-authored-by: Senthil Kumaran <senthil@python.org>
10 days agogh-153569: Split tokenizer lexer into focused files (#153585)
Pablo Galindo Salgado [Sat, 11 Jul 2026 18:53:27 +0000 (19:53 +0100)] 
gh-153569: Split tokenizer lexer into focused files (#153585)

10 days agogh-153293: Clear opcode statistics in the live profiler's reset_stats() (#153295)
Łukasz [Sat, 11 Jul 2026 17:44:31 +0000 (19:44 +0200)] 
gh-153293: Clear opcode statistics in the live profiler's reset_stats() (#153295)

10 days agogh-141968: Use `take_bytes` to simplify and remove copy from pyrepl `BaseEventQueue...
Lukas Geiger [Sat, 11 Jul 2026 15:59:37 +0000 (16:59 +0100)] 
gh-141968: Use `take_bytes` to simplify and remove copy from pyrepl `BaseEventQueue` (#149852)

10 days agogh-145694: Update tutorial indentation guidance for PyREPL auto-indent (#145725)
Matt Van Horn [Sat, 11 Jul 2026 15:57:37 +0000 (08:57 -0700)] 
gh-145694: Update tutorial indentation guidance for PyREPL auto-indent (#145725)

The tutorial stated users must manually type tabs/spaces at the interactive
prompt, which is no longer accurate since the PyREPL in Python 3.13+
auto-indents after compound statement headers. Updated to mention both
the default REPL behavior and the basic REPL fallback.

10 days agogh-152431: update StreamReader transport after StreamWriter.start_tls() (#152432)
Xuyang Zhang [Sat, 11 Jul 2026 13:03:23 +0000 (21:03 +0800)] 
gh-152431: update StreamReader transport after StreamWriter.start_tls() (#152432)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
10 days agogh-152614: Add raises to `QueueShutDown` in `asyncio.Queue.put_no_wait` and `asyncio...
Duprat [Sat, 11 Jul 2026 12:29:38 +0000 (14:29 +0200)] 
gh-152614: Add raises to `QueueShutDown` in `asyncio.Queue.put_no_wait` and `asyncio.Queue.get_nowait` documentation methods (#152681)

10 days agogh-86726: Note that the ttk Treeview separator column option needs Tk 9.0 (GH-153556)
Serhiy Storchaka [Sat, 11 Jul 2026 10:10:27 +0000 (13:10 +0300)] 
gh-86726: Note that the ttk Treeview separator column option needs Tk 9.0 (GH-153556)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-126877: Fix the configure check for Tcl/Tk with optimizing compilers (GH-153543)
Serhiy Storchaka [Sat, 11 Jul 2026 09:49:12 +0000 (12:49 +0300)] 
gh-126877: Fix the configure check for Tcl/Tk with optimizing compilers (GH-153543)

The check assigned the addresses of Tcl_Init() and Tk_Init() to unused
variables, which optimizing compilers can eliminate, so it linked even
when the libraries were missing.  Call the functions instead.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-86726: Fix and improve tkinter documentation and docstrings (GH-153549)
Serhiy Storchaka [Sat, 11 Jul 2026 09:46:06 +0000 (12:46 +0300)] 
gh-86726: Fix and improve tkinter documentation and docstrings (GH-153549)

Correct inaccurate return-type and option descriptions in the tkinter
reference, and add missing module and class docstrings.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-88647: Fix tkinter config() docs for synonym options (GH-153544)
Serhiy Storchaka [Sat, 11 Jul 2026 08:13:37 +0000 (11:13 +0300)] 
gh-88647: Fix tkinter config() docs for synonym options (GH-153544)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-151540: Use a selector event loop in the happy-eyeballs tests (#153375)
Jakob Rossi [Sat, 11 Jul 2026 07:17:42 +0000 (03:17 -0400)] 
gh-151540: Use a selector event loop in the happy-eyeballs tests (#153375)

10 days agogh-50409: Modernize tkinter.PanedWindow.paneconfigure() (GH-152399)
Serhiy Storchaka [Sat, 11 Jul 2026 06:01:54 +0000 (09:01 +0300)] 
gh-50409: Modernize tkinter.PanedWindow.paneconfigure() (GH-152399)

Rename the first parameter of paneconfigure() (and its paneconfig alias)
from 'tagOrId' to 'child', for consistency with add(), remove() and
panecget() -- PanedWindow panes are child widgets, not tagged items.  The
old 'tagOrId' keyword still works but raises DeprecationWarning.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-152638: Deprecate tkinter.filedialog.askopenfiles() (GH-152647)
Serhiy Storchaka [Sat, 11 Jul 2026 05:53:02 +0000 (08:53 +0300)] 
gh-152638: Deprecate tkinter.filedialog.askopenfiles() (GH-152647)

Opening several files at once is error-prone, and the returned list
cannot be used in a "with" statement.  Iterate over the names returned
by askopenfilenames() and open them one by one instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-72880: Add tkinter.fontchooser -- interface to the font selection dialog (GH-153255)
Serhiy Storchaka [Sat, 11 Jul 2026 05:50:08 +0000 (08:50 +0300)] 
gh-72880: Add tkinter.fontchooser -- interface to the font selection dialog (GH-153255)

The FontChooser class wraps the "tk fontchooser" command.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-153259: Add tkinter.systray -- system tray icon and notifications (GH-153260)
Serhiy Storchaka [Sat, 11 Jul 2026 05:34:13 +0000 (08:34 +0300)] 
gh-153259: Add tkinter.systray -- system tray icon and notifications (GH-153260)

Add the tkinter.systray module with the SysTrayIcon class wrapping the
"tk systray" command and the notify() function wrapping "tk sysnotify"
(Tk 8.7/9.0 and newer).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-153256: Add tk_print() methods to tkinter Canvas and Text (GH-153257)
Serhiy Storchaka [Sat, 11 Jul 2026 05:12:52 +0000 (08:12 +0300)] 
gh-153256: Add tk_print() methods to tkinter Canvas and Text (GH-153257)

The native print dialog (the "tk print" command, Tk 8.7/9.0+) only
supports canvas and text widgets, so expose it as a method of Canvas
and Text rather than of Misc.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
10 days agogh-153333: Read tkinter profile scripts with the source file's encoding (GH-153334)
tonghuaroot (童话) [Sat, 11 Jul 2026 04:42:35 +0000 (12:42 +0800)] 
gh-153333: Read tkinter profile scripts with the source file's encoding (GH-153334)

Tk.readprofile ran the user's ~/.CLASS.py and ~/.BASE.py scripts with
exec(open(path).read()), decoding them with the locale encoding.  Read
them in binary mode so exec() honors each script's own coding cookie.

11 days agogh-152216: Update bundled expat to 2.8.2 (GH-152234)
Stan Ulbrych [Fri, 10 Jul 2026 18:40:12 +0000 (20:40 +0200)] 
gh-152216: Update bundled expat to 2.8.2 (GH-152234)

* Update bundled expat to 2.8.2
* `make regen-sbom`
* Update download URL
* Drop warnings (yay!)

11 days agogh-153300: Reuse PYCONFIG_SPEC in config_set_global_vars() (#153471)
Victor Stinner [Fri, 10 Jul 2026 17:59:27 +0000 (19:59 +0200)] 
gh-153300: Reuse PYCONFIG_SPEC in config_set_global_vars() (#153471)

No longer hardcode global configuration variables. Use the
PyConfigGlobalVar member of PYCONFIG_SPEC.

11 days agogh-151914: Reorganize the curses entries in What's New in Python 3.16 (GH-153397)
Serhiy Storchaka [Fri, 10 Jul 2026 17:51:16 +0000 (20:51 +0300)] 
gh-151914: Reorganize the curses entries in What's New in Python 3.16 (GH-153397)

Order the curses entries from the most important and general to the more
specialized: wide-character and complexchar/complexstr support first, then
multiple-terminal support, attributes and colors, screen and window management,
input handling, and finally introspection.  The curses.textpad.Textbox entry,
belonging to a separate submodule, moves to the end.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-59396: Add use_ttk parameter to tkinter ScrolledText (GH-153119)
Serhiy Storchaka [Fri, 10 Jul 2026 17:16:53 +0000 (20:16 +0300)] 
gh-59396: Add use_ttk parameter to tkinter ScrolledText (GH-153119)

ScrolledText gained a keyword-only use_ttk parameter to build the
surrounding frame and the vertical scroll bar from the themed
tkinter.ttk widgets instead of the classic tkinter widgets.  The
classic widgets remain the default.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-116946: Implement the GC protocol for _tkinter tkapp and tktimertoken (GH-152310)
Serhiy Storchaka [Fri, 10 Jul 2026 16:44:44 +0000 (19:44 +0300)] 
gh-116946: Implement the GC protocol for _tkinter tkapp and tktimertoken (GH-152310)

The _tkinter.tkapp and _tkinter.tktimertoken types never implemented the
garbage collector protocol, so reference cycles through an interpreter's
trace function or a timer handler's callback could not be collected.

A pending timer is kept alive by the Tcl event loop, which fires it even
after the Python token is dropped, so it is treated as a GC root (only its
callback is traversed) and collecting it never cancels a live timer.  The
GC slots use a plain cast rather than the type-checking macro, since the
collector may visit a surviving object at shutdown after module clearing
has reset the global type pointers.  Deallocation cancels any pending timer
so its callback cannot run on freed memory.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
11 days agogh-143070: Use "+" instead of "!" in automatically generated tkinter widget names...
Serhiy Storchaka [Fri, 10 Jul 2026 16:36:12 +0000 (19:36 +0300)] 
gh-143070: Use "+" instead of "!" in automatically generated tkinter widget names (GH-151975)

The "!" prefix has a special meaning in the tag expressions of the
canvas and text widgets ("!", "&&", "||", "^" and parentheses), so an
automatically generated widget name could not be used as a tag.  "+" has
no special meaning there, nor in option database patterns or Tcl lists,
and a user is very unlikely to start an explicit name with it.

11 days agogh-153513: Remove redundant conversions in tkinter tests (GH-153520)
Serhiy Storchaka [Fri, 10 Jul 2026 16:04:49 +0000 (19:04 +0300)] 
gh-153513: Remove redundant conversions in tkinter tests (GH-153520)

Now that index, window, parsedVarName and pixel options are returned as
str, int or float, drop the str()/int()/float() wrappers that only
worked around Tcl_Obj results.  The generated test_configure_* tests now
also check that int- and float-valued options are returned as numbers.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-153494: Encode imaplib search criteria to the declared CHARSET (GH-153495)
Serhiy Storchaka [Fri, 10 Jul 2026 15:42:07 +0000 (18:42 +0300)] 
gh-153494: Encode imaplib search criteria to the declared CHARSET (GH-153495)

IMAP4.search(), sort(), thread() and the uid SORT/THREAD variants now encode
str search criteria to the declared charset, so international search text can
be passed as ordinary str.  A criterion passed as bytes is sent unchanged, for
use with a charset that Python has no codec for.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-153513: Return str and numbers for more Tcl object types in _tkinter (GH-153514)
Serhiy Storchaka [Fri, 10 Jul 2026 14:29:53 +0000 (17:29 +0300)] 
gh-153513: Return str and numbers for more Tcl object types in _tkinter (GH-153514)

FromObj() now returns str for the "index", "window", "nsName" and
"parsedVarName" object types, whose internal representation is only a
context-bound lookup with nothing worth preserving in a Tcl_Obj.  An
"index" value is one of a small fixed set of enumeration keywords, so
its str is interned.

A "pixel" screen distance with no unit suffix is screen independent and
is now returned as an int or float.  A distance with an m/c/i/p suffix
needs a Tk_Window to be resolved and is kept as a Tcl_Obj, as are the
"dict" and the resource types "color", "border", "font" and "cursor".

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-151213: Fix asyncio tools permission requirements link (#153493)
Bartosz Sławecki [Fri, 10 Jul 2026 13:54:18 +0000 (15:54 +0200)] 
gh-151213: Fix asyncio tools permission requirements link (#153493)

11 days agogh-151669: Normalize symlink targets in tarfile.TarFile.gettarinfo() (GH-151671)
Daniele Nicolodi [Fri, 10 Jul 2026 13:53:01 +0000 (15:53 +0200)] 
gh-151669: Normalize symlink targets in tarfile.TarFile.gettarinfo() (GH-151671)

This applies a normalization when creating members vrom the filesystem,
 complementary to the one added to tarfile.TarFile.extract() in gh-138309
that does it in the other direction.
This solves an issue with round-tripping through the filesystem.

11 days agogh-153502: Add uid parameter to imaplib command methods (GH-153508)
Serhiy Storchaka [Fri, 10 Jul 2026 12:08:11 +0000 (15:08 +0300)] 
gh-153502: Add uid parameter to imaplib command methods (GH-153508)

Add a keyword-only uid=False argument to IMAP4.copy(), move(), fetch(),
store(), search(), sort(), thread() and expunge(), selecting the UID
variant of the command as a shorthand for uid().  expunge() also gains
an optional message_set argument, required for UID EXPUNGE.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
11 days agogh-153438: Update NuGet download URL (GH-153482)
Harjoth Khara [Fri, 10 Jul 2026 11:13:08 +0000 (04:13 -0700)] 
gh-153438: Update NuGet download URL (GH-153482)

11 days agogh-151942: Fix all Sphinx nitpicks in the Python 2.4 What's New (#153116)
Stan Ulbrych [Fri, 10 Jul 2026 10:18:15 +0000 (12:18 +0200)] 
gh-151942: Fix all Sphinx nitpicks in the Python 2.4 What's New (#153116)

11 days agogh-151942: Fix all Sphinx nitpicks in the 2.5 What's New (#153120)
Stan Ulbrych [Fri, 10 Jul 2026 10:08:31 +0000 (12:08 +0200)] 
gh-151942: Fix all Sphinx nitpicks in the 2.5 What's New (#153120)

11 days agogh-153201: Make TSan CI mandatory (#153491)
Kumar Aditya [Fri, 10 Jul 2026 09:36:26 +0000 (15:06 +0530)] 
gh-153201: Make TSan CI mandatory (#153491)