]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
12 days agogh-114203: skip locking if object is already locked by two-mutex critical section...
Kumar Aditya [Fri, 14 Nov 2025 17:47:59 +0000 (23:17 +0530)] 
gh-114203: skip locking if object is already locked by two-mutex critical section (#141476)

12 days agogh-141488: Add `Py_` prefix to Include/datetime.h macros (#141493)
Locked-chess-official [Fri, 14 Nov 2025 15:52:14 +0000 (23:52 +0800)] 
gh-141488: Add `Py_` prefix to Include/datetime.h macros (#141493)

12 days agoAdd PyManager troubleshooting steps for direct launch of script files (GH-141530)
Steve Dower [Fri, 14 Nov 2025 15:23:01 +0000 (15:23 +0000)] 
Add PyManager troubleshooting steps for direct launch of script files (GH-141530)

12 days agogh-116146: Avoid empty braces in _testembed.c (GH-141556)
Petr Viktorin [Fri, 14 Nov 2025 15:05:42 +0000 (16:05 +0100)] 
gh-116146: Avoid empty braces in _testembed.c (GH-141556)

12 days agogh-139653: Remove assertions in _Py_InitializeRecursionLimits() (#141551)
Victor Stinner [Fri, 14 Nov 2025 14:56:37 +0000 (15:56 +0100)] 
gh-139653: Remove assertions in _Py_InitializeRecursionLimits() (#141551)

These checks were invalid and failed randomly on FreeBSD
and Alpine Linux.

12 days agoGH-141509: Fix warning about remaining subinterpreters (GH-141528)
Sergey Miryanov [Fri, 14 Nov 2025 14:55:04 +0000 (19:55 +0500)] 
GH-141509: Fix warning about remaining subinterpreters (GH-141528)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
12 days agoGH-141312: Allow only integers to longrangeiter_setstate state (GH-141317)
Sergey Miryanov [Fri, 14 Nov 2025 14:52:01 +0000 (19:52 +0500)] 
GH-141312: Allow only integers to longrangeiter_setstate state (GH-141317)

This fixes an assertion error when the new computed start is not an integer.

12 days agogh-139344: Remove pending removal notice for undeprecated importlib.resources API...
Petr Viktorin [Fri, 14 Nov 2025 14:50:03 +0000 (15:50 +0100)] 
gh-139344: Remove pending removal notice for undeprecated importlib.resources API (GH-141507)

12 days agogh-122255: Synchronize warnings in C and Python implementations of the warnings modul...
Serhiy Storchaka [Fri, 14 Nov 2025 14:49:28 +0000 (16:49 +0200)] 
gh-122255: Synchronize warnings in C and Python implementations of the warnings module (GH-122824)

In the linecache module and in the Python implementation of the
warnings module, a DeprecationWarning is issued when
m.__loader__ differs from m.__spec__.loader (like in the C
implementation of the warnings module).

12 days agogh-131229: Temporarily skip `test_basic_multiple_interpreters_deleted_no_reset` ...
Peter Bierma [Fri, 14 Nov 2025 14:22:36 +0000 (09:22 -0500)] 
gh-131229: Temporarily skip `test_basic_multiple_interpreters_deleted_no_reset` (GH-141552)

This is a temporary band-aid to unblock other PRs.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
12 days agogh-141004: Document `PyOS_InterruptOccurred` (GH-141526)
Stan Ulbrych [Fri, 14 Nov 2025 11:20:36 +0000 (11:20 +0000)] 
gh-141004: Document `PyOS_InterruptOccurred` (GH-141526)

12 days agogh-141376: Remove exceptions from `make smelly` (GH-141392)
Petr Viktorin [Fri, 14 Nov 2025 10:22:18 +0000 (11:22 +0100)] 
gh-141376: Remove exceptions from `make smelly` (GH-141392)

* Don't ignore initialized data and BSS
* Remove exceptions for _init and _fini

12 days agogh-131510: Use PyUnstable_Unicode_GET_CACHED_HASH() (GH-141520)
Victor Stinner [Fri, 14 Nov 2025 10:13:24 +0000 (11:13 +0100)] 
gh-131510: Use PyUnstable_Unicode_GET_CACHED_HASH() (GH-141520)

Replace code that directly accesses PyASCIIObject.hash with
PyUnstable_Unicode_GET_CACHED_HASH().

Remove redundant "assert(PyUnicode_Check(op))" from
PyUnstable_Unicode_GET_CACHED_HASH(), _PyASCIIObject_CAST() already
implements the check.

12 days agogh-139596: Cease caching config.cache & ccache in GH Actions (#141451)
Hugo van Kemenade [Fri, 14 Nov 2025 09:59:19 +0000 (11:59 +0200)] 
gh-139596: Cease caching config.cache & ccache in GH Actions (#141451)

12 days agogh-116146: Add C-API to create module from spec and initfunc (GH-139196)
Itamar Oren [Fri, 14 Nov 2025 09:43:25 +0000 (01:43 -0800)] 
gh-116146: Add C-API to create module from spec and initfunc (GH-139196)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
12 days agogh-140550: Use a bool for the Py_mod_gil value (GH-141519)
Petr Viktorin [Fri, 14 Nov 2025 09:38:49 +0000 (10:38 +0100)] 
gh-140550: Use a bool for the Py_mod_gil value (GH-141519)

This needs a single bit, but was stored as a void* in the module
struct. This didn't matter due to packing, but now that there's
another bool in the struct, we can save a bit of memory by
making md_gil a bool.

Variables that changed type are renamed, to detect conflicts.

13 days agogh-140790: pdb: Initialize instance variables in Pdb.__init__ (#140791)
M Bussonnier [Fri, 14 Nov 2025 03:18:54 +0000 (04:18 +0100)] 
gh-140790: pdb: Initialize instance variables in Pdb.__init__ (#140791)

Initialize lineno, stack, curindex, curframe, currentbp, and _user_requested_quit attributes in `Pdb.__init__``.

13 days agogh-140601: Add ResourceWarning to iterparse when not closed (GH-140603)
Osama Abdelkader [Thu, 13 Nov 2025 19:05:28 +0000 (20:05 +0100)] 
gh-140601: Add ResourceWarning to iterparse when not closed (GH-140603)

When iterparse() opens a file by filename and is not explicitly closed,
emit a ResourceWarning to alert developers of the resource leak.

Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
13 days agogh-137969: Fix double evaluation of `ForwardRef`s which rely on globals (#140974)
dr-carlos [Thu, 13 Nov 2025 18:17:17 +0000 (04:47 +1030)] 
gh-137969: Fix double evaluation of `ForwardRef`s which rely on globals (#140974)

13 days agogh-139109: A new tracing JIT compiler frontend for CPython (GH-140310)
Ken Jin [Thu, 13 Nov 2025 18:08:32 +0000 (02:08 +0800)] 
gh-139109: A new tracing JIT compiler frontend for CPython (GH-140310)

This PR changes the current JIT model from trace projection to trace recording. Benchmarking: better pyperformance (about 1.7% overall) geomean versus current https://raw.githubusercontent.com/facebookexperimental/free-threading-benchmarking/refs/heads/main/results/bm-20251108-3.15.0a1%2B-7e2bc1d-JIT/bm-20251108-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-7e2bc1d-vs-base.svg, 100% faster Richards on the most improved benchmark versus the current JIT. Slowdown of about 10-15% on the worst benchmark versus the current JIT. **Note: the fastest version isn't the one merged, as it relies on fixing bugs in the specializing interpreter, which is left to another PR**. The speedup in the merged version is about 1.1%. https://raw.githubusercontent.com/facebookexperimental/free-threading-benchmarking/refs/heads/main/results/bm-20251112-3.15.0a1%2B-f8a764a-JIT/bm-20251112-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-f8a764a-vs-base.svg

Stats: 50% more uops executed, 30% more traces entered the last time we ran them. It also suggests our trace lengths for a real trace recording JIT are too short, as a lot of trace too long aborts https://github.com/facebookexperimental/free-threading-benchmarking/blob/main/results/bm-20251023-3.15.0a1%2B-eb73378-CLANG%2CJIT/bm-20251023-vultr-x86_64-Fidget%252dSpinner-tracing_jit-3.15.0a1%2B-eb73378-pystats-vs-base.md .

This new JIT frontend is already able to record/execute significantly more instructions than the previous JIT frontend. In this PR, we are now able to record through custom dunders, simple object creation, generators, etc. None of these were done by the old JIT frontend. Some custom dunders uops were discovered to be broken as part of this work gh-140277

The optimizer stack space check is disabled, as it's no longer valid to deal with underflow.

Pros:
* Ignoring the generated tracer code as it's automatically created, this is only additional 1k lines of code. The maintenance burden is handled by the DSL and code generator.
* `optimizer.c` is now significantly simpler, as we don't have to do strange things to recover the bytecode from a trace.
* The new JIT frontend is able to handle a lot more control-flow than the old one.
* Tracing is very low overhead. We use the tail calling interpreter/computed goto interpreter to switch between tracing mode and non-tracing mode. I call this mechanism dual dispatch, as we have two dispatch tables dispatching to each other. Specialization is still enabled while tracing.
* Better handling of polymorphism. We leverage the specializing interpreter for this.

Cons:
* (For now) requires tail calling interpreter or computed gotos. This means no Windows JIT for now :(. Not to fret, tail calling is coming soon to Windows though https://github.com/python/cpython/pull/139962

Design:
* After each instruction, the `record_previous_inst` function/label is executed. This does as the name suggests.
* The tracing interpreter lowers bytecode to uops directly so that it can obtain "fresh" values at the point of lowering.
* The tracing version behaves nearly identical to the normal interpreter, in fact it even has specialization! This allows it to run without much of a slowdown when tracing. The actual cost of tracing is only a function call and writes to memory.
* The tracing interpreter uses the specializing interpreter's deopt to naturally form the side exit chains. This allows it to side exit chain effectively, without repeating much code. We force a re-specializing when tracing a deopt.
* The tracing interpreter can even handle goto errors/exceptions, but I chose to disable them for now as it's not tested.
* Because we do not share interpreter dispatch, there is should be no significant slowdown to the original specializing interpreter on tailcall and computed got with JIT disabled. With JIT enabled, there might be a slowdown in the form of the JIT trying to trace.
* Things that could have dynamic instruction pointer effects are guarded on. The guard deopts to a new instruction --- `_DYNAMIC_EXIT`.

13 days agogh-141004: Document `PyErr_RangedSyntaxLocationObject` (#141521)
Stan Ulbrych [Thu, 13 Nov 2025 17:58:47 +0000 (17:58 +0000)] 
gh-141004: Document `PyErr_RangedSyntaxLocationObject` (#141521)

PyErr_RangedSyntaxLocationObject

13 days agogh-140873: Add support of non-descriptor callables in functools.singledispatchmethod...
Serhiy Storchaka [Thu, 13 Nov 2025 17:48:52 +0000 (19:48 +0200)] 
gh-140873: Add support of non-descriptor callables in functools.singledispatchmethod() (GH-140884)

13 days agogh-139653: Add PyUnstable_ThreadState_SetStackProtection() (#139668)
Victor Stinner [Thu, 13 Nov 2025 16:30:50 +0000 (17:30 +0100)] 
gh-139653: Add PyUnstable_ThreadState_SetStackProtection() (#139668)

Add PyUnstable_ThreadState_SetStackProtection() and
PyUnstable_ThreadState_ResetStackProtection() functions
to set the stack base address and stack size of a Python
thread state.

Co-authored-by: Petr Viktorin <encukou@gmail.com>
13 days agogh-141004: Document `PyCode_Optimize` (GH-141378)
Peter Bierma [Thu, 13 Nov 2025 15:07:57 +0000 (10:07 -0500)] 
gh-141004: Document `PyCode_Optimize` (GH-141378)

13 days agogh-141004: Document C APIs for dictionary keys, values, and items (GH-141009)
Peter Bierma [Thu, 13 Nov 2025 15:02:21 +0000 (10:02 -0500)] 
gh-141004: Document C APIs for dictionary keys, values, and items (GH-141009)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
13 days agogh-137959: Fix `TIER1_TO_TIER2` macro name in JIT InternalDocs (GH-141496)
Mikhail Efimov [Thu, 13 Nov 2025 14:44:40 +0000 (17:44 +0300)] 
gh-137959: Fix `TIER1_TO_TIER2` macro name in JIT InternalDocs (GH-141496)

JIT InternalDocs fix

13 days agogh-139871: Add `bytearray.take_bytes([n])` to efficiently extract `bytes` (GH-140128)
Cody Maloney [Thu, 13 Nov 2025 13:19:44 +0000 (05:19 -0800)] 
gh-139871: Add `bytearray.take_bytes([n])` to efficiently extract `bytes` (GH-140128)

Update `bytearray` to contain a `bytes` and provide a zero-copy path to
"extract" the `bytes`. This allows making several code paths more efficient.

This does not move any codepaths to make use of this new API. The documentation
changes include common code patterns which can be made more efficient with
this API.

---

When just changing `bytearray` to contain `bytes` I ran pyperformance on a
`--with-lto --enable-optimizations --with-static-libpython` build and don't see
any major speedups or slowdowns with this; all seems to be in the noise of
my machine (Generally changes under 5% or benchmarks that don't touch
bytes/bytearray).

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Maurycy Pawłowski-Wieroński <5383+maurycy@users.noreply.github.com>
13 days agogh-140601: Refactor ElementTree.iterparse() tests (GH-141499)
Serhiy Storchaka [Thu, 13 Nov 2025 11:37:01 +0000 (13:37 +0200)] 
gh-140601: Refactor ElementTree.iterparse() tests (GH-141499)

Split existing tests on smaller methods and move them to separate class.
Rename variable "content" to "it".
Use BytesIO instead of StringIO.
Add few more tests.

13 days agogh-135801: Add the module parameter to compile() etc (GH-139652)
Serhiy Storchaka [Thu, 13 Nov 2025 11:21:32 +0000 (13:21 +0200)] 
gh-135801: Add the module parameter to compile() etc (GH-139652)

Many functions related to compiling or parsing Python code, such as
compile(), ast.parse(), symtable.symtable(),
and importlib.abc.InspectLoader.source_to_code() now allow to pass
the module name used when filtering syntax warnings.

13 days agogh-140260: fix data race in `_struct` module initialization with subinterpreters...
Shamil [Thu, 13 Nov 2025 11:01:31 +0000 (14:01 +0300)] 
gh-140260: fix data race in `_struct` module initialization with subinterpreters (#140909)

2 weeks agogh-137109: refactor warning about threads when forking (#141438)
Gregory P. Smith [Thu, 13 Nov 2025 02:15:16 +0000 (18:15 -0800)] 
gh-137109: refactor warning about threads when forking (#141438)

* gh-137109: refactor warning about threads when forking

This splits the OS API specific functionality to get the number of threads out
from the fallback Python method and warning raising code itself.  This way the
OS APIs can be queried before we've run
`os.register_at_fork(after_in_parent=...)` registered functions which
themselves may (re)start threads that would otherwise be detected.

This is best effort.  If the OS APIs are either unavailable or fail, the
warning generating code still falls back to looking at the Python threading
state after the CPython interpreter world has been restarted and the
after_in_parent calls have been made.  The common case for most Linux and macOS
environments should work today.

This also lines up with the existing TODO refactoring, we may choose to expose
this API to get the number of OS threads in the `os` module in the future.

* NEWS entry

* avoid "function-prototype" compiler warning?

2 weeks agogh-141004: Document `PyRun_InteractiveOneObject` (GH-141405)
Peter Bierma [Wed, 12 Nov 2025 22:52:56 +0000 (17:52 -0500)] 
gh-141004: Document `PyRun_InteractiveOneObject` (GH-141405)

2 weeks agogh-124111: Fix TCL 9 thread detection (GH-128103)
Michael Cho [Wed, 12 Nov 2025 22:16:58 +0000 (17:16 -0500)] 
gh-124111: Fix TCL 9 thread detection (GH-128103)

2 weeks agogh-141442: Add escaping to iOS testbed arguments (#141443)
Russell Keith-Magee [Wed, 12 Nov 2025 21:41:26 +0000 (05:41 +0800)] 
gh-141442: Add escaping to iOS testbed arguments (#141443)

Xcode concatenates the test argument array, losing quoting in the process.

2 weeks agogh-140936: Fix JIT assertion crash at finalization if some generator is alive (GH...
Mikhail Efimov [Wed, 12 Nov 2025 19:04:02 +0000 (22:04 +0300)] 
gh-140936: Fix JIT assertion crash at finalization if some generator is alive (GH-140969)

2 weeks agoAdd details about JIT build infrastructure and updating dependencies to `Tools/jit...
Savannah Ostrowski [Wed, 12 Nov 2025 18:26:50 +0000 (10:26 -0800)] 
Add details about JIT build infrastructure and updating dependencies to `Tools/jit` (#141167)

2 weeks agogh-141412: Use reliable target URL for urllib example (GH-141428)
Bob Kline [Wed, 12 Nov 2025 18:25:23 +0000 (13:25 -0500)] 
gh-141412: Use reliable target URL for urllib example (GH-141428)

The endpoint used for demonstrating reading URLs is no longer
stable. This change substitutes a target over which we have more
control.

2 weeks agoGH-140479: Update JIT builds to use LLVM 21 (#140973)
Savannah Ostrowski [Wed, 12 Nov 2025 18:09:25 +0000 (10:09 -0800)] 
GH-140479: Update JIT builds to use LLVM 21 (#140973)

2 weeks agogh-141004: Document `PyType_SUPPORTS_WEAKREFS` (GH-141408)
Peter Bierma [Wed, 12 Nov 2025 16:38:17 +0000 (11:38 -0500)] 
gh-141004: Document `PyType_SUPPORTS_WEAKREFS` (GH-141408)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141004: Document `Py_MATH_{E, PI, TAU}` constants (#141373)
Stan Ulbrych [Wed, 12 Nov 2025 16:37:54 +0000 (16:37 +0000)] 
gh-141004: Document `Py_MATH_{E, PI, TAU}` constants (#141373)

2 weeks agogh-132657: add regression test for `PySet_Contains` with unhashable type (#141411)
M Bussonnier [Wed, 12 Nov 2025 15:20:08 +0000 (16:20 +0100)] 
gh-132657: add regression test for `PySet_Contains` with unhashable type (#141411)

2 weeks agogh-87710: Update mime type for ``.ai`` (#141239)
Stan Ulbrych [Wed, 12 Nov 2025 14:22:01 +0000 (14:22 +0000)] 
gh-87710: Update mime type for ``.ai`` (#141239)

2 weeks agogh-141464: a typo in profiling sampling when can not run warning in linux (#141465)
yihong [Wed, 12 Nov 2025 12:45:43 +0000 (20:45 +0800)] 
gh-141464: a typo in profiling sampling when can not run warning in linux (#141465)

2 weeks agogh-141004: soft-deprecate Py_INFINITY macro (#141033)
Sergey B Kirpichev [Wed, 12 Nov 2025 12:44:49 +0000 (15:44 +0300)] 
gh-141004: soft-deprecate Py_INFINITY macro (#141033)

Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-98896: resource_tracker: use json&base64 to allow arbitrary shared memory names...
Rani Pinchuk [Wed, 12 Nov 2025 12:35:01 +0000 (13:35 +0100)] 
gh-98896: resource_tracker: use json&base64 to allow arbitrary shared memory names (GH-138473)

2 weeks agogh-131116: Fix inspect.getdoc() to work with cached_property objects (GH-131165)
Jacob Austin Lincoln [Wed, 12 Nov 2025 10:07:21 +0000 (02:07 -0800)] 
gh-131116: Fix inspect.getdoc() to work with cached_property objects (GH-131165)

2 weeks agogh-141042: fix sNaN's packing for mixed floating-point formats (#141107)
Sergey B Kirpichev [Wed, 12 Nov 2025 10:06:29 +0000 (13:06 +0300)] 
gh-141042: fix sNaN's packing for mixed floating-point formats (#141107)

2 weeks agogh-141311: Avoid assertion in BytesIO.readinto() (GH-141333)
Cody Maloney [Wed, 12 Nov 2025 09:57:05 +0000 (01:57 -0800)] 
gh-141311: Avoid assertion in BytesIO.readinto() (GH-141333)

Fix error in assertion which causes failure if pos is equal to PY_SSIZE_T_MAX.
Fix undefined behavior in read() and readinto() if pos is larger that the size
of the underlying buffer.

2 weeks agogh-141370: document undefined behavior of Py_ABS() (GH-141439)
Sergey B Kirpichev [Wed, 12 Nov 2025 09:50:44 +0000 (12:50 +0300)] 
gh-141370: document undefined behavior of Py_ABS() (GH-141439)

2 weeks agogh-85524: Raise "UnsupportedOperation" on FileIO.readall (#141214)
Cody Maloney [Wed, 12 Nov 2025 09:37:48 +0000 (01:37 -0800)] 
gh-85524: Raise "UnsupportedOperation" on FileIO.readall (#141214)

io.UnsupportedOperation is a subclass of OSError and recommended by
io.IOBase for this case; matches other read methods on io.FileIO.

2 weeks agogh-141376: Rename _AsyncioDebug to _Py_AsyncioDebug (GH-141391)
Petr Viktorin [Wed, 12 Nov 2025 08:42:56 +0000 (09:42 +0100)] 
gh-141376: Rename _AsyncioDebug to _Py_AsyncioDebug (GH-141391)

2 weeks agogh-75593: Add support of bytes and path-like paths in wave.open() (GH-140951)
Mark Byrne [Wed, 12 Nov 2025 08:20:55 +0000 (09:20 +0100)] 
gh-75593: Add support of bytes and path-like paths in wave.open() (GH-140951)

2 weeks agoGH-116946: revert eliminate the need for the GC in the `_thread.lock` and `_thread...
Kumar Aditya [Wed, 12 Nov 2025 07:21:43 +0000 (12:51 +0530)] 
GH-116946: revert eliminate the need for the GC in the `_thread.lock` and `_thread.RLock`  (#141448)

Revert "GH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock` (#141268)"

This reverts commit fbebca289d811669fc1980e3a135325b8542a846.

2 weeks agogh-103847: fix cancellation safety of `asyncio.create_subprocess_exec` (#140805)
Kumar Aditya [Wed, 12 Nov 2025 05:17:38 +0000 (10:47 +0530)] 
gh-103847: fix cancellation safety of `asyncio.create_subprocess_exec` (#140805)

2 weeks agoGH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock...
Sergey Miryanov [Wed, 12 Nov 2025 04:59:48 +0000 (09:59 +0500)] 
GH-116946: eliminate the need for the GC in the `_thread.lock` and `_thread.RLock` (#141268)

2 weeks agoGH-137618: Require Python 3.10 to Python 3.15 for PYTHON_FOR_REGEN (GH-137619)
Adam Turner [Wed, 12 Nov 2025 00:53:21 +0000 (00:53 +0000)] 
GH-137618: Require Python 3.10 to Python 3.15 for PYTHON_FOR_REGEN (GH-137619)

* Require Python 3.11 to Python 3.15 for PYTHON_FOR_REGEN

* NEWS

* keep allowing python 3.10

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-137928: remove redundant size validation in multiprocessing.heap (GH-137929)
Alejandro Cabello Jiménez [Wed, 12 Nov 2025 00:36:43 +0000 (01:36 +0100)] 
gh-137928: remove redundant size validation in multiprocessing.heap (GH-137929)

remove redundant size check, malloc does it

---------

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-138621: Increase test coverage for csv.DictReader and csv.Sniffer (GH-138622)
Jan-Eric Nitschke [Wed, 12 Nov 2025 00:32:26 +0000 (01:32 +0100)] 
gh-138621: Increase test coverage for csv.DictReader and csv.Sniffer (GH-138622)

* Increase test coverage for csv.DictReader and csv.Sniffer

Previously there were no tests for the DictReader fieldnames
setter, the case where a StopIteration was encountered when trying
to determine the fieldnames from the content or the case where
Sniffer could not find a delimiter.

* Revert whitespace change to comment

* Add a test that csv.Sniffer.has_header checks up to 20 rows

* Replace name and age with letter and offset

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* Address review comment

---------

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2 weeks agogh-137952: update `csv.Sniffer().has_header()` docs to describe the actual off-by...
Maurycy Pawłowski-Wieroński [Wed, 12 Nov 2025 00:03:14 +0000 (01:03 +0100)] 
gh-137952: update `csv.Sniffer().has_header()` docs to describe the actual off-by-onish behavior (GH-137953)

* checks 21, not 20
* Say "header" instead of "first row" to disambiguate per review.

---------

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Maurycy Pawłowski-Wieroński <maurycy@maurycy.com>
2 weeks agogh-138775: fix handle `python -m base64` stdin correct with EOF signal (GH-138776)
yihong [Tue, 11 Nov 2025 23:47:57 +0000 (07:47 +0800)] 
gh-138775: fix handle `python -m base64` stdin correct with EOF signal (GH-138776)

* fix: handle  stdin correct with EOF single.
* fix: flollow the comments when pipe stdin use buffer
* Apply suggestions from code review
* fix: apply review comments in Lib/base64.py
* fix: address comments
* Reword comment and NEWS entry.

---------

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2 weeks agogh-120950: Fix overflow in math.log() with large int-like argument (GH-121011)
Serhiy Storchaka [Tue, 11 Nov 2025 22:27:13 +0000 (00:27 +0200)] 
gh-120950: Fix overflow in math.log() with large int-like argument (GH-121011)

Handling of arbitrary large int-like argument is now consistent with
handling arbitrary large int arguments.

2 weeks agogh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which...
J Berg [Tue, 11 Nov 2025 22:09:58 +0000 (22:09 +0000)] 
gh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which child process terminated (GH-139486)

Report which process terminated as cause of BPE

2 weeks agogh-132686: Add parameters inherit_class_doc and fallback_to_class_doc for inspect...
Serhiy Storchaka [Tue, 11 Nov 2025 22:01:25 +0000 (00:01 +0200)] 
gh-132686: Add parameters inherit_class_doc and fallback_to_class_doc for inspect.getdoc() (GH-132691)

2 weeks agoGH-139596: Cease caching config.cache & ccache in GH Actions (GH-139623)
Adam Turner [Tue, 11 Nov 2025 21:51:22 +0000 (21:51 +0000)] 
GH-139596: Cease caching config.cache & ccache in GH Actions (GH-139623)

* Cease caching config.cache in GH Actions\
* Remove ccache action

2 weeks agogh-141314: Fix TextIOWrapper.tell() assertion failure with standalone carriage return...
Mohsin Mehmood [Tue, 11 Nov 2025 21:49:54 +0000 (02:49 +0500)] 
gh-141314: Fix TextIOWrapper.tell() assertion failure with standalone carriage return (GH-141331)

The assertion was checking wrong variable (skip_back vs skip_bytes).

2 weeks agogh-141004: Document `PyBytes_Repr` and `PyBytes_DecodeEscape` (GH-141407)
Peter Bierma [Tue, 11 Nov 2025 20:32:54 +0000 (15:32 -0500)] 
gh-141004: Document `PyBytes_Repr` and `PyBytes_DecodeEscape` (GH-141407)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-116738: use `PyMutex` in `lzma` module (#140711)
Alper [Tue, 11 Nov 2025 20:31:55 +0000 (12:31 -0800)] 
gh-116738: use `PyMutex` in `lzma` module (#140711)

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2 weeks agogh-141004: Document `PyFile_OpenCode` and `PyFile_OpenCodeObject` (GH-141413)
Peter Bierma [Tue, 11 Nov 2025 20:31:29 +0000 (15:31 -0500)] 
gh-141004: Document `PyFile_OpenCode` and `PyFile_OpenCodeObject` (GH-141413)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-140476: optimize `PySet_Add` for `frozenset` in free-threading (#140440)
Alper [Tue, 11 Nov 2025 20:27:21 +0000 (12:27 -0800)] 
gh-140476: optimize `PySet_Add` for `frozenset` in free-threading (#140440)

Avoids critical section in `PySet_Add` when adding items to newly created frozensets.

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2 weeks agogh-137339: Clarify host and port parameter behavior in smtplib.SMTP{_SSL} initializat...
Aniket [Tue, 11 Nov 2025 20:25:26 +0000 (01:55 +0530)] 
gh-137339: Clarify host and port parameter behavior in smtplib.SMTP{_SSL} initialization (#137340)

This also documents the previously undocumented default_port parameter.

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141367: Use actual SPECIALIZATION_THRESHOLD value in specialization related test...
Mikhail Efimov [Tue, 11 Nov 2025 20:16:46 +0000 (23:16 +0300)] 
gh-141367: Use actual SPECIALIZATION_THRESHOLD value in specialization related test (GH-141417)

2 weeks agoAdd documentation for Python install manager's install_dir, global_dir and download_d...
Steve Dower [Tue, 11 Nov 2025 20:02:49 +0000 (20:02 +0000)] 
Add documentation for Python install manager's install_dir, global_dir and download_dir (GH-140223)

2 weeks agogh-139533: fix refs to code without proper markups on turtledemo doc (GH-139534)
Marco Barbosa [Tue, 11 Nov 2025 19:35:55 +0000 (16:35 -0300)] 
gh-139533: fix refs to code without proper markups on turtledemo doc (GH-139534)

gh-139533: fix refs to code without proper markups on turtledemo documentation

2 weeks agogh-140193: Forward port test_exec_set_nomemory_hang from 3.13 (GH-140187)
yihong [Tue, 11 Nov 2025 19:27:56 +0000 (03:27 +0800)] 
gh-140193: Forward port test_exec_set_nomemory_hang from 3.13 (GH-140187)

* chore: test_exec_set_nomemory_hang from 3.13

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
* fix: apply comments

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
* Update Lib/test/test_exceptions.py

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* Update Lib/test/test_exceptions.py

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* fix: windows too long name 60 times is enough

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
---------

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2 weeks agogh-141415: Remove unused variables and comment in `_pyrepl.windows_console.py` (...
Tan Long [Tue, 11 Nov 2025 19:27:21 +0000 (03:27 +0800)] 
gh-141415: Remove unused variables and comment in `_pyrepl.windows_console.py` (#141416)

2 weeks agogh-141004: Document `PyType_Unwatch` (GH-141414)
Peter Bierma [Tue, 11 Nov 2025 17:22:16 +0000 (12:22 -0500)] 
gh-141004: Document `PyType_Unwatch` (GH-141414)

2 weeks agogh-140942: Add MIME type for .cjs extension (#140937)
John Franey [Tue, 11 Nov 2025 14:33:56 +0000 (10:33 -0400)] 
gh-140942: Add MIME type for .cjs extension (#140937)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2 weeks agogh-132657: optimize `PySet_Contains` for `frozenset` (#141183)
Kumar Aditya [Tue, 11 Nov 2025 14:32:32 +0000 (20:02 +0530)] 
gh-132657: optimize `PySet_Contains` for `frozenset` (#141183)

2 weeks agogh-141169: Re-raise exception from findfuncptr (GH-141349)
Petr Viktorin [Tue, 11 Nov 2025 12:52:13 +0000 (13:52 +0100)] 
gh-141169: Re-raise exception from findfuncptr (GH-141349)

2 weeks agogh-141004: document Py_INFINITY and Py_NAN macros (#141145)
Sergey B Kirpichev [Tue, 11 Nov 2025 10:13:59 +0000 (13:13 +0300)] 
gh-141004: document Py_INFINITY and Py_NAN macros (#141145)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141376: Fix exported symbols (GH-141377)
Victor Stinner [Tue, 11 Nov 2025 08:21:24 +0000 (09:21 +0100)] 
gh-141376: Fix exported symbols (GH-141377)

* gh-141376: Fix exported symbols

* _io module: add "_Py_" prefix to "spec" variables. For example,
  rename bufferedrandom_spec to _Py_bufferedrandom_spec.
* typevarobject.c: add "static" to "spec" and "slots" variables.
* import.c: add "static" to "pkgcontext" variable.

* No longer export textiowrapper_slots

2 weeks agogh-140379: add hyperlinks to list and set (GH-140399)
Krishna Chaitanya [Tue, 11 Nov 2025 06:02:46 +0000 (11:32 +0530)] 
gh-140379: add hyperlinks to list and set (GH-140399)

add hyperlinks to list and set

2 weeks agogh-140485: Catch ChildProcessError in multiprocessing resource tracker (GH-141132)
Victor Stinner [Tue, 11 Nov 2025 04:59:16 +0000 (05:59 +0100)] 
gh-140485: Catch ChildProcessError in multiprocessing resource tracker (GH-141132)

2 weeks agogh-140578: Doc: Remove sencence implying that concurrent.futures.ThreadPoolExecutor...
Louis [Tue, 11 Nov 2025 04:50:30 +0000 (05:50 +0100)] 
gh-140578: Doc: Remove sencence implying that concurrent.futures.ThreadPoolExecutor does not exist (#140689)

* Doc: Remove sencence implying that concurrent.futures.ThreadPoolExecutor does not exist

Closes #140578

* Add NEWS.d entry for gh-140578

---------

Co-authored-by: Louis Paternault <spalax@gresille.org>
2 weeks agogh-141004: Document missing frame APIs (GH-141189)
Peter Bierma [Mon, 10 Nov 2025 21:35:47 +0000 (16:35 -0500)] 
gh-141004: Document missing frame APIs (GH-141189)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
2 weeks agogh-141004: Document `PyType_FastSubclass` (GH-141313)
Stan Ulbrych [Mon, 10 Nov 2025 17:46:41 +0000 (17:46 +0000)] 
gh-141004: Document `PyType_FastSubclass` (GH-141313)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2 weeks agoGH-141212: Fix possible memory leak in gc_mark_span_push (gh-141213)
Sergey Miryanov [Mon, 10 Nov 2025 16:19:13 +0000 (21:19 +0500)] 
GH-141212: Fix possible memory leak in gc_mark_span_push (gh-141213)

2 weeks agogh-141004: Deprecate Py_MATH_El and Py_MATH_PIl macros (#141035)
Sergey B Kirpichev [Mon, 10 Nov 2025 15:36:01 +0000 (18:36 +0300)] 
gh-141004: Deprecate Py_MATH_El and Py_MATH_PIl macros (#141035)

Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-141174: Improve `annotationlib._Stringifier` test coverage (#141220)
dr-carlos [Mon, 10 Nov 2025 14:56:45 +0000 (01:26 +1030)] 
gh-141174: Improve `annotationlib._Stringifier` test coverage (#141220)

* Test `_Stringifier.__convert_to_ast()` for containers

* Test partial evaluation of `ForwardRef`s in `_Stringifier`

2 weeks agogh-141343: Fix swapped words in `sorted` doc (GH-141348)
Yongzi Li [Mon, 10 Nov 2025 14:55:15 +0000 (22:55 +0800)] 
gh-141343: Fix swapped words in `sorted` doc (GH-141348)

2 weeks agogh-141174: Improve `annotationlib.call_annotate_function()` test coverage (#141176)
dr-carlos [Mon, 10 Nov 2025 14:54:50 +0000 (01:24 +1030)] 
gh-141174: Improve `annotationlib.call_annotate_function()` test coverage (#141176)

* Test passing unsupported Format values to call_annotate_function()

* Test call_evaluate_function with fake globals that raise errors

* Fix typo and comparison in test_fake_global_evaluation

2 weeks agogh-141174: Improve `ForwardRef` test coverage (#141175)
dr-carlos [Mon, 10 Nov 2025 14:53:40 +0000 (01:23 +1030)] 
gh-141174: Improve `ForwardRef` test coverage (#141175)

* Test unsupported format in ForwardRef.evaluate()

* Test dict cell closure with multiple variables

* Test all options in ForwardRef repr

* Test ForwardRef being a final class

2 weeks agogh-141341: Rename COMPILER macro to _Py_COMPILER on Windows (#141342)
Victor Stinner [Mon, 10 Nov 2025 14:50:51 +0000 (15:50 +0100)] 
gh-141341: Rename COMPILER macro to _Py_COMPILER on Windows (#141342)

2 weeks agogh-141174: Improve `annotationlib.get_annotations()` test coverage (#141286)
dr-carlos [Mon, 10 Nov 2025 14:45:22 +0000 (01:15 +1030)] 
gh-141174: Improve `annotationlib.get_annotations()` test coverage (#141286)

* Test `get_annotations(format=Format.VALUE)` for stringized annotations on custom objects

* Test `get_annotations(format=Format.VALUE)` for stringized annotations on wrapped partial functions

* Update test_stringized_annotations_with_star_unpack() to actually test stringized annotations

* Test __annotate__ returning a non-dict

* Test passing globals and locals to stringized `get_annotations()`

2 weeks agogh-137530: generate an __annotate__ function for dataclasses __init__ (GH-137711)
David Ellis [Mon, 10 Nov 2025 13:57:11 +0000 (13:57 +0000)] 
gh-137530: generate an __annotate__ function for dataclasses __init__ (GH-137711)

2 weeks agogh-136702: Clear codec caches for refleak tests; use test.support helpers (GH-141345)
Petr Viktorin [Mon, 10 Nov 2025 13:42:18 +0000 (14:42 +0100)] 
gh-136702: Clear codec caches for refleak tests; use test.support helpers (GH-141345)

This should fix refleak buildbots.

2 weeks agogh-139707: Specify `winreg`, `msvcrt` and `winsound` module availability in docs...
Stan Ulbrych [Mon, 10 Nov 2025 13:37:34 +0000 (13:37 +0000)] 
gh-139707: Specify `winreg`, `msvcrt` and `winsound` module availability in docs (GH-140429)

2 weeks agogh-140500: Update download.html instructions (#141320)
Karina Souza [Mon, 10 Nov 2025 12:39:49 +0000 (04:39 -0800)] 
gh-140500: Update download.html instructions (#141320)

Co-authored-by: Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
2 weeks agogh-141004: Document `pyctype.h` macros (GH-141272)
Stan Ulbrych [Mon, 10 Nov 2025 10:05:06 +0000 (10:05 +0000)] 
gh-141004: Document `pyctype.h` macros (GH-141272)

2 weeks agogh-141004: Document `Py_DTSF_*` macros (GH-141310)
Stan Ulbrych [Mon, 10 Nov 2025 00:43:03 +0000 (00:43 +0000)] 
gh-141004: Document `Py_DTSF_*` macros (GH-141310)