Commit graph

119995 commits

Author SHA1 Message Date
Miss Islington (bot)
aee80cd5e7
[3.12] gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError in ConnectionHandler; rely on __exit__ (GH-126503) (GH-126572)
gh-126500: test_ssl: Don't stop ThreadedEchoServer on OSError in ConnectionHandler; rely on __exit__ (GH-126503)

If `read()` in the ConnectionHandler thread raises `OSError` (except `ConnectionError`),
the ConnectionHandler shuts down the entire ThreadedEchoServer,
preventing further connections.
It also does that for `EPROTOTYPE` in `wrap_conn`.

As far as I can see, this is done to avoid the server thread getting stuck,
forgotten, in its accept loop. However, since 2011 (5b95eb90a7)
the server is used as a context manager, and its `__exit__` does `stop()` and `join()`.
(I'm not sure if we *always* used `with` since that commit, but currently we do.)

Make sure that the context manager *is* used, and remove the `server.stop()`
calls from ConnectionHandler.
(cherry picked from commit c9cda1608e)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2024-11-11 15:26:10 +01:00
Miss Islington (bot)
d62f100fe1
[3.12] gh-126499: test_ssl: Don't assume err.reason is a string (GH-126501) (GH-126573)
gh-126499: test_ssl: Don't assume err.reason is a string (GH-126501)

The skipping machinery called `getattr(err, "reason", "")` on an arbitrary
exception. As intermittent Buildbot failures show, sometimes it's set
to None.

Convert it to string for this specific check.
(cherry picked from commit 78ad7e6322)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2024-11-11 13:56:08 +01:00
Miss Islington (bot)
75d251bb04
[3.12] Add missing fullstop . to whatsnew/3.8.rst (GH-126553) (#126673)
Add missing fullstop `.` to whatsnew/3.8.rst (GH-126553)
(cherry picked from commit 82269c7d58)

Co-authored-by: Rafael Fontenelle <rffontenelle@users.noreply.github.com>
2024-11-11 07:08:37 +00:00
Miss Islington (bot)
fb82e10ce4
[3.12] gh-126664: Use else instead of finally in "The with statement" documentation. (GH-126665) (#126671)
gh-126664: Use `else` instead of `finally` in "The with statement" documentation. (GH-126665)
(cherry picked from commit 25257d61cf)

Co-authored-by: vivodi <103735539+vivodi@users.noreply.github.com>
2024-11-11 06:57:15 +00:00
Miss Islington (bot)
7050aba5d7
[3.12] gh-117378: Clear up the NEWS entry wording (GH-126634) (#126669)
gh-117378: Clear up the NEWS entry wording (GH-126634)

gh-117378: Clear up the NEWS entry wording.

Docs are hard.  Lets go shopping!
(cherry picked from commit 5c488caeb8)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-11-11 06:48:23 +00:00
Miss Islington (bot)
55c5305690
[3.12] gh-126543: Docs: change "bound type var" to "bounded" when used in the context of the 'bound' kw argument to TypeVar (GH-126584) (#126658)
(cherry picked from commit 434b29767f)

Co-authored-by: Pedro Fonini <fonini@protonmail.ch>
2024-11-10 18:52:20 -08:00
Miss Islington (bot)
abb8265f02
[3.12] gh-117378: Only run the new multiprocessing SysPath test when appropriate (GH-126635) (GH-126653)
gh-117378: Only run the new multiprocessing SysPath test when appropriate (GH-126635)

The first version had it running two forkserver and one spawn tests underneath each of the _fork, _forkserver, and _spawn test suites that build off the generic one.

This adds to the existing complexity of the multiprocessing test suite by offering BaseTestCase classes another attribute to control which suites they are invoked under. Practicality vs purity here. :/

Net result: we don't over-run the new test and their internal logic is simplified.
(cherry picked from commit ca878b6e45)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-11-10 21:33:26 +00:00
Miss Islington (bot)
c47c6416c3
[3.12] Skip test in test_socket.py if sys.getrefcount isn't available (GH-126640) (#126646)
Skip test in test_socket.py if `sys.getrefcount` isn't available (GH-126640)

Skip `testMakefileCloseSocketDestroy` test if `sys.getrefcount` isn't available. This is necessary for  PyPy and other Python implementations that do not have `sys.getrefcount`.
(cherry picked from commit 0f6bb28ff3)

Co-authored-by: CF Bolz-Tereick <cfbolz@gmx.de>
2024-11-10 15:34:52 +00:00
Miss Islington (bot)
5030e81ded
[3.12] gh-126565: Skip zipfile.Path.exists check in write mode (GH-126576) (#126643)
gh-126565: Skip `zipfile.Path.exists` check in write mode (GH-126576)

When `zipfile.Path.open` is called, the implementation will check
whether the path already exists in the ZIP file. However, this check is
only required when the ZIP file is in read mode. By swapping arguments
of the `and` operator, the short-circuiting will prevent the check from
being run in write mode.

This change will improve the performance of `open()`, because checking
whether a file exists is slow in write mode, especially when the archive
has many members.
(cherry picked from commit 160758a574)

Co-authored-by: Jan Hicken <janhicken@users.noreply.github.com>
2024-11-10 15:14:48 +00:00
Miss Islington (bot)
61e6f0992f
[3.12] Postpone module.__loader__ deprecation to Python 3.16 (GH-126482) (#126637)
Postpone `module.__loader__` deprecation to Python 3.16 (GH-126482)
(cherry picked from commit 450db61a78)

Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-11-10 00:57:54 +00:00
Gregory P. Smith
7bb92ed505
[3.12] gh-117378: Fix multiprocessing forkserver preload sys.path inheritance. (GH-126538) (GH-126633)
gh-117378: Fix multiprocessing forkserver preload sys.path inheritance.

`sys.path` was not properly being sent from the parent process when launching
the multiprocessing forkserver process to preload imports.  This bug has been
there since the forkserver start method was introduced in Python 3.4.  It was
always _supposed_ to inherit `sys.path` the same way the spawn method does.

Observable behavior change: A `''` value in `sys.path` will now be replaced in
the forkserver's `sys.path` with an absolute pathname
`os.path.abspath(os.getcwd())` saved at the time that `multiprocessing` was
imported in the parent process as it already was when using the spawn start
method. **This will only be observable during forkserver preload imports**.

The code invoked before calling things in another process already correctly sets `sys.path`.
Which is likely why this went unnoticed for so long as a mere performance issue in
some configurations.

A workaround for the bug on impacted Pythons is to set PYTHONPATH in the
environment before multiprocessing's forkserver process was started. Not perfect
as that is then inherited by other children, etc, but likely good enough for many
people's purposes.

(cherry picked from commit 9d08423b6e)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-11-10 00:13:26 +00:00
Miss Islington (bot)
5fb443d625
[3.12] GH-126212: Fix removal of slashes in file URIs on Windows (GH-126214) (#126591)
GH-126212: Fix removal of slashes in file URIs on Windows (GH-126214)

Adjust `urllib.request.pathname2url()` and `url2pathname()` so that they
don't remove slashes from Windows DOS drive paths and URLs. There was no
basis for this behaviour, and it conflicts with how UNC and POSIX paths are
handled.
(cherry picked from commit 54c63a32d0)

Co-authored-by: Barney Gale <barney.gale@gmail.com>
2024-11-08 17:21:42 +00:00
Miss Islington (bot)
69849ad288
gh-125298: Remove misleading text in os.kill documentation (GH-125749)
Windows has not accepted process handles in many releases.
(cherry picked from commit 75ffac296e)

Co-authored-by: RUANG (James Roy) <longjinyii@outlook.com>
2024-11-08 15:47:46 +00:00
Miss Islington (bot)
fc1e9e606b
[3.12] gh-126171: fix possible null dereference in _imp_find_frozen_impl (GH-126566) (#126568)
gh-126171: fix possible null dereference in _imp_find_frozen_impl (GH-126566)
(cherry picked from commit 9ecd8f7f40)

Co-authored-by: Valery Fedorenko <federicovalenso@gmail.com>
2024-11-08 16:26:08 +05:30
Miss Islington (bot)
a0866f4c81
[3.12] Doc: C API: Demote sections to subsections for consistency (GH-126535) (#126545)
Doc: C API: Demote sections to subsections for consistency (GH-126535)

The entire file should be a single section; the headings below the
first heading should be subsections.
(cherry picked from commit e3510bd3dd)

Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2024-11-07 15:38:57 +00:00
Miss Islington (bot)
4f10b8eacf
[3.12] gh-125679: multiprocessing Lock and RLock - fix invalid representation string on MacOSX. (GH-125680) (#126534)
gh-125679: multiprocessing Lock and RLock - fix invalid representation string on MacOSX. (GH-125680)
(cherry picked from commit 75f7cf91ec)

Co-authored-by: Duprat <yduprat@gmail.com>
2024-11-07 09:50:46 +00:00
Miss Islington (bot)
d71da0feda
[3.12] gh-126451: Register contextvars.Context to collections.abc.Mapping (GH-126452) (#126519)
gh-126451: Register contextvars.Context to collections.abc.Mapping (GH-126452)
(cherry picked from commit 5dc36dc565)

Co-authored-by: Stephen Morton <git@tungol.org>
Co-authored-by: sobolevn <mail@sobolevn.me>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-11-06 22:37:37 +00:00
Serhiy Storchaka
a19832bfbf
[3.12] gh-126489: Do not call persistent_id() for a persistent id in Python pickle (GH-126490) (GH-126516)
(cherry picked from commit 8fa4dc4ba8)
2024-11-06 21:11:37 +00:00
Miss Islington (bot)
97ab3cf374
[3.12] gh-126461: Fix _Unpickler_ReadFromFile() error handling (GH-126485) (#126496)
gh-126461: Fix _Unpickler_ReadFromFile() error handling (GH-126485)

Handle _Unpickler_SetStringInput() failure.
(cherry picked from commit a1c57bcfd2)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-11-06 13:49:25 +00:00
Miss Islington (bot)
e6fd40ba18
[3.12] gh-126455: Disallow _ssl.SSLSocket instantiation (GH-126481) (#126487)
gh-126455: Disallow _ssl.SSLSocket instantiation (GH-126481)

Prevent creation of incomplete/invalid _ssl.SSLSocket objects when
created directly.
(cherry picked from commit b1c4ffc205)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-11-06 11:21:21 +00:00
Miss Islington (bot)
7a4262b064
[3.12] gh-122544: Change OS image in Azure pipeline to Ubuntu 24.04 (GH-125344) (#126480)
Co-authored-by: Damien <81557462+Damien-Chen@users.noreply.github.com>
2024-11-06 10:18:02 +00:00
Valery Fedorenko
2f39370f4a
[3.12] Fix possible null pointer dereference of freevars in _PyCompile_LookupArg (gh-126238) (#126474)
[3.12] gh-126238: Fix possible null pointer dereference of freevars in _PyCompile_LookupArg (GH-126239)

* Replace Py_DECREF by Py_XDECREF

(cherry picked from commit 8525c9375f)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-11-06 07:56:12 +00:00
Miss Islington (bot)
fc01844019
[3.12] gh-70764: inspect.getclosurevars now identifies global variables with LOAD_GLOBAL (GH-120143) (#126460)
gh-70764: inspect.getclosurevars now identifies global variables with LOAD_GLOBAL (GH-120143)
(cherry picked from commit 83ba8c2bba)

Co-authored-by: blhsing <blhsing@gmail.com>
2024-11-06 00:12:08 +00:00
Erlend E. Aasland
b00887d176
[3.12] gh-89640: harden float word ordering (#125571 and #126387) (#126430)
Properly detect float word ordering on Linux (gh-125571)

autoconf-archive patch by Dan Amelang.

(cherry picked from commit 26d627779f)

Hardcode WASM float word ordering to little endian (gh-126387)

(cherry picked from commit 532fc08102)
2024-11-05 23:19:13 +01:00
Miss Islington (bot)
786886a926
[3.12] gh-126425: Refactor _lsprof_Profiler_enable (GH-126426) (#126443)
gh-126425: Refactor `_lsprof_Profiler_enable` (GH-126426)

- Explicit memory management for `None` objects (since we still try to treat immortal objects as regular objects)
- Respect possible errors of `sys.monitoring.register_callback` call
(cherry picked from commit 75872605aa)

Co-authored-by: sobolevn <mail@sobolevn.me>
2024-11-05 12:42:33 +00:00
Alex Waygood
47d48b62dd
[3.12] gh-126417: Register multiprocessing proxy types to an appropriate collections.abc class (#126419) (#126436)
Co-authored-by: Stephen Morton <github@tungol.org>
2024-11-05 11:19:45 +00:00
Miss Islington (bot)
aa5498d466
[3.12] Doc: C API: Delete claim that PyObject_Init is GC-aware (GH-126418) (#126432)
Doc: C API: Delete claim that `PyObject_Init` is GC-aware (GH-126418)
(cherry picked from commit 407c0366d9)

Co-authored-by: Richard Hansen <rhansen@rhansen.org>
2024-11-05 15:31:37 +05:30
Serhiy Storchaka
844d908adb
[3.12] gh-126303: Fix pickling and copying of os.sched_param objects (GH-126336) (GH-126424)
(cherry picked from commit d3840503b0)
2024-11-05 06:52:51 +00:00
Hugo van Kemenade
94423b6be1
[3.12] gh-101865: Docs: Keep co_lnotab deprecation for at least 3.14 (GH-126392) (#126404)
(cherry picked from commit eac41c5ddf)
2024-11-04 19:47:40 +02:00
Miss Islington (bot)
a235619491
[3.12] gh-125783: Add more tests to prevent regressions with the combination of ctypes and metaclasses. (GH-126126) (GH-126276)
gh-125783: Add more tests to prevent regressions with the combination of ctypes and metaclasses. (GH-126126)
(cherry picked from commit 6c67446a6e)

Co-authored-by: Jun Komoda <45822440+junkmd@users.noreply.github.com>
2024-11-04 11:58:30 +01:00
Miss Islington (bot)
70f777daea
[3.12] Docs: turn getopt examples into doctests (GH-126377) (#126386)
(cherry picked from commit 0d80777981)

Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-11-04 08:37:23 +00:00
Miss Islington (bot)
d1b8718934
[3.12] gh-126165: Improve docs of function math.isclose (GH-126215) (#126381)
gh-126165: Improve docs of function `math.isclose` (GH-126215)
(cherry picked from commit 081706f873)

Co-authored-by: Zhikang Yan <2951256653@qq.com>
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2024-11-04 04:16:35 +00:00
Miss Islington (bot)
37dc2b2bbb
[3.12] Docs: Delist sqlite3 deprecation from "Pending removal in 3.14" (GH-126370) (#126373)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-11-03 21:31:59 +00:00
Miss Islington (bot)
b0e08f513b
[3.12] gh-104400: Add more tests to pygettext (GH-108173) (GH-126362)
(cherry picked from commit dcae5cd6ab)

Co-authored-by: Tomas R <tomas.roun8@gmail.com>
2024-11-03 14:24:41 +00:00
Miss Islington (bot)
6e3e91fa76
[3.12] gh-113977, gh-120754: Remove unbounded reads from zipfile (GH-122101) (#126347)
gh-113977, gh-120754: Remove unbounded reads from zipfile (GH-122101)

GH-113977, GH-120754: Remove unbounded reads from zipfile

Read without a size may read an unbounded amount of data + allocate
unbounded size buffers. Move to capped size reads to prevent potential
issues.

(cherry picked from commit 556dc9b8a7)

Co-authored-by: Cody Maloney <cmaloney@users.noreply.github.com>
Co-authored-by: Daniel Hillier <daniel.hillier@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2024-11-03 05:48:19 +00:00
Donghee Na
4afa129ed0
[3.12] gh-125832: Clarify comment for inlined comprehensions as per P… (gh-126345)
* [3.12] gh-125832: Clarify comment for inlined comprehensions as per PEP-709 (gh-126322)

* Fix comprehensions comment to inlined by pep 709

* Update spacing

Co-authored-by: RUANG (James Roy) <longjinyii@outlook.com>

* Add reference to PEP 709

---------

Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: RUANG (James Roy) <longjinyii@outlook.com>

* Add space

---------

Co-authored-by: rimchoi <hyerimc858@gmail.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
Co-authored-by: RUANG (James Roy) <longjinyii@outlook.com>
2024-11-03 04:00:52 +00:00
Miss Islington (bot)
f4bc64d204
[3.12] gh-125761: Clarify repeated warning suppression criteria in warnings module (gh-126331)
(cherry picked from commit 10eeec2d4f)

Co-authored-by: 고병찬 <70642609+byungchanKo99@users.noreply.github.com>
2024-11-02 11:45:36 +00:00
Miss Islington (bot)
eecea8f64a
[3.12] gh-125522: Remove bare except in test_zlib.test_flushes (gh-126321) (gh-126328)
gh-125522: Remove bare except in test_zlib.test_flushes (gh-126321)
(cherry picked from commit cfb1b2f0cb)

Co-authored-by: simple-is-great <103080930+simple-is-great@users.noreply.github.com>
2024-11-02 17:49:32 +09:00
Miss Islington (bot)
b59269961f
[3.12] gh-126138: Fix use-after-free in _asyncio.Task by evil __getattribute__ (GH-126305) (#126325)
gh-126138: Fix use-after-free in `_asyncio.Task` by evil `__getattribute__` (GH-126305)
(cherry picked from commit f032f6ba8f)

Co-authored-by: Nico-Posada <102486290+Nico-Posada@users.noreply.github.com>
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
2024-11-02 08:03:51 +00:00
Miss Islington (bot)
8d4ef52802
[3.12] docs: add a more precise example in enum doc (GH-121015) (#126307)
docs: add a more precise example in enum doc (GH-121015)

* docs: add a more precise example

Previous example used manual integer value assignment in class based declaration but in functional syntax has been used auto value assignment what could be confusing for the new users. Additionally documentation doesn't show how to declare new enum via functional syntax with usage of the manual value assignment.

* docs: remove whitespace characters

* refactor: change example

---------

(cherry picked from commit ff257c7843)

Co-authored-by: Filip "Ret2Me" Poplewski <37419029+Ret2Me@users.noreply.github.com>
Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
2024-11-01 16:18:00 -07:00
Miss Islington (bot)
b5c19bdba8
[3.12] gh-126220: Fix crash on calls to _lsprof.Profiler methods with 0 args (backportable) (GH-126271) (#126311)
gh-126220: Fix crash on calls to `_lsprof.Profiler` methods with 0 args (backportable) (GH-126271)
(cherry picked from commit 28b148fb32)

Co-authored-by: sobolevn <mail@sobolevn.me>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
2024-11-01 22:18:50 +00:00
Miss Islington (bot)
ce5bb3ca85
[3.12] gh-123609: Clarify usage of standalone PyBUF_FORMAT (GH-123778) (GH-123904)
gh-123609: Clarify usage of standalone `PyBUF_FORMAT` (GH-123778)
(cherry picked from commit 962304a54c)

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2024-11-01 12:38:23 -07:00
Miss Islington (bot)
479e366ce3
[3.12] Docs: make a tutorial example more precise (GH-125066) (GH-125079)
Docs: make a tutorial example more precise (GH-125066)

Based on discussion here:

(cherry picked from commit 6e3c70c61b)


https: //discuss.python.org/t/omission-in-the-documentation/66816

Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
2024-11-01 12:36:51 -07:00
Miss Islington (bot)
d268bd04e9
[3.12] gh-122767: document "new style" formatting for complexes (GH-122848) (#126129)
gh-122767: document "new style" formatting for complexes (GH-122848)

(cherry picked from commit 0bbbe15f56)

Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-11-01 12:29:53 -07:00
Miss Islington (bot)
e8ce872191
[3.12] gh-126259: Fix "unclosed database" warning in sqlite3 doctest (GH-126260) (#126266)
(cherry picked from commit 295262c8ec)

Co-authored-by: sobolevn <mail@sobolevn.me>
2024-11-01 07:25:51 +00:00
Miss Islington (bot)
dc3c075d9e
[3.12] gh-126080: fix UAF on task->task_context in task_call_step_soon due to an evil loop.__getattribute__ (GH-126120) (#126251)
gh-126080: fix UAF on `task->task_context` in `task_call_step_soon` due to an evil `loop.__getattribute__` (GH-126120)
(cherry picked from commit 0e8665554b)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2024-10-31 12:33:48 -07:00
Victor Stinner
8450b24825
[3.12] gh-124651: Quote template strings in venv activation scripts (GH-124712) (GH-126185)
(cherry picked from commit d48cc82ed2)
2024-10-31 18:09:20 +00:00
Miss Islington (bot)
78f307f39e
[3.12] GH-126205: Fix conversion of UNC paths to file URIs (GH-126208) (#126248)
GH-126205: Fix conversion of UNC paths to file URIs (GH-126208)

File URIs for Windows UNC paths should begin with two slashes, not four.
(cherry picked from commit 951cb2c369)

Co-authored-by: Barney Gale <barney.gale@gmail.com>
2024-10-31 16:59:15 +00:00
Bénédikt Tran
3416ffaa08
[3.12] gh-126240: handle NULL returned by _Py_asdl_expr_seq_new (GH-126241) (#126245)
gh-126240: handle `NULL` returned by  `_Py_asdl_expr_seq_new` (#126241)

check return value of `_Py_asdl_expr_seq_new`
2024-10-31 15:04:17 +00:00
Miss Islington (bot)
90de322b32
[3.12] gh-126083: Fix a reference leak in asyncio.Task when reinitializing with new non-None context (GH-126103) (#126230)
gh-126083: Fix a reference leak in `asyncio.Task` when reinitializing with new non-`None` context (GH-126103)
(cherry picked from commit d07dcce693)

Co-authored-by: Nico-Posada <102486290+Nico-Posada@users.noreply.github.com>
2024-10-31 08:19:56 +00:00