129191 Commits

Author SHA1 Message Date
Miss Islington (bot)
4ce6d82453
[3.14] gh-148063: documentation: move ast.compare from "Compiler flags" to "ast helpers" (GH-147954) (#149291)
(cherry picked from commit 7b0244dbc7a5ba037e2cf2b5c8db1e35a0643a18)

Co-authored-by: Hunter Hogan <hunterhogan@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-05-03 16:02:25 +00:00
Miss Islington (bot)
51523c9c17
[3.14] Ignore /jit_unwind_info*.h from git (GH-149311) (#149314)
Ignore `/jit_unwind_info*.h` from git (GH-149311)
(cherry picked from commit db0335887e6acd1e2ef4382a52544b02971f52f0)

Co-authored-by: sobolevn <mail@sobolevn.me>
2026-05-03 09:58:09 +00:00
Jelle Zijlstra
494989d120
[3.14] gh-149221: Sync random.py with main branch (#149288)
* [3.14] fix trailing whitespace

* sync with main
2026-05-02 14:44:53 -07:00
Miss Islington (bot)
644f94c1a5
[3.14] gh-149285: Increase recursion depth for test_xml_etree from 150k to 500k (GH-149286) (#149287)
(cherry picked from commit b1d62317362055da7e2248a76a00c0f46cacac7a)

Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-05-02 16:29:49 +00:00
lighting9999
a6d7bf53c8
[3.14]gh-149221:Fix binomialvariate Function for random module (gh-149276) 2026-05-02 07:57:42 -05:00
Miss Islington (bot)
4f8399f317
[3.14] gh-148914: Fix memoization of in-band PickleBuffer in the Python implementation (GH-149052) (GH-149274)
Previously, identical PickleBuffers did not preserve identity.
Also, empty writable PickleBuffer memoized an empty bytearray object
in place of b'' which is a singleton in CPython, so the following
references to b'' were unpickled as an empty bytearray object.
(cherry picked from commit b89735625dff07005c31bdc86cbe7113ef1b59d0)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2026-05-02 09:30:16 +00:00
Russell Keith-Magee
96705609e8
[3.14] gh-149254: Bump OpenSSL versions for iOS and Android. (#149272)
Bump OpenSSL to 3.0.20 for iOS and Android.
2026-05-02 16:51:06 +08:00
Ned Deily
c2f494c806
[3.14] gh-149254: Update macOS installer to use OpenSSL 3.0.20. (#149263) 2026-05-01 23:53:44 -04:00
Miss Islington (bot)
753064e5b5
[3.14] gh-149117: Set ImportError.name on errors from runpy.run_module/run_path (gh-149159) (#149257)
gh-149117: Set `ImportError.name` on errors from `runpy.run_module`/`run_path` (gh-149159)

Set ImportError.name on errors from runpy.run_module/run_path

`runpy.run_module()` and `runpy.run_path()` now set the `name` attribute
of the `ImportError` they raise to the requested module name, matching
the behaviour of a regular import statement (previously `name` was
always `None`, which broke introspection).

The `name=` kwarg is gated on `issubclass(error, ImportError)` because
`_get_module_details()` is also used by `_run_module_as_main()` with
a private `_Error` sentinel class. `_Error` does not subclass
ImportError, and `BaseException.__init__` rejects unknown kwargs at
the C level, so passing `name=` unconditionally would break the
`python -m foo` codepath.
(cherry picked from commit ff35fe4633cc6d3a30f6af8281dfa641783c1d07)

Co-authored-by: W. H. Wang <mattwang44@gmail.com>
2026-05-02 02:54:02 +00:00
Dino Viehland
312a596bcf
[3.14] gh-149242: Heap size should be added at end of the struct (#149241)
Co-authored-by: Neil Schemenauer <nas-github@arctrix.com>
2026-05-01 12:56:30 -07:00
Miss Islington (bot)
48108eef60
[3.14] Fix source link in Doc/howto/descriptor.rst (GH-149215) (#149250)
Co-authored-by: sobolevn <mail@sobolevn.me>
2026-05-01 22:47:47 +03:00
Hugo van Kemenade
7c3cc0f3ef
[3.14] gh-148726: Document the GC change in What's New in Python 3.14 (GH-149209) (#149249) 2026-05-01 19:08:33 +00:00
Stan Ulbrych
454401c8e9
[3.14] gh-148390: fix undefined behavior of memoryview(...).cast("?") (GH-148454) (GH-148667)
(cherry picked from commit 69e0a78e6edc3166c7a5b166955c0cefd1bacd5d)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2026-05-01 17:43:59 +02:00
Miss Islington (bot)
5ec845a044
[3.14] gh-148967: Fix FFI type pointer handling for C complex support in set_stginfo_ffi_type_pointer (GH-148969) (GH-149224)
(cherry picked from commit f2c7c0d2b799c927d9a78e87e4a640d3f9b0356c)

Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
2026-05-01 15:43:38 +02:00
Petr Viktorin
e6eac2b3aa
[3.14] gh-111264: Add a note about untrusted input to tomllib docs (GH-146209) (GH-149223)
(cherry picked from commit 9d41e2a534aab460dd656ef251adaed5d2d64b93)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-05-01 14:42:33 +02:00
Miss Islington (bot)
79f39c93b0
[3.14] gh-148518 fix index error in local part attribute (GH-148522) (#149200)
As part of fixing bpo-27931 code was introduced to get_bare_quoted_string
that added an empty Terminal if the quoted string was empty.  This isn't
the best answer in terms of the parse tree; we really want the token
list to be empty in that case.  But having it be empty resulted in
local_part raising the index error.  We find that same problem if we
try to parse an address consisting of a single dquote.  By fixing
local_part to not raise on an empty token list, we can have the
bare_quoted_string code correctly return an empty token list for
the empty string cases (two dquotes or a single dquote as the
entire addrespec, at the end of a line).
(cherry picked from commit bdbb55c403d2ab6b4b0a3e994d21b623fee4a544)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
2026-04-30 18:13:52 -04:00
Stan Ulbrych
f23837de5d
[3.14] Remove dead links to pkg_resources in importlib docs (GH-148344) (#148964)
(cherry picked from commit 1b691564a785721dc71e230a9809dd37adff5f13)
2026-04-30 20:42:35 +01:00
Miss Islington (bot)
fa000efcbc
[3.14] bpo-39100: _header_value_parser: do not treat a Group as invalid-mailbox (GH-24872) (#149191)
When an address in an address-list has garbage at the end, the code will
currently:

1. change the mailbox in the last parsed address into invalid-mailbox by
   overriding its token_type;
2. wrap the trailing garbage into another invalid-mailbox and append it
   to the last parsed address.

However, that does not take into account that an address may
also contain a Group instead of a single mailbox. In that case,
overwriting token_type leads to undesirable results, e.g. parsing an
email with the following 'To' header:

unlisted-recipients:; (no To-header on input)

raises an AttributeError from trying to treat the Group as a Mailbox.

Moreover it is questionable whether the previously parsed mailbox should
be treated as invalid in addition to the trailing garbage.

Address both of the above by wrapping the trailing garbage in a new
Address with a single invalid-mailbox, and append it to the AddressList
directly.

Changes the results of the
test_get_address_list_mailboxes_invalid_addresses test, where the
address list is now parsed into 4 mailboxes instead of 3 (all but the
first one are invalid).
(cherry picked from commit b413bc7a1f0946f734d9660239b4e2e8ddc48522)

Co-authored-by: elenril <anton@khirnov.net>
2026-04-30 14:15:21 -04:00
Miss Islington (bot)
bfcaeead9f
[3.14] gh-149122: Fix refleak in codegen (GH-149179) (#149181)
gh-149122: Fix refleak in codegen (GH-149179)
(cherry picked from commit 4599335a83a22cf73a0c20e3692c29fd0278d23b)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2026-04-30 18:42:52 +05:30
Miss Islington (bot)
ab2d84fe10
[3.14] gh-149148: Upgrade bundled pip to 26.1 (GH-149150) (#149154)
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-29 15:02:20 +00:00
Miss Islington (bot)
97b4246f64
[3.14] gh-148740: Fix uuid CLI with custom UUIDs for UUIDv3/v5 namespaces (GH-148741) (#149152)
gh-148740: Fix `uuid` CLI with custom UUIDs for UUIDv3/v5 namespaces (GH-148741)
(cherry picked from commit f1588d460db97086f5ea28b5797ccdcfffb0307f)

Co-authored-by: Jansen Price <sumpygump@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2026-04-29 17:00:13 +02:00
Miss Islington (bot)
098880de36
[3.14] gh-149122: Fix segfault in compiler when certain builtin functions are passed a coroutine as arg (GH-149138) (#149151)
gh-149122: Fix segfault in compiler when certain builtin functions are passed a coroutine as arg (GH-149138)
(cherry picked from commit 16f292ef4e8c56bfd115ecdb91420c7b4006249f)

Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2026-04-29 14:01:45 +00:00
Sergey Miryanov
4d0ae4cba9
[3.14] GH-148726: Add heap_size to _gc_runtime_state (#149025) 2026-04-29 13:04:11 +03:00
Miss Islington (bot)
4994367796
[3.14] gh-97032: avoid test_squeezer crash on macOS buildbots (gh-115508) (GH-148141) (#148414)
Co-authored-by: Neil Schemenauer <nas-github@arctrix.com>
Co-authored-by: Ned Deily <nad@python.org>
2026-04-29 13:00:43 +03:00
Miss Islington (bot)
28b4ad3806
[3.14] gh-148169: Fix webbrowser %action substitution bypass of dash-prefix check (GH-148170) (#148516)
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-29 12:59:46 +03:00
Miss Islington (bot)
adfde79475
[3.14] gh-140287: Handle PYTHONSTARTUP script exceptions in the asyncio REPL (GH-140288) (#148987)
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
2026-04-29 12:56:44 +03:00
Stan Ulbrych
c181c5fa16
[3.14] gh-149017: Upgrade bundled Expat to 2.8.0 (GH-149020) (#149073)
(cherry picked from commit 005555a3f0ae20ee8154eb4ee172e1e355144c8c)
2026-04-28 16:30:12 +03:00
Miss Islington (bot)
41f475c996
[3.14] gh-149035: Modernize legacy Python patterns in Doc/tutorial/stdlib2.rst (GH-149036) (#149089)
Co-authored-by: ByteFlow <fakeshadow1337@gmail.com>
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 05:17:18 +00:00
Miss Islington (bot)
22d53a9141
[3.14] gh-148529: Minor improvements of the struct module documentation (GH-148565) (GH-149063)
* Document that 's' and 'p' accept bytes and bytearray.
* Fix some footnotes.
* Clarify that "string" is a byte string.
* Fix the module docstring.
(cherry picked from commit 3e5a3cb2bd222f97f793b01bc1c0f7bb62aefc31)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2026-04-27 23:07:00 +03:00
Miss Islington (bot)
2459faaaa9
[3.14] gh-148663: Document that calendar.IllegalMonthError inherits from both ValueError and IndexError (GH-148664) (#148917)
(cherry picked from commit 435be06dd25a5e4e19014340c4ba873d71051c4c)

Co-authored-by: Eoin Shaughnessy <45000144+EoinTrial@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-27 21:00:46 +01:00
Miss Islington (bot)
b01e594fbe
[3.14] gh-146581: Fix vulnerability in shutil.unpack_archive() for ZIP files on Windows (GH-146591) (GH-149064)
Use ZipFile.extractall() to sanitize file names and extract files.

Files with invalid names (e.g. absolute paths) are now skipped.

Files containing ".." in the name are no longer skipped.
(cherry picked from commit fc829e88753858c8ac669594bf0093f44948c0f4)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2026-04-27 22:55:02 +03:00
Thomas Kowalski
0cd8123535
[3.14] Un-skip previously-broken test_get_type_hints_modules_forward_ref (#149053) 2026-04-27 09:54:56 -07:00
Gregory P. Smith
bb8d6a0863
[3.14] Improve hash() builtin docstring with caveats. (GH-125229) (#149054)
Improve  `hash()` builtin docstring with caveats.

Mention its return type and that the value can be expected to change between
processes (hash randomization).

Why? The `hash` builtin gets reached for and used by a lot of people whether it
is the right tool or not. IDEs surface docstrings and people use pydoc and
`help(hash)`.
(cherry picked from commit 665b7dfcfa240e02760f58bed5ca29ec01d028e6)
2026-04-27 16:17:30 +00:00
Miss Islington (bot)
f9140e201c
[3.14] gh-82665 Mention that HTMLParser.handle_starttag value can be None (GH-134312) (#149037)
gh-82665 Mention that HTMLParser.handle_starttag value can be None (GH-134312)

* Specify boolean attribute behavior in parser

* Tweak wording and example




* Fix backticks

---------
(cherry picked from commit 804c213c89366dd5ffa7feeb1bd4feccfee75b38)

Co-authored-by: Micah Najacht <micah.najacht@gmail.com>
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2026-04-27 22:30:00 +08:00
Miss Islington (bot)
86ce2e05dc
[3.14] Document that multiprocessing treats local same-user processes as trusted (GH-149001) (#149033)
Document that multiprocessing treats local same-user processes as trusted (GH-149001)

Clarify in the Authentication keys section that the authkey handshake
covers Listener/Client (addressable endpoints) only, not the anonymous
pipes behind Pipe() and Queue, and that isolation between same-user
processes must be arranged at the OS level.
(cherry picked from commit f27e91e37212f148b8fe72a3656a69b242625622)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2026-04-27 01:49:27 +00:00
Sergey Miryanov
9a7e205e46
[3.14] GH-148726: Forward-port generational GC (#148720)
Co-authored-by: Neil Schemenauer <nas@arctrix.com>
Co-authored-by: Sergey Miryanov <sergey.miryanov@gmail.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Neil Schemenauer <nas-github@arctrix.com>
2026-04-26 21:12:52 +03:00
Miss Islington (bot)
78c5e54b4f
[3.14] gh-146455: Fix O(N²) in add_const() after constant folding moved to CFG (GH-146456) (#149011)
gh-146455: Fix O(N²) in add_const() after constant folding moved to CFG (GH-146456)

The add_const() function in flowgraph.c uses a linear search over the
consts list to find the index of a constant. After gh-126835 moved
constant folding from the AST optimizer to the CFG optimizer, this
function is now called N times for N inner tuple elements during
fold_tuple_of_constants(), resulting in O(N²) total time.

Fix by maintaining an auxiliary _Py_hashtable_t that maps object
pointers to their indices in the consts list, providing O(1) lookup.

For a file with 100,000 constant 2-tuples:
- Before: 10.38s (add_const occupies 83.76% of CPU time)
- After:  1.48s
(cherry picked from commit 5d416324c56cd6f262fa123f41b97b48631bea79)

Co-authored-by: zSirius <107359899+zSirius@users.noreply.github.com>
2026-04-26 18:45:38 +03:00
Miss Islington (bot)
5770df43dc
[3.14] gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail (GH-149003) (#149004)
gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail (GH-149003)

gh-141473: Speed up test_communicate_timeout_large_input

Replace the slow reader's 30s sleep with a parent-driven wake over a
loopback socket so post-timeout communicate() doesn't block waiting
for the child to wake on its own. Worst-case runtime: ~30s -> <1s.
(cherry picked from commit e1384cfd25b4fba5e0f8f3e6b536930e2e6cf5cf)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2026-04-26 04:29:47 +00:00
Miss Islington (bot)
15e2b64cd8
[3.14] gh-148947: dataclasses: fix error on empty __class__ cell (GH-148948) (#148995)
gh-148947: dataclasses: fix error on empty __class__ cell  (GH-148948)

Also add a test demonstrating the need for the existing "is oldcls" check.
(cherry picked from commit 6d7bbee1d5714a345dca5a7e4089de3c2fc0fb59)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
2026-04-25 15:57:33 +00:00
Miss Islington (bot)
8acb98a1c2
[3.14] gh-148973: fix segfault on mismatch between consts size and oparg in compiler (GH-148974) (#148980)
gh-148973: fix segfault on mismatch between consts size and oparg in compiler (GH-148974)
(cherry picked from commit c650b51c32f92563f3319bb25c64ca2d2dc05ec0)

Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2026-04-25 13:53:42 +01:00
Miss Islington (bot)
89f44ac422
[3.14] gh-148735: Fix a UAF in Element.findtext() (GH-148738) (#148916)
(cherry picked from commit 0469e6d38dcb3ff904690028cb3a25155bdcedae)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-24 21:38:15 +01:00
Miss Islington (bot)
3034c8fa60
[3.14] Additional itertool recipes for running statistics (gh-148879) (gh-148949) 2026-04-24 05:52:35 +00:00
Sam Gross
26c6e3d7e3
[3.14] gh-113956: Make intern_common thread-safe in free-threaded build (gh-148886) (#148927)
Avoid racing with the owning thread's refcount operations when
immortalizing an interned string: if we don't own it and its refcount
isn't merged, intern a copy we own instead. Use atomic stores in
_Py_SetImmortalUntracked so concurrent atomic reads are race-free.

(cherry picked from commit 4629c2215a9a4b3d1ec4a306cd4dd7d11dcfebb4)
2026-04-23 19:12:19 +00:00
Miss Islington (bot)
31ba91a35e
[3.14] gh-132631: Fix "I/O operation on closed file" when parsing JSON Lines file (GH-132632) (#148921)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Brian Schubert <brianm.schubert@gmail.com>
2026-04-23 19:32:29 +03:00
Miss Islington (bot)
0f656e2641
[3.14] gh-148484: Fix memory leak of iterator in array.array constructor (GH-148523) (GH-148678)
(cherry picked from commit afde75664eb3ff3e147806f027c9da54c7eb77d4)

Co-authored-by: Gleb Popov <gvpopov.dev@gmail.com>
2026-04-23 16:00:37 +02:00
Miss Islington (bot)
5e758ff525
[3.14] gh-148464: Add missing `__ctype_le/be__` attributes for complex types in the ctype module (GH-148485) (GH-148677)
(cherry picked from commit 769cc8338f35eb134508aca701a59342bcb6a84b)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
2026-04-23 15:57:55 +02:00
Miss Islington (bot)
b6a7212edb
[3.14] gh-148680: Replace internal names with type_reprs of objects in string representations of ForwardRef (GH-148682) (#148913)
(cherry picked from commit 158dbbb97fffbc47eb446d2b1576ce887e5c1802)

Co-authored-by: David Ellis <ducksual@gmail.com>
Co-authored-by: Shamil <ashm.tech@proton.me>
2026-04-23 13:47:52 +00:00
Miss Islington (bot)
f795e04204
[3.14] gh-90309: Base64-encode cookie values embedded in JS (GH-148889)
(cherry picked from commit 76b3923d688c0efc580658476c5f525ec8735104)

Co-authored-by: Seth Larson <seth@python.org>
2026-04-23 15:05:09 +02:00
Miss Islington (bot)
dd9a77ff2e
[3.14] gh-148892: Drop mention of deprecated cibuildwheel option (GH-148893) (#148903)
gh-148892: Drop mention of deprecated cibuildwheel option (GH-148893)
(cherry picked from commit 3b9397988d1f83740e7d73d17d56767976a583b4)

Co-authored-by: Nathan Goldbaum <nathan.goldbaum@gmail.com>
2026-04-23 04:06:39 +00:00
Miss Islington (bot)
032b1be5bb
[3.14] gh-119180: Document the format parameter in typing.get_type_hints() (GH-143758) (#148901)
Do not mention `__annotations__` dictionaries, as this is slightly
outdated since 3.14.

Rewrite the note about possible exceptions for clarity. Also do not
mention imported type aliases, as since 3.12 aliases with the `type`
statement do not suffer from this limitation anymore.
(cherry picked from commit 8bf99ae3a9f12d105a70d6fda93dddde4adeee8f)

Co-authored-by: Victorien <65306057+Viicos@users.noreply.github.com>
2026-04-22 19:59:18 -07:00