]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
2 weeks agogh-143728: Keep `TypedDict` and `NamedTuple` in `class` role in docs (#143702)
Bartosz Sławecki [Tue, 13 Jan 2026 13:52:29 +0000 (14:52 +0100)] 
gh-143728: Keep `TypedDict` and `NamedTuple` in `class` role in docs (#143702)

2 weeks agoBump GitHub Actions (#143757)
Hugo van Kemenade [Tue, 13 Jan 2026 13:43:26 +0000 (15:43 +0200)] 
Bump GitHub Actions (#143757)

2 weeks agoremove duplicate error constants in `_winapi` (#143684)
Yongtao Huang [Tue, 13 Jan 2026 13:41:38 +0000 (21:41 +0800)] 
remove duplicate error constants in `_winapi` (#143684)

2 weeks agogh-141045: Document that shutil.Error is a subclass of OSError (#141152)
Lakshya Upadhyaya [Tue, 13 Jan 2026 13:38:26 +0000 (19:08 +0530)] 
gh-141045: Document that shutil.Error is a subclass of OSError (#141152)

2 weeks agogh-143249: Fix buffer leak when overlapped operation fails to start on windows (...
Yongtao Huang [Tue, 13 Jan 2026 13:31:24 +0000 (21:31 +0800)] 
gh-143249: Fix buffer leak when overlapped operation fails to start on windows (#143250)

2 weeks agogh-141004: Don't trigger `run-tests` when `Tools/check-c-api-docs/ignored_c_api.txt...
Stan Ulbrych [Tue, 13 Jan 2026 13:28:09 +0000 (13:28 +0000)] 
gh-141004: Don't trigger `run-tests` when `Tools/check-c-api-docs/ignored_c_api.txt` is changed (GH-143583)

2 weeks agogh-143054: Disallow non-top-level Cut for now (GH-143622)
Petr Viktorin [Tue, 13 Jan 2026 12:21:59 +0000 (13:21 +0100)] 
gh-143054: Disallow non-top-level Cut for now (GH-143622)

The behaviour of Cut in nested parentheses, Repeat, Opt, and similar
is somewhat chaotic. Apparently even the academic papers on PEG aren't
as clear as they could be.

And it doesn't really matter. Python only uses top-level cuts.
When that changes, we can clarify as much as necessary (and even
change the implementation to make sense for what we'll need).

Document that this is deliberately unspecified, and add a test to
make sure any decision is deliberate, tested and documented.

2 weeks agogh-141004: Document symbol visibility macros (PyAPI_DATA, Py_EXPORTED_SYMBOL, Py_LOCA...
Yashraj [Tue, 13 Jan 2026 12:15:02 +0000 (17:45 +0530)] 
gh-141004: Document symbol visibility macros (PyAPI_DATA, Py_EXPORTED_SYMBOL, Py_LOCAL_SYMBOL,Py_IMPORTED_SYMBOL) (GH-143508)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-132108: Add Buffer Protocol support to int.from_bytes to improve performance ...
Cody Maloney [Tue, 13 Jan 2026 09:33:26 +0000 (01:33 -0800)] 
gh-132108: Add Buffer Protocol support to int.from_bytes to improve performance (#132109)

Speed up conversion from `bytes-like` objects like `bytearray` while
keeping conversion from `bytes` stable.

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-141004: GHA: Run `check-c-api-docs` check on docs-only PRs (GH-143573)
Stan Ulbrych [Tue, 13 Jan 2026 09:18:48 +0000 (09:18 +0000)] 
gh-141004: GHA: Run `check-c-api-docs` check on docs-only PRs (GH-143573)

Co-authored-by: 🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) <wk.cvs.github@sydorenko.org.ua>
2 weeks agogh-143658: importlib.metadata: Use `str.translate` to improve performance of `importl...
Hugo van Kemenade [Tue, 13 Jan 2026 06:54:15 +0000 (08:54 +0200)] 
gh-143658: importlib.metadata: Use `str.translate` to improve performance of `importlib.metadata.Prepared.normalized` (#143660)

Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
2 weeks agoUpdate random combinatoric recipes and add tests (gh-143762)
Raymond Hettinger [Mon, 12 Jan 2026 23:55:02 +0000 (17:55 -0600)] 
Update random combinatoric recipes and add tests (gh-143762)

2 weeks agogh-143706: Fix sys.argv not set during multiprocessing forkserver `__main__` preload...
Gregory P. Smith [Mon, 12 Jan 2026 23:47:21 +0000 (15:47 -0800)] 
gh-143706: Fix sys.argv not set during multiprocessing forkserver `__main__` preload (#143717)

The forkserver was not passing sys.argv to its main() function, causing
sys.argv to be empty during `__main__` module import in child processes. This
fixes a non-obvious regression inadvertently introduced by the gh-126631 main
preloading fix.

2 weeks agoBump automatic certificate update on Windows during builds (GH-143741)
Łukasz Langa [Mon, 12 Jan 2026 23:01:01 +0000 (00:01 +0100)] 
Bump automatic certificate update on Windows during builds (GH-143741)

Without this, OpenSSL that we use to download external dependencies might use a stale certificate store and be unable to connect to servers. We need to use a Windows-specific HTTP client that uses CryptoAPI directly to trigger certificate updates.

We only do it on failure to avoid hitting servers twice. And we only do it once per each URL.

2 weeks agoAdd Savannah to optimizer CODEOWNERS (#143761)
Savannah Ostrowski [Mon, 12 Jan 2026 22:56:05 +0000 (14:56 -0800)] 
Add Savannah to optimizer CODEOWNERS (#143761)

2 weeks agogh-134584: Add more contributors for JIT refcounting work (GH-143760)
Ken Jin [Mon, 12 Jan 2026 22:14:52 +0000 (06:14 +0800)] 
gh-134584: Add more contributors for JIT refcounting work (GH-143760)

2 weeks agogh-134584: Eliminate redundant refcounting in TO_BOOL_INT, TO_BOOL_LIST (GH-143759)
reiden [Mon, 12 Jan 2026 21:56:26 +0000 (22:56 +0100)] 
gh-134584: Eliminate redundant refcounting in TO_BOOL_INT, TO_BOOL_LIST (GH-143759)

2 weeks agoMinor readability/usability improvement to the recipes section (gh-143753)
Raymond Hettinger [Mon, 12 Jan 2026 20:12:23 +0000 (14:12 -0600)] 
Minor readability/usability improvement to the recipes section (gh-143753)

2 weeks agoGH-43374: Revert "GH-43374: Fix urlretrieve reporthook to report actual bytes r…...
Savannah Ostrowski [Mon, 12 Jan 2026 19:03:42 +0000 (11:03 -0800)] 
GH-43374: Revert "GH-43374: Fix urlretrieve reporthook to report actual bytes r… (#143711)

Revert "GH-43374: Fix urlretrieve reporthook to report actual bytes read (#142653)"

This reverts commit 68a01f901f446f71aac88431e01bb18b9fa35bd0.

2 weeks agogh-143196: Fix crash in non-standard use of internal JSON encoder object (GH-143618)
Serhiy Storchaka [Mon, 12 Jan 2026 18:23:05 +0000 (20:23 +0200)] 
gh-143196: Fix crash in non-standard use of internal JSON encoder object (GH-143618)

The internal encoder object returned by undocumented function
json.encoder.c_make_encoder() (aka _json.make_encoder()) crashed
when it was called with non-zero second argument.

2 weeks agogh-142461: Move misplaced NEWS entries to an appropriate section (GH-143411)
Aniket [Mon, 12 Jan 2026 18:13:44 +0000 (23:43 +0530)] 
gh-142461: Move misplaced NEWS entries to an appropriate section (GH-143411)

2 weeks agogh-139707: Copy-strip change to idle.rst into idlelib (#143718)
Terry Jan Reedy [Mon, 12 Jan 2026 17:55:06 +0000 (12:55 -0500)] 
gh-139707: Copy-strip change to idle.rst into idlelib (#143718)

On Windows, running `python -c "from idlelib.help import copy_strip;
copy_strip()"` after idle.html is built results in
`f:\dev\3x\Doc\build\html\library\idle.html
copied to f:\dev\3x\Lib\idlelib\help.html`
This PR commits the html change to idlelib/help.html.

2 weeks agogh-140795: Remove 'exc' field in SSLObject (gh-143491)
Sam Gross [Mon, 12 Jan 2026 17:14:13 +0000 (12:14 -0500)] 
gh-140795: Remove 'exc' field in SSLObject (gh-143491)

The 'exc' field was used by our debug SSL callbacks. Keep the exception
in the normal per-thread state to avoid shared mutable state between
threads.

This also avoids a reference count leak if the Python callback raised an
exception because it can be called multiple times per SSL operation.

2 weeks agogh-142518: Document thread-safety guarantees of list operations (#142519)
Lysandros Nikolaou [Mon, 12 Jan 2026 16:43:05 +0000 (17:43 +0100)] 
gh-142518: Document thread-safety guarantees of list operations (#142519)

* Add everything to code blocks
* Improve wording around atomicity; specify exact types
* Better explain lock-free and atomicity

2 weeks agogh-134584: Eliminate redundant refcounting from `_CONTAINS_{OP|OP_SET|OP_DICT}` ...
Nadeshiko Manju [Mon, 12 Jan 2026 15:47:31 +0000 (23:47 +0800)] 
gh-134584: Eliminate redundant refcounting from `_CONTAINS_{OP|OP_SET|OP_DICT}` (GH-143731)

Signed-off-by: Manjusaka <me@manjusaka.me>
2 weeks agogh-143544: Fix possible use-after-free in the JSON decoder when JSONDecodeError disap...
VanshAgarwal24036 [Mon, 12 Jan 2026 15:39:32 +0000 (21:09 +0530)] 
gh-143544: Fix possible use-after-free in the JSON decoder when JSONDecodeError disappears during raising it (#143561)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2 weeks agogh-143253: Add libabigail suppression file for internal types (#143254)
Pablo Galindo Salgado [Mon, 12 Jan 2026 15:37:43 +0000 (15:37 +0000)] 
gh-143253: Add libabigail suppression file for internal types (#143254)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2 weeks agogh-137113 docs: note readline no longer supported in REPL after 3.13 (GH-137142)
Kuang Yu Heng [Mon, 12 Jan 2026 15:30:35 +0000 (07:30 -0800)] 
gh-137113 docs: note readline no longer supported in REPL after 3.13 (GH-137142)

Add a note to the readline module documentation stating that
Python 3.13 and later no longer supports readline in the default REPL,
as per gh-118840. Includes workaround using PYTHON_BASIC_REPL.

Update tutorial to remove the reference, and use a different key to
test things out.

Signed-off-by: Kuang Yu Heng <yuheng3107@gmail.com>
2 weeks agogh-134584: JIT: Remove redundant refcount for _BINARY_OP_SUBSCR_DICT (GH-143724)
Cajetan Rodrigues [Mon, 12 Jan 2026 14:13:55 +0000 (15:13 +0100)] 
gh-134584: JIT: Remove redundant refcount for _BINARY_OP_SUBSCR_DICT (GH-143724)

2 weeks agogh-141004: Document PyUnicode_IS_COMPACT and PyUnicode_IS_COMPACT_ASCII macros (GH...
Yashraj [Mon, 12 Jan 2026 12:59:59 +0000 (18:29 +0530)] 
gh-141004: Document PyUnicode_IS_COMPACT and PyUnicode_IS_COMPACT_ASCII macros (GH-143494)

2 weeks agogh-140806: add docs for `enum.bin` function (#140807)
Guo Ci [Mon, 12 Jan 2026 11:34:18 +0000 (06:34 -0500)] 
gh-140806: add docs for `enum.bin` function (#140807)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2 weeks agogh-143189: fix insertdict() for non-Unicode key (#143285)
Inada Naoki [Mon, 12 Jan 2026 11:21:23 +0000 (20:21 +0900)] 
gh-143189: fix insertdict() for non-Unicode key (#143285)

2 weeks ago gh-143578: Restore note about patchlevel.h (#143596)
Petr Viktorin [Mon, 12 Jan 2026 11:21:14 +0000 (12:21 +0100)] 
 gh-143578: Restore note about patchlevel.h (#143596)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2 weeks agogh-142306: Improve errors for Element.remove() (GH-142308)
Serhiy Storchaka [Mon, 12 Jan 2026 09:49:18 +0000 (11:49 +0200)] 
gh-142306: Improve errors for Element.remove() (GH-142308)

* Raise TypeError for non-element argument in the Python implementation
  too.
* Include the repr of the elements in the ValueError error message.

2 weeks agogh-142881: Fix concurrent and reentrant call of atexit.unregister() (GH-142901)
Serhiy Storchaka [Mon, 12 Jan 2026 08:45:10 +0000 (10:45 +0200)] 
gh-142881: Fix concurrent and reentrant call of atexit.unregister() (GH-142901)

2 weeks agogh-143346: Fix calculation of the line width for wrapped Base64 in plistlib (GH-143347)
Serhiy Storchaka [Mon, 12 Jan 2026 08:40:06 +0000 (10:40 +0200)] 
gh-143346: Fix calculation of the line width for wrapped Base64 in plistlib (GH-143347)

It was incorrect in case of mixed tabs and spaces in indentation.

2 weeks agogh-134584: JIT: Remove redundant refcounting for UNARY_{INVERT|NEGATIVE} (GH-143704)
Ken Jin [Sun, 11 Jan 2026 20:42:55 +0000 (04:42 +0800)] 
gh-134584: JIT: Remove redundant refcounting for UNARY_{INVERT|NEGATIVE} (GH-143704)

2 weeks agogh-142972: Document arbitrary ordering in `Path.glob` and `Path.rglob` (GH-143025)
Bartosz Sławecki [Sun, 11 Jan 2026 19:36:47 +0000 (20:36 +0100)] 
gh-142972: Document arbitrary ordering in `Path.glob` and `Path.rglob` (GH-143025)

2 weeks agogh-128335: Make slice generic at runtime (#128336)
James Hilton-Balfe [Sun, 11 Jan 2026 19:27:24 +0000 (19:27 +0000)] 
gh-128335: Make slice generic at runtime (#128336)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2 weeks agogh-127750: Fix annotations in singledispatchmethod signature tests (GH-143571)
Bartosz Sławecki [Sun, 11 Jan 2026 19:24:19 +0000 (20:24 +0100)] 
gh-127750: Fix annotations in singledispatchmethod signature tests (GH-143571)

These tests relied on a bug -- gh-84644, which is that singledispatch
doesn't verify the annotation is on the "first" parameter.

2 weeks agogh-139038: Update JIT perf figures for 3.14a4 (GH-143705)
Ken Jin [Sun, 11 Jan 2026 18:55:05 +0000 (02:55 +0800)] 
gh-139038: Update JIT perf figures for 3.14a4 (GH-143705)

2 weeks agogh-143420: Clarify sequence behavior for slice indexes (#143422)
Sergey B Kirpichev [Sun, 11 Jan 2026 17:17:47 +0000 (20:17 +0300)] 
gh-143420: Clarify sequence behavior for slice indexes (#143422)

2 weeks agogh-86139: Correct NamedTuple and TypedDict's type in typing.rst (#143692)
AN Long [Sun, 11 Jan 2026 15:53:25 +0000 (00:53 +0900)] 
gh-86139: Correct NamedTuple and TypedDict's type in typing.rst (#143692)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2 weeks agogh-78724: Raise RuntimeError's when calling methods on non-ready Struct()'s (GH-143643)
Sergey B Kirpichev [Sun, 11 Jan 2026 15:52:01 +0000 (18:52 +0300)] 
gh-78724: Raise RuntimeError's when calling methods on non-ready Struct()'s (GH-143643)

2 weeks agogh-143638: Forbid cuncurrent use of the Pickler and Unpickler objects in C implementa...
Serhiy Storchaka [Sun, 11 Jan 2026 12:01:13 +0000 (14:01 +0200)] 
gh-143638: Forbid cuncurrent use of the Pickler and Unpickler objects in C implementation (GH-143664)

Previously, this could cause crash or data corruption, now concurrent calls
of methods of the same object raise RuntimeError.

2 weeks agoRemove outdated comment about `excess_args` warning in `object.__init__` (#143669)
Manuel Jacob [Sun, 11 Jan 2026 07:27:11 +0000 (08:27 +0100)] 
Remove outdated comment about `excess_args` warning in `object.__init__` (#143669)

The code emitting a warning was removed in 96384b93aae1d1e45dda21c4024d7d083c91626d.

2 weeks agoSync the batched() example with the grouper() example. (gh-143676)
Raymond Hettinger [Sun, 11 Jan 2026 04:00:13 +0000 (22:00 -0600)] 
Sync the batched() example with the grouper() example. (gh-143676)

2 weeks agoAdd derangements() recipe (gh-143671)
Raymond Hettinger [Sun, 11 Jan 2026 01:47:27 +0000 (19:47 -0600)] 
Add derangements() recipe (gh-143671)

2 weeks agoDoc: remove duplicate GitHub issue reference in "What's New in Python 3.13" (#143654)
emmanuel [Sat, 10 Jan 2026 13:34:30 +0000 (22:34 +0900)] 
Doc: remove duplicate GitHub issue reference in "What's New in Python 3.13" (#143654)

2 weeks agogh-143377: fix crashes in `_interpreters.capture_exception` (#143418)
Bénédikt Tran [Sat, 10 Jan 2026 11:37:54 +0000 (12:37 +0100)] 
gh-143377: fix crashes in `_interpreters.capture_exception` (#143418)

2 weeks agogh-143604: Hold strong reference to executor during JIT tracing (GH-143646)
Nadeshiko Manju [Sat, 10 Jan 2026 11:15:48 +0000 (19:15 +0800)] 
gh-143604: Hold strong reference to executor during JIT tracing (GH-143646)

Co-authored-by: Ken Jin <kenjin4096@gmail.com>
2 weeks agogh-143641: Make `ready_to_import` always remove tempdir from `sys.path` (#143642)
Jeong, YunWon [Sat, 10 Jan 2026 09:51:42 +0000 (18:51 +0900)] 
gh-143641: Make `ready_to_import` always remove tempdir from `sys.path` (#143642)

Make ready_to_import always remove tempdir from sys.path

2 weeks agogh-143586: Add Counter comparison tests to enforce missing element semantics (gh...
Heikki Toivonen [Sat, 10 Jan 2026 06:17:57 +0000 (22:17 -0800)] 
gh-143586: Add Counter comparison tests to enforce missing element semantics (gh-143587)

2 weeks agogh-142764: Restore REPLACE_OPCODE_IF_EVALUATES_PURE optimization for some ops (GH...
Ken Jin [Fri, 9 Jan 2026 23:18:22 +0000 (07:18 +0800)] 
gh-142764: Restore REPLACE_OPCODE_IF_EVALUATES_PURE optimization for some ops (GH-143335)

2 weeks agogh-143421: Allocate all JIT state in one go (GH-143626)
Ken Jin [Fri, 9 Jan 2026 19:00:49 +0000 (03:00 +0800)] 
gh-143421: Allocate all JIT state in one go (GH-143626)

2 weeks agogh-141004: Document remaining constants from patchlevel.h (GH-143598)
Petr Viktorin [Fri, 9 Jan 2026 17:40:07 +0000 (18:40 +0100)] 
gh-141004: Document remaining constants from patchlevel.h (GH-143598)

Co-authored-by: Victor Stinner <vstinner@python.org>
2 weeks agogh-136438: Make sure `test_interpreters` pass with all optimization levels (GH-136499)
Semyon Moroz [Fri, 9 Jan 2026 17:06:54 +0000 (17:06 +0000)] 
gh-136438: Make sure `test_interpreters` pass with all optimization levels (GH-136499)

2 weeks agogh-143006: Fix and optimize mixed comparison of float and int (GH-143084)
Serhiy Storchaka [Fri, 9 Jan 2026 17:06:45 +0000 (19:06 +0200)] 
gh-143006: Fix and optimize mixed comparison of float and int (GH-143084)

When comparing negative non-integer float and int with the same number
of bits in the integer part, __neg__() in the int subclass returning
not an int caused an assertion error.

Now the integer is no longer negated. Also, reduced the number of
temporary created Python objects.

2 weeks agogh-143421: Lazily allocate tracer code and opt buffers (GH-143597)
Ken Jin [Fri, 9 Jan 2026 16:56:19 +0000 (00:56 +0800)] 
gh-143421: Lazily allocate tracer code and opt buffers (GH-143597)

2 weeks agogh-143460: Skip infinite recusion tests for infinite stack size (#143606)
Jan André Reuter [Fri, 9 Jan 2026 16:11:37 +0000 (17:11 +0100)] 
gh-143460: Skip infinite recusion tests for infinite stack size (#143606)

Avoid tests being killed due to OOM on Linux if a system is configured with
'ulimit -s unlimited' by skipping tests relying on infinite recursion.

While unclear if Python should support 'ulimit -s unlimited', we should at
least try to avoid failing a PGO build running tests due to an unlimited
stack size being set.

Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
2 weeks agogh-106318: Add examples for str.rfind() method (#143582)
Adorilson Bezerra [Fri, 9 Jan 2026 15:24:31 +0000 (15:24 +0000)] 
gh-106318: Add examples for str.rfind() method (#143582)

2 weeks ago gh-106318: Improve str.removeprefix() and str.removesuffix() docs (#143580)
Adorilson Bezerra [Fri, 9 Jan 2026 15:22:50 +0000 (15:22 +0000)] 
 gh-106318: Improve str.removeprefix() and str.removesuffix() docs (#143580)

Add doctest role and 'See also'.

2 weeks agogh-143191: Use _PyOS_MIN_STACK_SIZE in _thread.stack_size() (#143601)
Victor Stinner [Fri, 9 Jan 2026 15:08:40 +0000 (16:08 +0100)] 
gh-143191: Use _PyOS_MIN_STACK_SIZE in _thread.stack_size() (#143601)

The stack size must be at least _PyOS_MIN_STACK_SIZE+SYSTEM_PAGE_SIZE
bytes.

3 weeks agogh-142829: Fix use-after-free in `Context.__eq__` via re-entrant `ContextVar.set...
A.Ibrahim [Fri, 9 Jan 2026 12:27:34 +0000 (13:27 +0100)] 
gh-142829: Fix use-after-free in `Context.__eq__` via re-entrant `ContextVar.set` (#142905)

3 weeks agogh-72239: Add note distinguishing concurrent.futures.Future from asyncio.Future ...
AN Long [Fri, 9 Jan 2026 12:18:32 +0000 (21:18 +0900)] 
gh-72239: Add note distinguishing concurrent.futures.Future from asyncio.Future (#143288)

3 weeks agogh-143547: Fix PyErr_FormatUnraisable() fallback (#143557)
Victor Stinner [Fri, 9 Jan 2026 12:16:22 +0000 (13:16 +0100)] 
gh-143547: Fix PyErr_FormatUnraisable() fallback (#143557)

Hold a strong reference to 'hook' while calling the default
unraisable took to log hook failure.

Fix test_sys.UnraisableHookTest: use the right decorator function to
disable colors. Previously, tests were always skipped.

3 weeks agogh-143378: Fix use-after-free when BytesIO is concurrently mutated during write opera...
zhong [Fri, 9 Jan 2026 11:50:56 +0000 (03:50 -0800)] 
gh-143378: Fix use-after-free when BytesIO is concurrently mutated during write operations (GH-143408)

PyObject_GetBuffer() can execute user code (e.g. via __buffer__), which may
close or otherwise mutate a BytesIO object while write() or writelines()
is in progress. This could invalidate the internal buffer and lead to a
use-after-free.

Ensure that PyObject_GetBuffer() is called before validation checks.

3 weeks agogh-143429: Use compile-time NaN encoding detection for test_struct (#143432)
Henry Chen [Fri, 9 Jan 2026 10:46:48 +0000 (18:46 +0800)] 
gh-143429: Use compile-time NaN encoding detection for test_struct (#143432)

3 weeks agogh-141004: Improve `make check-c-api-docs` (GH-143564)
Petr Viktorin [Fri, 9 Jan 2026 10:16:50 +0000 (11:16 +0100)] 
gh-141004: Improve `make check-c-api-docs` (GH-143564)

- Gather all documented names into a set in a single pass.
  This makes the check much faster.

- Do not match substrings (e.g. documenting `PyErr_WarnEx`
  doesn't mean that `PyErr_Warn` is documented)

- Consider `PY`-prefixed names (a lot of old macros use this)

3 weeks agoTest: remove unintended unittest.main() in live collector tests (#143590)
Yongtao Huang [Fri, 9 Jan 2026 08:49:54 +0000 (16:49 +0800)] 
Test: remove unintended unittest.main() in live collector tests (#143590)

3 weeks agogh-106318: Add examples for str.replace() method (GH-143581)
Adorilson Bezerra [Fri, 9 Jan 2026 08:01:00 +0000 (08:01 +0000)] 
gh-106318: Add examples for str.replace() method (GH-143581)

3 weeks agoGH-43374: Fix urlretrieve reporthook to report actual bytes read (#142653)
Savannah Ostrowski [Fri, 9 Jan 2026 00:32:05 +0000 (16:32 -0800)] 
GH-43374: Fix urlretrieve reporthook to report actual bytes read (#142653)

3 weeks agoGH-139686: Revert "gh-139686: Make reloading a lazy module no-op (GH-139857)" (#143584)
Brett Cannon [Thu, 8 Jan 2026 22:08:03 +0000 (14:08 -0800)] 
GH-139686: Revert "gh-139686: Make reloading a lazy module no-op (GH-139857)" (#143584)

This reverts commits 57db12514ac686f0a752ec8fe1c08b6daa0c6219 and 0a97941245f1dda6d838f9aaf0512104e5253929.

3 weeks agoAdd Emscripten test skips for recently added tests. (#143551)
Russell Keith-Magee [Thu, 8 Jan 2026 21:47:38 +0000 (05:47 +0800)] 
Add Emscripten test skips for recently added tests. (#143551)

Some recent changes introduced tests that can't run on Emscripten.
This change adds test skips for those tests.

3 weeks agogh-120321: Make gen.gi_frame.clear() thread-safe (gh-143112)
Sam Gross [Thu, 8 Jan 2026 19:45:54 +0000 (14:45 -0500)] 
gh-120321: Make gen.gi_frame.clear() thread-safe (gh-143112)

3 weeks agogh-143421: Move `JitOptContext` from stack allocation to per-thread heap allocation...
Hai Zhu [Thu, 8 Jan 2026 19:38:21 +0000 (03:38 +0800)] 
gh-143421: Move `JitOptContext` from stack allocation to per-thread heap allocation (GH-143536)

* move JitOptContext to _PyThreadStateImpl
* make _PyUOpInstruction buffer a part of _PyThreadStateImpl

Co-authored-by: Kumar Aditya <kumaraditya@python.org>
3 weeks agogh-143445: Optimize deepcopy for 1.04x speedup (#143449)
Heikki Toivonen [Thu, 8 Jan 2026 15:28:02 +0000 (07:28 -0800)] 
gh-143445: Optimize deepcopy for 1.04x speedup (#143449)

Gains according to pyperformance:

```
deepcopy:
Mean +- std dev: 411 us +- 2 us -> 396 us +- 3 us: 1.04x faster
Significant (t=28.94)

deepcopy_reduce:
Mean +- std dev: 4.38 us +- 0.05 us -> 4.23 us +- 0.04 us: 1.04x faster
Significant (t=20.05)
```

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
3 weeks agogh-142908: Don't use `DK_IS_UNICODE` in interpreter (gh-142909)
Sam Gross [Thu, 8 Jan 2026 14:32:20 +0000 (09:32 -0500)] 
gh-142908: Don't use `DK_IS_UNICODE` in interpreter (gh-142909)

`DK_IS_UNICODE()` includes split keys and we don't want to specialize on
those accesses..

3 weeks agogh-142095: Use thread local frame info in `py-bt` and `py-bt-full` when available...
Sam Gross [Thu, 8 Jan 2026 14:18:24 +0000 (09:18 -0500)] 
gh-142095: Use thread local frame info in `py-bt` and `py-bt-full` when available (gh-143371)

In optimized and `-Og` builds, arguments and local variables are frequently
unavailable in gdb. This makes `py-bt` fail to print anything useful. Use the
`PyThreadState*` pointers `_Py_tss_gilstate` and `Py_tss_tstate` to find the
interpreter frame if we can't get the frame from the
`_PyEval_EvalFrameDefault` call.

Co-authored-by: Victor Stinner <vstinner@python.org>
3 weeks agogh-143513: Clarify changed argument name of `ResourceReader.is_resource` (GH-143523)
Alex Willmer [Thu, 8 Jan 2026 13:40:17 +0000 (13:40 +0000)] 
gh-143513: Clarify changed argument name of `ResourceReader.is_resource` (GH-143523)

3 weeks agogh-143528: Fix test_time.test_thread_time() (#143558)
Victor Stinner [Thu, 8 Jan 2026 13:05:57 +0000 (14:05 +0100)] 
gh-143528: Fix test_time.test_thread_time() (#143558)

Tolerate 100 ms instead of 20 ms to support slow CIs.

3 weeks agogh-140025: Fix `queue.SimpleQueue.__sizeof__()` to return correct size (#143137)
Aniket [Thu, 8 Jan 2026 12:40:25 +0000 (18:10 +0530)] 
gh-140025: Fix `queue.SimpleQueue.__sizeof__()` to return correct size (#143137)

3 weeks agogh-143553: Add support for parametrized resources in regrtests (GH-143554)
Serhiy Storchaka [Thu, 8 Jan 2026 11:51:38 +0000 (13:51 +0200)] 
gh-143553: Add support for parametrized resources in regrtests (GH-143554)

For example, "-u xpickle=2.7" will run test_xpickle only against Python 2.7.

3 weeks agogh-143517: Fix an edge case in rewriting stringified starred annotations (#143518)
Bartosz Sławecki [Thu, 8 Jan 2026 03:41:27 +0000 (04:41 +0100)] 
gh-143517: Fix an edge case in rewriting stringified starred annotations (#143518)

3 weeks agogh-143089: Fix ParamSpec default examples to use list instead of tuple (#143179)
VanshAgarwal24036 [Thu, 8 Jan 2026 03:32:44 +0000 (09:02 +0530)] 
gh-143089: Fix ParamSpec default examples to use list instead of tuple (#143179)

3 weeks agogh-129824: Fix data race on `runtime->gilstate.check_enabled` (gh-143530)
Sam Gross [Wed, 7 Jan 2026 22:56:14 +0000 (17:56 -0500)] 
gh-129824: Fix data race on `runtime->gilstate.check_enabled` (gh-143530)

3 weeks agoFix a typo in STORE_SLICE docs (#143500)
Tomas R. [Wed, 7 Jan 2026 22:36:22 +0000 (23:36 +0100)] 
Fix a typo in STORE_SLICE docs (#143500)

3 weeks agogh-143531: Use macro to check if PEP 523 is hooked (#143532)
Dino Viehland [Wed, 7 Jan 2026 21:26:19 +0000 (13:26 -0800)] 
gh-143531: Use macro to check if PEP 523 is hooked (#143532)

Use macro to check if PEP 523 is hooked

3 weeks agoGH-142950: Process format specifiers before colourization in argparse help (#142960)
Savannah Ostrowski [Wed, 7 Jan 2026 17:39:47 +0000 (09:39 -0800)] 
GH-142950: Process format specifiers before colourization in argparse help (#142960)

3 weeks agogh-117657: Remove remaining TSan suppressions (gh-143499)
Sam Gross [Wed, 7 Jan 2026 17:34:05 +0000 (12:34 -0500)] 
gh-117657: Remove remaining TSan suppressions (gh-143499)

3 weeks agogh-106318: Add examples for str.casefold() and str.lower() methods (#142154)
Adorilson Bezerra [Wed, 7 Jan 2026 16:16:25 +0000 (16:16 +0000)] 
gh-106318: Add examples for str.casefold() and str.lower() methods (#142154)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
3 weeks agogh-141536: Fix a crash when running test_capi *after* test_code in the same process...
T. Wouters [Wed, 7 Jan 2026 15:40:33 +0000 (16:40 +0100)] 
gh-141536: Fix a crash when running test_capi *after* test_code in the same process (#141537)

3 weeks agogh-138568: Make `help` mode in PyREPL not exit on empty line input (#143512)
Łukasz Langa [Wed, 7 Jan 2026 15:30:58 +0000 (16:30 +0100)] 
gh-138568: Make `help` mode in PyREPL not exit on empty line input (#143512)

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: yihong0618 <zouzou0208@gmail.com>
3 weeks agogh-94172: delete mention of ssl_version from ftplib doc (#143515)
Giampaolo Rodola [Wed, 7 Jan 2026 14:11:50 +0000 (15:11 +0100)] 
gh-94172: delete mention of ssl_version from ftplib doc (#143515)

`FTP_TLS.ssl_version` class attribute was removed in https://github.com/python/cpython/commit/ef0e72b31d2.

3 weeks agogh-141671: PyMODINIT_FUNC: apply `__declspec(dllexport)` on Windows (GH-141672)
Petr Viktorin [Wed, 7 Jan 2026 12:09:48 +0000 (13:09 +0100)] 
gh-141671: PyMODINIT_FUNC: apply `__declspec(dllexport)` on Windows (GH-141672)

3 weeks agogh-75572: Fix test_xpickle and disable it by default (GH-143503)
Serhiy Storchaka [Tue, 6 Jan 2026 23:51:12 +0000 (01:51 +0200)] 
gh-75572: Fix test_xpickle and disable it by default (GH-143503)

3 weeks agogh-106318: Add example for str.index() (#137023)
Adorilson Bezerra [Tue, 6 Jan 2026 21:42:11 +0000 (21:42 +0000)] 
gh-106318: Add example for str.index()  (#137023)

3 weeks agogh-134584: Eliminate redundant refcounting from `TO_BOOL_STR` (GH-143417)
Nadeshiko Manju [Tue, 6 Jan 2026 21:11:53 +0000 (05:11 +0800)] 
gh-134584: Eliminate redundant refcounting from `TO_BOOL_STR` (GH-143417)

Signed-off-by: Manjusaka <me@manjusaka.me>
3 weeks agogh-132070: Fix PyObject_Realloc thread-safety in free threaded Python (gh-143441)
Sam Gross [Tue, 6 Jan 2026 20:55:37 +0000 (15:55 -0500)] 
gh-132070: Fix PyObject_Realloc thread-safety in free threaded Python (gh-143441)

The PyObject header reference count fields must be initialized using
atomic operations because they may be concurrently read by another
thread (e.g., from `_Py_TryIncref`).

3 weeks agogh-142982: Specialize CALL_FUNCTION_EX (GH-143391)
Ken Jin [Tue, 6 Jan 2026 20:34:08 +0000 (04:34 +0800)] 
gh-142982: Specialize CALL_FUNCTION_EX (GH-143391)