]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
7 months agogh-131020: py.exe launcher does not correctly detect a BOM when searching for the...
Chris Eibl [Mon, 10 Mar 2025 17:59:23 +0000 (18:59 +0100)] 
gh-131020: py.exe launcher does not correctly detect a BOM when searching for the shebang (GH-131021)

7 months agoGH-130614: pathlib ABCs: revise test suite for Posix path joining (#131017)
Barney Gale [Mon, 10 Mar 2025 17:59:10 +0000 (17:59 +0000)] 
GH-130614: pathlib ABCs: revise test suite for Posix path joining (#131017)

Test Posix-flavoured `pathlib.types._JoinablePath` in a dedicated test
module. These tests cover `LexicalPosixPath`, `PurePosixPath` and
`PosixPath`, where `LexicalPosixPath` is a simple implementation of
`_JoinablePath` for use in tests.

7 months agoGH-127381: pathlib ABCs: remove `case_sensitive` argument (#131024)
Barney Gale [Mon, 10 Mar 2025 17:50:48 +0000 (17:50 +0000)] 
GH-127381: pathlib ABCs: remove `case_sensitive` argument (#131024)

Remove the *case_sensitive* argument from `_JoinablePath.full_match()` and
`_ReadablePath.glob()`. Using a non-native case sensitivity forces the use
of "case-pedantic" globbing, where we `iterdir()` even for non-wildcard
pattern segments. But it's hard to know when to enable this mode, as
case-sensitivity can vary by directory, so `_PathParser.normcase()` doesn't
always give the full picture. The `Path.glob()` implementation is forced to
make an educated guess, but we can avoid the issue in the ABCs by dropping
the *case_sensitive* argument.

(I probably shouldn't have added these arguments in `PurePath` and `Path`
in the first place!)

Also drop support for `_ReadablePath.glob(recurse_symlinks=False)`, which
makes recursive globbing much slower.

7 months agogh-82909: Update PC/pyconfig.h to allow disabling pragma based auto-linking (GH-19740)
Jean-Christophe Fillion-Robin [Mon, 10 Mar 2025 17:40:17 +0000 (00:40 +0700)] 
gh-82909: Update PC/pyconfig.h to allow disabling pragma based auto-linking (GH-19740)

Define Py_NO_LINK_LIB to build extension disabling pragma based auto-linking. This is relevant when using build-system generator (e.g CMake) where the linking is explicitly handled

7 months agoGH-123044: Give the `POP_TOP` after a case test a location in the body, not the patte...
Mark Shannon [Mon, 10 Mar 2025 17:31:16 +0000 (17:31 +0000)] 
GH-123044: Give the `POP_TOP` after a case test a location in the body, not the pattern. (GH-130627)

7 months agoGH-131035: Use -flto=thin for clang-cl on Windows (GH-131036)
Chris Eibl [Mon, 10 Mar 2025 16:47:45 +0000 (17:47 +0100)] 
GH-131035: Use -flto=thin for clang-cl on Windows (GH-131036)

7 months agoGH-127705: Use `_PyStackRef`s in the default build. (GH-127875)
Mark Shannon [Mon, 10 Mar 2025 14:06:56 +0000 (14:06 +0000)] 
GH-127705: Use `_PyStackRef`s in the default build. (GH-127875)

7 months agogh-101100: Fix sphinx warnings in `library/asyncio-subprocess.rst` (#130994)
Yuki Kobayashi [Mon, 10 Mar 2025 12:38:08 +0000 (21:38 +0900)] 
gh-101100: Fix sphinx warnings in `library/asyncio-subprocess.rst` (#130994)

8 months agogh-80421: Correct definitions of time (#130984)
Stan Ulbrych [Sun, 9 Mar 2025 20:09:23 +0000 (20:09 +0000)] 
gh-80421: Correct definitions of time (#130984)

Based on the Wikipedia article, UTC is better said to be a successor than a renaming of GTC and language agnostic rather than an English-French compromise.

8 months agoGH-130614: pathlib ABCs: revise test suite for path joining (#130988)
Barney Gale [Sun, 9 Mar 2025 17:02:37 +0000 (17:02 +0000)] 
GH-130614: pathlib ABCs: revise test suite for path joining (#130988)

Test `pathlib.types._JoinablePath` in a dedicated test module. These tests
cover `LexicalPath`, `PurePath` and `Path`, where `LexicalPath` is defined
in a new `test.test_pathlib.support` package.

8 months agoGH-130614: pathlib ABCs: support alternate separator in `full_match()` (#130991)
Barney Gale [Sun, 9 Mar 2025 16:36:59 +0000 (16:36 +0000)] 
GH-130614: pathlib ABCs: support alternate separator in `full_match()` (#130991)

In `pathlib.types._JoinablePath.full_match()`, treat alternate path
separators in the path and pattern as if they were primary separators. e.g.
if the parser is `ntpath`, then `P(r'foo/bar\baz').full_match(r'*\*/*')` is
true.

8 months agoGH-130614: pathlib ABCs: retain original separator in `with_name()` (#130990)
Barney Gale [Sun, 9 Mar 2025 16:36:20 +0000 (16:36 +0000)] 
GH-130614: pathlib ABCs: retain original separator in `with_name()` (#130990)

In `pathlib.types._JoinablePath.with_name()`, retain any alternative path
separator preceding the old name, rather stripping and replacing it with a
primary separator. As a result, this method changes _only_ the name.

8 months agogh-130160: use `.. program::` directive for documenting `pdb` CLI (#130996)
donBarbos [Sun, 9 Mar 2025 15:55:23 +0000 (19:55 +0400)] 
gh-130160: use `.. program::` directive for documenting `pdb` CLI (#130996)

8 months agogh-130160: use `.. program::` directive for documenting `webbrowser` CLI (#130995)
donBarbos [Sun, 9 Mar 2025 06:57:59 +0000 (10:57 +0400)] 
gh-130160: use `.. program::` directive for documenting `webbrowser` CLI (#130995)

use `.. program::` directive for documenting `webbrowser` CLI

8 months agogh-123726: Document caveats of zipfile.Path around name sanitization (#130537)
Affan Shaikhsurab [Sat, 8 Mar 2025 21:37:05 +0000 (03:07 +0530)] 
gh-123726: Document caveats of zipfile.Path around name sanitization (#130537)

Add a note to the `zipfile.Path` class documentation clarifying that it does not sanitize filenames. This emphasizes the caller's responsibility to validate or sanitize inputs, especially when handling untrusted ZIP archives, to prevent path traversal vulnerabilities. The note also references the `extract` and `extractall` methods for comparison and suggests using `os.path.abspath` and `os.path.commonpath` for safe filename resolution.

8 months agogh-130954: Fix multiprocessing test_notify_n (#130955)
Sam Gross [Sat, 8 Mar 2025 18:04:30 +0000 (13:04 -0500)] 
gh-130954: Fix multiprocessing test_notify_n (#130955)

The test could deadlock trying join on the worker processes.
Apply the same technique as gh-130933.

Join the process before the test ends in `test_notify` as well.

8 months agogh-128646: Implement GzipFile.readinto[1]() methods (GH-128647)
Chris Markiewicz [Sat, 8 Mar 2025 03:04:45 +0000 (22:04 -0500)] 
gh-128646: Implement GzipFile.readinto[1]() methods (GH-128647)

The new methods simply delegate to the underlying buffer, much like the existing GzipFile.read[1] methods.  This avoids extra allocations caused by the BufferedIOBase.readinto implementation previously used.

This commit also factors out a common readability check rather than copying it an additional two times.

8 months agogh-130917: update timer and workload in test_signal (#130918)
Diego Russo [Fri, 7 Mar 2025 21:10:02 +0000 (21:10 +0000)] 
gh-130917: update timer and workload in test_signal (#130918)

The workload to advance the virtual timeout is too lightweight for some
platforms. As result the test goes in timeout as it never reaches the
end of the timer. By having a heavier workload, the virtual timer
advances rapidly and the SIGVTALRM is sent before the timeout.

8 months agogh-117151: IO performance improvement, increase io.DEFAULT_BUFFER_SIZE to 128k (GH...
morotti [Fri, 7 Mar 2025 19:36:12 +0000 (19:36 +0000)] 
gh-117151: IO performance improvement, increase io.DEFAULT_BUFFER_SIZE to 128k (GH-118144)

Co-authored-by: rmorotti <romain.morotti@man.com>
8 months agoGH-128520: Merge `pathlib._local` into `pathlib` (#130748)
Barney Gale [Fri, 7 Mar 2025 19:24:57 +0000 (19:24 +0000)] 
GH-128520: Merge `pathlib._local` into `pathlib` (#130748)

The `pathlib` module used to import stuff from both `_abc` and `_local`,
but nowadays the `_local` module provides the entire public pathlib
implementation, so there's no reason for the indirection.

8 months agogh-130851: Only intern constants of types generated by the compiler (#130901)
Sam Gross [Fri, 7 Mar 2025 15:34:53 +0000 (10:34 -0500)] 
gh-130851: Only intern constants of types generated by the compiler (#130901)

The free-threading build interns and immortalizes most constants
generated by the bytecode compiler. However, users can construct their
own code objects with arbitrary constants. We should not intern or
immortalize these objects if they are not of a type that we know how to
handle.

This change fixes a reference leak failure in the recently added
`test_code.test_unusual_constants` test. It also addresses a potential
crash that could occur when attempting to destroy an immortalized
object during interpreter shutdown.

8 months agogh-110206: Fix multiprocessing test_notify_all (#130933)
Sam Gross [Fri, 7 Mar 2025 14:58:09 +0000 (09:58 -0500)] 
gh-110206: Fix multiprocessing test_notify_all (#130933)

The test could deadlock trying join on the worker processes due to a
combination of behaviors:

* The use of `assertReachesEventually` did not ensure that workers
  actually woken.release() because the SyncManager's Semaphore does not
  implement get_value.

* This mean that the test could finish and the variable "sleeping" would
  got out of scope and be collected. This unregisters the proxy leading
  to failures in the worker or possibly the manager.

* The subsequent call to `p.join()` during cleanUp therefore never
  finished.

This takes two approaches to fix this:

1) Use woken.acquire() to ensure that the workers actually finish
   calling woken.release()

2) At the end of the test, wait until the workers are finished, while `cond`,
   `sleeping`, and `woken` are still valid.

8 months agoGH-128534: Fix behavior of branch monitoring for `async for` (GH-130847)
Mark Shannon [Fri, 7 Mar 2025 14:30:31 +0000 (14:30 +0000)] 
GH-128534: Fix behavior of branch monitoring for `async for` (GH-130847)

* Both branches in a pair now have a common source and are included in co_branches

8 months agoCorrect function name in `Doc/extending/embedding.rst` (#127539)
Boris Verkhovskiy [Fri, 7 Mar 2025 13:06:36 +0000 (06:06 -0700)] 
Correct function name in `Doc/extending/embedding.rst` (#127539)

8 months agogh-130932: Fix incorrect exception handling in _PyModule_IsPossiblyShadowing (#130934)
Shantanu [Fri, 7 Mar 2025 07:41:28 +0000 (23:41 -0800)] 
gh-130932: Fix incorrect exception handling in _PyModule_IsPossiblyShadowing (#130934)

I chose to not raise an exception here because I think it would be
confusing for module attribute access to start raising something other
than AttributeError if e.g. the cwd goes away

Without the change in moduleobject.c
```
./python.exe -m unittest test.test_import.ImportTests.test_script_shadowing_stdlib_cwd_failure
...
Assertion failed: (PyErr_Occurred()), function _PyObject_SetAttributeErrorContext, file object.c, line 1253.
```

8 months agogh-130893: Fix typo in SqliteInteractiveConsole.runsource docstring (#130894)
scotscotmcc [Fri, 7 Mar 2025 06:10:37 +0000 (00:10 -0600)] 
gh-130893: Fix typo in SqliteInteractiveConsole.runsource docstring (#130894)

8 months agogh-129011: Update comments in FileIO to match current code (#129012)
Cody Maloney [Fri, 7 Mar 2025 01:18:22 +0000 (17:18 -0800)] 
gh-129011: Update comments in FileIO to match current code (#129012)

8 months agogettext: Remove outdated "TODO" comment (#130890)
Stan Ulbrych [Thu, 6 Mar 2025 23:41:03 +0000 (23:41 +0000)] 
gettext: Remove outdated "TODO" comment (#130890)

8 months agogh-130920: Fix data race in STORE_SUBSCR_LIST_INT (#130923)
Sam Gross [Thu, 6 Mar 2025 20:59:48 +0000 (15:59 -0500)] 
gh-130920: Fix data race in STORE_SUBSCR_LIST_INT (#130923)

The write of the item to the list needs to use an atomic operation in
the free threading build.

Co-authored-by: Tomasz Pytel <tompytel@gmail.com>
8 months agogh-118331: Fix `test_list.ListTest.test_no_memory` under trace refs build (#130921)
mpage [Thu, 6 Mar 2025 20:11:50 +0000 (12:11 -0800)] 
gh-118331: Fix `test_list.ListTest.test_no_memory` under trace refs build (#130921)

Fix `test_list.ListTest.test_no_memory` under trace refs build

Memory allocation ends up failing in _PyRefchainTrace(), which produces
different output. Assert that we don't segfault, which is the thing
we want to test and is less brittle than checking output.

8 months agogh-128364: Fix flaky `test_concurrent_futures.test_wait` tests (gh-130742)
Sam Gross [Thu, 6 Mar 2025 17:30:58 +0000 (12:30 -0500)] 
gh-128364: Fix flaky `test_concurrent_futures.test_wait` tests (gh-130742)

Use events instead of relying on `time.sleep()`. The tests are also now about
four times faster.

8 months agogh-124878: Fix race conditions during interpreter finalization (#130649)
Sam Gross [Thu, 6 Mar 2025 15:38:34 +0000 (10:38 -0500)] 
gh-124878: Fix race conditions during interpreter finalization (#130649)

The PyThreadState field gains a reference count field to avoid
issues with PyThreadState being a dangling pointer to freed memory.
The refcount starts with a value of two: one reference is owned by the
interpreter's linked list of thread states and one reference is owned by
the OS thread. The reference count is decremented when the thread state
is removed from the interpreter's linked list and before the OS thread
calls `PyThread_hang_thread()`. The thread that decrements it to zero
frees the `PyThreadState` memory.

The `holds_gil` field is moved out of the `_status` bit field, to avoid
a data race where on thread calls `PyThreadState_Clear()`, modifying the
`_status` bit field while the OS thread reads `holds_gil` when
attempting to acquire the GIL.

The `PyThreadState.state` field now has `_Py_THREAD_SHUTTING_DOWN` as a
possible value. This corresponds to the `_PyThreadState_MustExit()`
check. This avoids race conditions in the free threading build when
checking `_PyThreadState_MustExit()`.

8 months agogh-127647: Add typing.Reader and Writer protocols (#127648)
Sebastian Rittau [Thu, 6 Mar 2025 15:36:19 +0000 (16:36 +0100)] 
gh-127647: Add typing.Reader and Writer protocols (#127648)

8 months agogh-128563: Clarify wording in Whats new for Tail call (#130911)
Ken Jin [Thu, 6 Mar 2025 13:38:05 +0000 (21:38 +0800)] 
gh-128563: Clarify wording in Whats new for Tail call (#130911)

Clarify wording in Whats new for Tail call

8 months agogh-130860: Fix width calculation, when separators in fractional part (GH-130865)
Sergey B Kirpichev [Thu, 6 Mar 2025 12:26:29 +0000 (15:26 +0300)] 
gh-130860: Fix width calculation, when separators in fractional part (GH-130865)

This amends f39a07be47

8 months agoGH-130903: typo in optimizer DSL for _GUARD_BOTH_UNICODE (#130904)
Jamie Phan [Thu, 6 Mar 2025 11:11:08 +0000 (22:11 +1100)] 
GH-130903: typo in optimizer DSL for _GUARD_BOTH_UNICODE (#130904)

Typo introduced in gh-118910.

8 months agogh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)
Tomasz Pytel [Thu, 6 Mar 2025 08:59:36 +0000 (03:59 -0500)] 
gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)

8 months agogh-128563: Add correction note to tail call in whats new (#130908)
Ken Jin [Thu, 6 Mar 2025 06:43:53 +0000 (14:43 +0800)] 
gh-128563: Add correction note to tail call in whats new (#130908)

* Add correction note to tail call in whats new

* Update 3.14.rst

8 months agogh-85795: Raise a clear error when `super()` is used in `typing.NamedTuple` subclasse...
Bartosz Sławecki [Thu, 6 Mar 2025 04:45:47 +0000 (05:45 +0100)] 
gh-85795: Raise a clear error when `super()` is used in `typing.NamedTuple` subclasses (#130082)

8 months agogh-128041: Fix incorrect bullet placement in "What's new" (GH-130900)
Charles Machalow [Wed, 5 Mar 2025 22:59:56 +0000 (14:59 -0800)] 
gh-128041: Fix incorrect bullet placement in "What's new" (GH-130900)

8 months agoGH-130153: Reword the wildcard matching part of the tutorial (GH-129954)
Tshepang Mbambo [Wed, 5 Mar 2025 22:59:47 +0000 (00:59 +0200)] 
GH-130153: Reword the wildcard matching part of the tutorial (GH-129954)

8 months agogh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolExecutor...
Charles Machalow [Wed, 5 Mar 2025 22:31:42 +0000 (14:31 -0800)] 
gh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolExecutor (GH-130849)

This adds two new methods to `multiprocessing`'s `ProcessPoolExecutor`:
- **`terminate_workers()`**: forcefully terminates worker processes using `Process.terminate()`
- **`kill_workers()`**: forcefully kills worker processes using `Process.kill()`

These methods provide users with a direct way to stop worker processes without `shutdown()` or relying on implementation details, addressing situations where immediate termination is needed.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Sam Gross @colesbury
Commit-message-mostly-authored-by: Claude Sonnet 3.7 (because why not -greg)
8 months agogh-129964: Fix JIT crash on Windows on Arm (GH-130882)
Diego Russo [Wed, 5 Mar 2025 20:40:50 +0000 (20:40 +0000)] 
gh-129964: Fix JIT crash on Windows on Arm (GH-130882)

8 months agoGH-115802: JIT using the "medium" code model on x86_64-unknown-linux-gnu (GH-130097)
Brandt Bucher [Wed, 5 Mar 2025 19:54:33 +0000 (11:54 -0800)] 
GH-115802: JIT using the "medium" code model on x86_64-unknown-linux-gnu (GH-130097)

8 months agogh-118331: Fix a couple of issues when list allocation fails (#130811)
mpage [Wed, 5 Mar 2025 18:42:09 +0000 (10:42 -0800)] 
gh-118331: Fix a couple of issues when list allocation fails (#130811)

* Fix use after free in list objects

Set the items pointer in the list object to NULL after the items array
is freed during list deallocation. Otherwise, we can end up with a list
object added to the free list that contains a pointer to an already-freed
items array.

* Mark `_PyList_FromStackRefStealOnSuccess` as escaping

I think technically it's not escaping, because the only object that
can be decrefed if allocation fails is an exact list, which cannot
execute arbitrary code when it is destroyed. However, this seems less
intrusive than trying to special cases objects in the assert in `_Py_Dealloc`
that checks for non-null stackpointers and shouldn't matter for performance.

8 months agogh-130878: Add extra check to prepare_ssl.py (GH-130879)
Burkov Egor [Wed, 5 Mar 2025 17:08:30 +0000 (20:08 +0300)] 
gh-130878: Add extra check to prepare_ssl.py (GH-130879)

8 months agoUpdate links from typing.readthedocs.io to typing.python.org (#130877)
Sebastian Rittau [Wed, 5 Mar 2025 15:26:44 +0000 (16:26 +0100)] 
Update links from typing.readthedocs.io to typing.python.org (#130877)

8 months agogh-130851: Don't crash when deduping unusual code constants (#130853)
Sam Gross [Wed, 5 Mar 2025 14:04:49 +0000 (09:04 -0500)] 
gh-130851: Don't crash when deduping unusual code constants (#130853)

The bytecode compiler only generates a few different types of constants,
like str, int, tuple, slices, etc. Users can construct code objects with
various unusual constants, including ones that are not hashable or not
even constant.

The free threaded build previously crashed with a fatal error when
confronted with these constants. Instead, treat distinct objects of
otherwise unhandled types as not equal for the purposes of deduplication.

8 months agoGH-127705: better double free message. (GH-130785)
Mark Shannon [Wed, 5 Mar 2025 14:00:42 +0000 (14:00 +0000)] 
GH-127705: better double free message. (GH-130785)

* Add location information when accessing already closed stackref

* Add #def option to track closed stackrefs to provide precise information for use after free and double frees.

8 months agogh-127750: Improve repr of functools.singledispatchmethod (GH-130220)
Serhiy Storchaka [Wed, 5 Mar 2025 11:10:05 +0000 (13:10 +0200)] 
gh-127750: Improve repr of functools.singledispatchmethod (GH-130220)

8 months agogh-116742: Fix subprocess test_check_output_timeout() (#130836)
Victor Stinner [Wed, 5 Mar 2025 10:51:33 +0000 (11:51 +0100)] 
gh-116742: Fix subprocess test_check_output_timeout() (#130836)

Fix a race condition in test_check_output_timeout() of
test_subprocess. Don't write into stdout anymore, since there is no
reliable way to synchronize the parent and the child processes.

Change the timeout from 3 seconds to 0.1 seconds, and remove
@requires_resource('walltime') decorator.

8 months agogh-130824: Clean up test wrappers for PyLong_*AndOverflow functions (GH-130871)
Serhiy Storchaka [Wed, 5 Mar 2025 10:50:53 +0000 (12:50 +0200)] 
gh-130824: Clean up test wrappers for PyLong_*AndOverflow functions (GH-130871)

8 months agogh-130824: Add tests for `NULL` in `PyLong_*AndOverflow` functions (GH-130828)
Peter Bierma [Wed, 5 Mar 2025 08:58:39 +0000 (03:58 -0500)] 
gh-130824: Add tests for `NULL` in `PyLong_*AndOverflow` functions (GH-130828)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
8 months agoGH-125722: Increase minimum supported Sphinx to 8.2.0 (#130444)
Adam Turner [Wed, 5 Mar 2025 00:31:01 +0000 (00:31 +0000)] 
GH-125722: Increase minimum supported Sphinx to 8.2.0 (#130444)

8 months agogh-130794: Process interpreter QSBR queue in _PyMem_AbandonDelayed. (gh-130808)
Sam Gross [Tue, 4 Mar 2025 23:04:04 +0000 (18:04 -0500)] 
gh-130794: Process interpreter QSBR queue in _PyMem_AbandonDelayed. (gh-130808)

This avoids a case where the interpreter's queue of memory to be freed
could grow rapidly if there are many short lived threads.

8 months agogh-127371 Avoid unbounded growth SpooledTempfile.writelines (GH-127372)
Bert Peters [Tue, 4 Mar 2025 22:06:07 +0000 (23:06 +0100)] 
gh-127371 Avoid unbounded growth SpooledTempfile.writelines (GH-127372)

8 months agoGH-130415: Narrow str to "" based on boolean tests (GH-130476)
Amit Lavon [Tue, 4 Mar 2025 21:20:17 +0000 (13:20 -0800)] 
GH-130415: Narrow str to "" based on boolean tests (GH-130476)

8 months agogh-125377: Improve tab indentation for pdb multi-line input (#130471)
Tian Gao [Tue, 4 Mar 2025 20:45:38 +0000 (15:45 -0500)] 
gh-125377: Improve tab indentation for pdb multi-line input (#130471)

8 months agoGH-130415: Narrow int to 0 based on boolean tests (GH-130772)
Klaus117 [Tue, 4 Mar 2025 20:44:09 +0000 (12:44 -0800)] 
GH-130415: Narrow int to 0 based on boolean tests (GH-130772)

8 months agogh-130660: Add a test for pdb when user quits after interact command (#130852)
Tian Gao [Tue, 4 Mar 2025 20:10:32 +0000 (15:10 -0500)] 
gh-130660: Add a test for pdb when user quits after interact command (#130852)

8 months agogh-105499: Merge typing.Union and types.UnionType (#105511)
Jelle Zijlstra [Tue, 4 Mar 2025 19:44:19 +0000 (11:44 -0800)] 
gh-105499: Merge typing.Union and types.UnionType (#105511)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Ken Jin <kenjin@python.org>
Co-authored-by: Carl Meyer <carl@oddbird.net>
8 months agogh-126085: Add `tp_iter` to TypeAliasType to allow star unpacking (#127981)
Tomas R. [Tue, 4 Mar 2025 19:34:59 +0000 (20:34 +0100)] 
gh-126085: Add `tp_iter` to TypeAliasType to allow star unpacking (#127981)

8 months agogh-130090: Support PGO for clang-cl on Windows (GH-129907)
Chris Eibl [Tue, 4 Mar 2025 19:29:03 +0000 (20:29 +0100)] 
gh-130090: Support PGO for clang-cl on Windows (GH-129907)

8 months agogh-130730: Fix multiprocessing test_active_children() (#130837)
Victor Stinner [Tue, 4 Mar 2025 17:05:20 +0000 (18:05 +0100)] 
gh-130730: Fix multiprocessing test_active_children() (#130837)

Replace a sleep with an event: sleep is not a reliable
synchronization primitive.

8 months agoGH-90916: Add helper function to dis.Instruction and use it to reduce churn in test_d...
Mark Shannon [Tue, 4 Mar 2025 16:43:39 +0000 (16:43 +0000)] 
GH-90916: Add helper function to dis.Instruction and use it to reduce churn in test_dis (GH-130643)

8 months agogh-82987: Stop on calling frame unconditionally for inline breakpoints (#130493)
Tian Gao [Tue, 4 Mar 2025 16:35:47 +0000 (11:35 -0500)] 
gh-82987: Stop on calling frame unconditionally for inline breakpoints (#130493)

8 months agoRevert "gh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolE...
Sam Gross [Tue, 4 Mar 2025 16:19:06 +0000 (11:19 -0500)] 
Revert "gh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolExecutor (GH-128043)" (#130838)

The test_concurrent_futures.test_process_pool test is failing in CI.

This reverts commit f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe.

8 months agogh-129567: Add a note to `typing.TypedDict` docs about name mangling (#130233)
sobolevn [Tue, 4 Mar 2025 15:15:00 +0000 (18:15 +0300)] 
gh-129567: Add a note to `typing.TypedDict` docs about name mangling (#130233)

8 months agogh-130727: Retry test_wmi on TimeoutError (#130832)
Victor Stinner [Tue, 4 Mar 2025 15:07:01 +0000 (16:07 +0100)] 
gh-130727: Retry test_wmi on TimeoutError (#130832)

Use sleeping_retry() in test_wmi to retry multiple times on
TimeoutError. Wait up to LONG_TIMEOUT seconds (5 minutes by default).

8 months agogh-128184: Fix display of signatures with ForwardRefs (#130815)
Jelle Zijlstra [Tue, 4 Mar 2025 14:58:37 +0000 (06:58 -0800)] 
gh-128184: Fix display of signatures with ForwardRefs (#130815)

Co-authored-by: sobolevn <mail@sobolevn.me>
8 months agogh-130547: Fix race between dict_dealloc and split_keys_entry_added (gh-130778)
Donghee Na [Tue, 4 Mar 2025 13:50:33 +0000 (22:50 +0900)] 
gh-130547: Fix race between dict_dealloc and split_keys_entry_added (gh-130778)

8 months agogh-129666: Add C11/C++11 to docs and -pedantic-errors to GCC/clang test_c[pp]ext...
Petr Viktorin [Tue, 4 Mar 2025 13:10:09 +0000 (14:10 +0100)] 
gh-129666: Add C11/C++11 to docs and -pedantic-errors to GCC/clang test_c[pp]ext tests (GH-130692)

Disable pedantic check for c++03 (unlimited API)

Also add a check for c++03 *limited* API, which passes in pedantic mode
after removing a comma in the `PySendResult` declaration, and allowing
`long long`.

8 months agogh-130736: Fix asyncio test_shutdown_default_executor_timeout() (#130800)
Victor Stinner [Tue, 4 Mar 2025 11:16:07 +0000 (12:16 +0100)] 
gh-130736: Fix asyncio test_shutdown_default_executor_timeout() (#130800)

Replace time.sleep() with threading.Event.

8 months agogh-89083: add support for UUID version 7 (RFC 9562) (#121119)
Bénédikt Tran [Tue, 4 Mar 2025 09:47:19 +0000 (10:47 +0100)] 
gh-89083: add support for UUID version 7 (RFC 9562) (#121119)

Add support for generating UUIDv7 objects according to RFC 9562, §5.7 [1].

The functionality is provided by the `uuid.uuid7()` function. The implementation
is based on a 42-bit counter as described by Method 1, §6.2 [2] and guarantees
monotonicity within the same millisecond.

[1]: https://www.rfc-editor.org/rfc/rfc9562.html#section-5.7
[2]: https://www.rfc-editor.org/rfc/rfc9562.html#section-6.2

---------

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Éric <merwok@netwok.org>
8 months agogh-111178: Fix function signatures in structseq.c (#130683)
Victor Stinner [Tue, 4 Mar 2025 09:33:45 +0000 (10:33 +0100)] 
gh-111178: Fix function signatures in structseq.c (#130683)

8 months agogh-111178: Fix function signatures of unicodeiter (#130684)
Victor Stinner [Tue, 4 Mar 2025 09:33:09 +0000 (10:33 +0100)] 
gh-111178: Fix function signatures of unicodeiter (#130684)

8 months agogh-130149: fix HMAC tests for some FIPS-only build bots (#130788)
Bénédikt Tran [Tue, 4 Mar 2025 09:15:33 +0000 (10:15 +0100)] 
gh-130149: fix HMAC tests for some FIPS-only build bots (#130788)

Skips some HMAC tests for some FIPS-only build bots that do not have the underlying hash functions.

8 months agogh-130486: Fix test_venv fails from within venv (GH-130487)
Andrii Hrimov [Tue, 4 Mar 2025 07:48:07 +0000 (08:48 +0100)] 
gh-130486: Fix test_venv fails from within venv (GH-130487)

8 months agogh-130599: use static constants str-to-int conversion (gh-130714)
Neil Schemenauer [Tue, 4 Mar 2025 03:00:50 +0000 (19:00 -0800)] 
gh-130599: use static constants str-to-int conversion (gh-130714)

Avoid a data race in free-threaded builds due to mutating global arrays at
runtime.  Instead, compute the constants with an external Python script and
then define them as static global constant arrays.  These constants are
used by `long_from_non_binary_base()`.

8 months agogh-124445: Allow specializing generic ParamSpec aliases (#124512)
Tomas R. [Mon, 3 Mar 2025 22:58:33 +0000 (23:58 +0100)] 
gh-124445: Allow specializing generic ParamSpec aliases (#124512)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
8 months agogh-130790: Remove references about unicode's readiness from comments (#130801)
Sergey Miryanov [Mon, 3 Mar 2025 19:18:09 +0000 (00:18 +0500)] 
gh-130790: Remove references about unicode's readiness from comments (#130801)

8 months agogh-130737: Fix multiprocessing test_notify() (#130797)
Victor Stinner [Mon, 3 Mar 2025 18:45:26 +0000 (19:45 +0100)] 
gh-130737: Fix multiprocessing test_notify() (#130797)

Replace hardcoded delay (100 ms) with a loop awaiting until a
condition is true: replace assertReturnsIfImplemented() with
assertReachesEventually().

Use sleeping_retry() in assertReachesEventually() to tolerate slow
buildbots and raise an exception on timeout (30 seconds).

8 months agoGH-128520: Merge `pathlib._abc` into `pathlib.types` (#130747)
Barney Gale [Mon, 3 Mar 2025 17:56:57 +0000 (17:56 +0000)] 
GH-128520: Merge `pathlib._abc` into `pathlib.types` (#130747)

There used to be a meaningful distinction between these modules: `pathlib`
imported `pathlib._abc` but not `pathlib.types`. This is no longer the
case (neither module is imported), so we move the ABCs as follows:

- `pathlib._abc.JoinablePath` --> `pathlib.types._JoinablePath`
- `pathlib._abc.ReadablePath` --> `pathlib.types._ReadablePath`
- `pathlib._abc.WritablePath` --> `pathlib.types._WritablePath`

8 months agogh-130453: pygettext: Allow overriding default keywords when using `--keyword` (GH...
Tomas R. [Mon, 3 Mar 2025 16:57:01 +0000 (17:57 +0100)] 
gh-130453: pygettext: Allow overriding default keywords when using `--keyword` (GH-130709)

8 months agogh-130711: Document `PyBaseObject_Type` (GH-130712)
Yuki Kobayashi [Mon, 3 Mar 2025 14:08:05 +0000 (23:08 +0900)] 
gh-130711: Document `PyBaseObject_Type` (GH-130712)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
8 months agogh-100388: Change undefined __DATE__ to the Unix epoch (#100389)
Samuel Tyler [Mon, 3 Mar 2025 13:59:46 +0000 (00:59 +1100)] 
gh-100388: Change undefined __DATE__ to the Unix epoch (#100389)

8 months agogh-129173: refactor `PyCodec_BackslashReplaceErrors` into separate functions (#129895)
Bénédikt Tran [Mon, 3 Mar 2025 12:58:15 +0000 (13:58 +0100)] 
gh-129173: refactor `PyCodec_BackslashReplaceErrors` into separate functions (#129895)

The logic of `PyCodec_BackslashReplaceErrors` is now split into separate functions,
each of which handling a specific exception type.

8 months ago`unittest.mock` test and coverage fixup (#130787)
Chris Withers [Mon, 3 Mar 2025 11:44:59 +0000 (11:44 +0000)] 
`unittest.mock` test and coverage fixup (#130787)

* Mark functions that will never be called with # pragma: no cover

* Fix testpatch.PatchTest.test_exit_idempotent

.stop() and __exit__ have subtly different code paths, so to really test __exit__ idempotency, we need to call it specifically twice.

8 months agogh-129173: simplify `PyCodec_XMLCharRefReplaceErrors` logic (#129894)
Bénédikt Tran [Mon, 3 Mar 2025 11:43:22 +0000 (12:43 +0100)] 
gh-129173: simplify `PyCodec_XMLCharRefReplaceErrors` logic (#129894)

Writing the decimal representation of a Unicode codepoint only requires to know the number of digits.

---------

Co-authored-by: Petr Viktorin <encukou@gmail.com>
8 months agodocs: internal notes have moved, correct references (#130762)
Ned Batchelder [Mon, 3 Mar 2025 11:38:49 +0000 (04:38 -0700)] 
docs: internal notes have moved, correct references (#130762)

8 months agogh-130149: refactor tests for HMAC (#130150)
Bénédikt Tran [Mon, 3 Mar 2025 10:22:05 +0000 (11:22 +0100)] 
gh-130149: refactor tests for HMAC (#130150)

Since we plan to introduce a built-in implementation for HMAC based on HACL*,
it becomes important for the HMAC tests to be flexible enough to avoid code
duplication.

In addition to the new layout based on mixin classes, we extend test coverage by
also testing the `__repr__` of HMAC objects and the HMAC one-shot functions.

We also fix the import to `_sha256` which, since gh-101924, resulted in some tests being
skipped as the module is no more available (its content was moved to the `_sha2` module).

8 months agogh-101100: Fix sphinx warnings in `library/email.errors.rst` (#130774)
Yuki Kobayashi [Mon, 3 Mar 2025 09:56:45 +0000 (18:56 +0900)] 
gh-101100: Fix sphinx warnings in `library/email.errors.rst` (#130774)

8 months agogh-101100: Fix Sphinx documentation warnings in `collections.rst` (#130629)
Victorien [Mon, 3 Mar 2025 09:46:38 +0000 (10:46 +0100)] 
gh-101100: Fix Sphinx documentation warnings in `collections.rst` (#130629)

8 months agogh-129015: Improve disambiguation between `NotImplemented` and `NotImplementedError...
Mike Castle [Mon, 3 Mar 2025 08:23:41 +0000 (00:23 -0800)] 
gh-129015: Improve disambiguation between `NotImplemented` and `NotImplementedError` (#129562)

---------

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
8 months agogh-127667: fix memory leaks in `hashlib` (#127668)
Bénédikt Tran [Mon, 3 Mar 2025 08:20:33 +0000 (09:20 +0100)] 
gh-127667: fix memory leaks in `hashlib` (#127668)

- Correctly handle `NULL` values returned by `EVP_MD_CTX_md`.
- Correctly free resources in error branches.
- Consistently suppress `_setException()` return value when needed.
- Collapse `_setException() + return NULL` into a single statement.

8 months agogh-128002: use efficient linked list implementation for eager tasks in asyncio (...
Kumar Aditya [Mon, 3 Mar 2025 06:36:43 +0000 (12:06 +0530)] 
gh-128002: use efficient linked list implementation for eager tasks in asyncio (#130518)

8 months agogh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolExecutor...
Charles Machalow [Mon, 3 Mar 2025 02:01:45 +0000 (18:01 -0800)] 
gh-128041: Add `terminate_workers` and `kill_workers` methods to ProcessPoolExecutor (GH-128043)

This adds two new methods to `multiprocessing`'s `ProcessPoolExecutor`:
- **`terminate_workers()`**: forcefully terminates worker processes using `Process.terminate()`
- **`kill_workers()`**: forcefully kills worker processes using `Process.kill()`

These methods provide users with a direct way to stop worker processes without `shutdown()` or relying on implementation details, addressing situations where immediate termination is needed.

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Commit-message-mostly-authored-by: Claude Sonnet 3.7 (because why not -greg)
8 months agoGH-130415: Use boolean guards to narrow types to values in the JIT (GH-130659)
Brandt Bucher [Sun, 2 Mar 2025 21:21:34 +0000 (13:21 -0800)] 
GH-130415: Use boolean guards to narrow types to values in the JIT (GH-130659)

8 months agogh-128481: indicate that the default value for `FrameSummary.end_lineno` changed...
Bénédikt Tran [Sun, 2 Mar 2025 17:16:51 +0000 (18:16 +0100)] 
gh-128481: indicate that the default value for `FrameSummary.end_lineno` changed in 3.13 (#130755)

The value taken by `FrameSummary.end_lineno` when passing `end_lineno=None` changed in gh-112097.

Previously, a `end_lineno` could be specified to be `None` directly but since 939fc6d, passing None makes
the constructor use the value of `lineno` instead.

8 months agogh-130637: Add validation for numeric response data in `stat()` method (#130646)
Kanishk Pachauri [Sun, 2 Mar 2025 13:05:40 +0000 (18:35 +0530)] 
gh-130637: Add validation for numeric response data in `stat()` method (#130646)

Co-authored-by: Eric V. Smith <ericvsmith@users.noreply.github.com>