Commit graph

127910 commits

Author SHA1 Message Date
Barney Gale
2bd4ff0700
GH-128520: pathlib ABCs: tweak protocol for virtual path strings (#134104)
Adjust `pathlib._os.vfspath()` so that it doesn't try `os.fsdecode()`. I
don't know that supporting `os.PathLike` arguments is a good idea, so
it's best to leave it out for now.
2025-07-27 12:47:15 +01:00
Barney Gale
10a925c86d
GH-137059: url2pathname(): fix support for drive letter in netloc (#137060)
Support file URLs like `file://c:/foo` in `urllib.request.url2pathname()`
on Windows. This restores behaviour from 3.13.
2025-07-27 11:44:41 +00:00
Iqra Khan
ae8b7d7100
gh-136992: Add "None" as valid SameSite value as per RFC 6265bis (#137040)
The "SameSite" attribute defined in RFC 6265bis [1] allows the "Strict", "Lax" and "None"
enforcement modes. We already documented "Strict" and "Lax" as being valid values
but "None" was missing from the list. While the RFC has not been formally approved,
modern browsers support the "None" value [2, 3] thereby making sense to document it.

[1]: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis
[2]: https://developers.google.com/search/blog/2020/01/get-ready-for-new-samesitenone-secure
[3]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#none

---------

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-07-27 10:27:08 +02:00
Abdul
cfd6da849a
gh-137058: Update C23 standard version check in pyport.h (#137127)
Use `__STDC_VERSION__ >= 202311L` instead of `__STDC_VERSION__ > 201710L`.
2025-07-27 09:47:21 +02:00
ryan-duve
9cbf46d992
Link to plaintext for "show source" links (#137131) 2025-07-27 02:48:56 +01:00
Pablo Galindo Salgado
a852c7bdd4
gh-131038: Use text=True in subprocesses in test_perf_profiler (#137117) 2025-07-26 18:01:51 +01:00
Stephen Morton
d5fa437dfb
gh-126662: naming consistency for signal.ItimerError (#126712) 2025-07-26 22:14:12 +05:30
Bénédikt Tran
d658b9053b
gh-136912: fix handling of OverflowError in hmac.digest (#136917)
The OpenSSL and HACL* implementations of HMAC single-shot
digest computation reject keys whose length exceeds `INT_MAX`
and `UINT32_MAX` respectively. The OpenSSL implementation
also rejects messages whose length exceed `INT_MAX`.

Using such keys in `hmac.digest` previously raised an `OverflowError`
which was propagated to the caller. This commit mitigates this case by
making `hmac.digest` fall back to HMAC's pure Python implementation
which accepts arbitrary large keys or messages.

This change only affects the top-level entrypoint `hmac.digest`, leaving
`_hashopenssl.hmac_digest` and `_hmac.compute_digest` untouched.
2025-07-26 08:22:06 +00:00
Savannah Bailey
f7c380ef67
GH-132732: Use pure op machinery to optimize COMPARE_OP_INT/FLOAT/STR (#137062)
Co-authored-by: Ken Jin <kenjin4096@gmail.com>
2025-07-25 19:02:04 -07:00
soolabettu
1e69cd1634
gh-137090: Remove redundant statement in `Doc/library/concurrent.interpreters.rst` (#137091)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-07-25 16:50:53 +01:00
Peter Bierma
e047a35b23
gh-134698: Hold a lock when the thread state is detached in ssl (GH-134724)
Lock when the thread state is detached.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-07-25 08:16:05 -07:00
Tyler Kennedy
cb93b6fc5e
gh-130522: Fix unraisable TypeError in threading at interpreter shutdown (#131537)
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2025-07-25 14:51:30 +00:00
Bénédikt Tran
7ce2f101c4
gh-136929: ensure that hashlib.<name> does not raise AttributeError (#136933)
Previously, if OpenSSL was not present and built-in cryptographic extension modules
were disabled, requesting `hashlib.<name>` raised `AttributeError` and an ERROR log
message with the exception traceback is emitted when importing `hashlib`. 

Now, the named constructor function will always be available but raises a `ValueError`
at runtime indicating that the algorithm is not supported. The log message has also
been reworded to be less verbose.
2025-07-25 14:49:09 +00:00
Raymond Hettinger
ea06ae5b5e
Fix Queue.shutdown docs for condition to unblock a join (gh-137088) 2025-07-25 07:56:28 -06:00
Sergey Miryanov
d7db0ee7ee
gh-137084: remove multiple calls to get_gc_state in gc.c (#137085) 2025-07-25 18:13:54 +05:30
Peter Bierma
9b451fb457
gh-137093: Fix race condition in test_embed.test_bpo20891 (GH-137094)
Use a `PyEvent` instead of a lock to fix a race on the free-threaded build.
2025-07-25 08:33:18 -04:00
Denis Laxalde
fece15d29f
gh-136914: Fix support of cached functions and properties in DocTest's lineno computation (GH-136930)
Previously, DocTest's lineno of functions and methods decorated with
functools.cache(), functools.lru_cache() and functools.cached_property()
was not properly returned (None was returned) because the
computation relied on inspect.isfunction() which does not consider the
decorated result as a function.

We now use the more generic inspect.isroutine(), as elsewhere
in doctest's logic.

Also, added a special case for functools.cached_property().
2025-07-25 12:46:12 +03:00
Zachary Ware
d5e75c0768
Exclude _testclinic_depr.c.h from c-analyzer (GH-137086)
_testclinic.c mocks out PY_VERSION_HEX to 3.8 before including
_testclinic_depr.c.h to avoid the errors the preprocessor would
otherwise throw due to the deprecation feature it is testing.

Also partially revert 74e2acddf6:
this restores Modules/_testclinic.c to match the same file in the 3.14
branch.
2025-07-24 15:50:01 -05:00
Kumar Aditya
9a6b60af40
gh-136870: fix data races in instrumentation of bytecode (#136994)
De-instrumenting code objects modifies the thread local bytecode for all threads as such, holding the critical section on the code object is not sufficient and leads to data races. Now, the de-instrumentation is now performed under a stop the world pause as such no thread races with executing the thread local bytecode while it is being de-instrumented.
2025-07-24 17:58:46 +00:00
Raymond Hettinger
245671555b
Fix docs for Queue.shutdown (gh-137028) 2025-07-24 11:23:03 -06:00
Kumar Aditya
d8fa40b08d
gh-132551: add missing critical sections on BytesIO methods (#137073) 2025-07-24 11:57:48 +00:00
Sergey Miryanov
e93c30d466
gh-137054: remove obsolete counting of objects in young generation under Py_STATS builds (#137055) 2025-07-24 17:00:27 +05:30
AN Long
ec02db5caa
gh-136759: rename lock.h to pylock.h (#137041)
Rename `lock.h` to `pylock.h` to avoid conflicts with headers of other projects.
2025-07-24 16:16:07 +05:30
Hood Chatham
ae4d27eba7
gh-124621: Emscripten: Add smoke test for using pyrepl in Chrome (#137004)
Adds a mechanism to test browser-based initialisation of the Python interpreter,
via a Playwright headless browser instance.
2025-07-24 14:44:02 +08:00
Hood Chatham
ecb3f23b94
gh-136976: Emscripten: Add _decimal and libmpdec (#136997)
Adds tooling to build mpdec (and thus _decimal) as part of an Emscripten build.
2025-07-24 06:31:30 +00:00
FredericDT
dc27218225
gh-136980: Remove unused C tracing code in bdb (#136981) 2025-07-24 09:58:54 +09:00
Brett Cannon
ec7fad79d2
Touch up Setup.local handling in Tools/wasm/wasi (GH-137051)
The comment in the generated file is now more self-explanatory. The checks for unexpected file contents are also strengthened.
2025-07-23 11:50:15 -07:00
Rogdham
a10235ea67
gh-132983: Add missing references to Zstandard in shutil docstrings (GH-136617)
Zstd references in shutil docstrings
2025-07-23 18:09:53 +00:00
Petr Viktorin
777159fa31
gh-135676: Lexical analysis: Reword String literals and related sections (GH-135942)
Co-authored-by: Blaise Pabon <blaise@gmail.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2025-07-23 15:57:54 +00:00
Jelle Zijlstra
6a285f94c6
Revert "gh-135228: When @dataclass(slots=True) replaces a dataclass, make the original class collectible (#136893)" (#137014)
This reverts commit 46cbdf967a.
2025-07-23 08:13:19 -07:00
Guido Imperiale
38b936cc99
gh-137043: mention PyList_GET_ITEM as unsafe borrowed API in free-threading docs (#137042) 2025-07-23 20:06:06 +05:30
Cornelius Roemer
80a7017d26
Fix typos in Doc/extending/extending.rst and Doc/library/shelve.rst (GH-136890) 2025-07-23 15:04:59 +03:00
Petr Viktorin
fac4964fdb
gh-136516: Mention installation artifacts as de-facto resources (GH-136419)
Files like NUL on windows are, from `importlib.resources` point of
view, an artifact caused by installing to a filesystem directory.
Mention these.
2025-07-23 14:01:38 +02:00
sobolevn
99cdf1deb6
gh-136437: Make several functions in os.path pos-only (#136949) 2025-07-23 14:56:02 +03:00
Petr Viktorin
e41c1ce585
gh-136459: Use platform-specific type in perf_jit_trampoline (GH-137031)
gh-136461 added perf support for macOS, with ifdefs around all changes
except increasing thread_id to 64 bits.
Make that change Apple-specific too.
2025-07-23 10:20:42 +02:00
Nathan Goldbaum
b13a5df52f
gh-133296: Fix versionadded for C API functions that were backported (#137024) 2025-07-22 21:27:50 +01:00
Ani
aafb1435d8
Use test.support.is_wasm32 flag for is_emscripten or is_wasi for generic checks (GH-136815)
Co-authored-by: Brett Cannon <brett@python.org>
2025-07-22 12:50:13 -07:00
Adam Turner
d6cf05b5d0
Fix tables in 'Using on Windows' for the text writer (#137012) 2025-07-22 16:15:29 +00:00
Nazım Can Altınova
a667800558
gh-136459: Add perf trampoline support for macOS (#136461) 2025-07-22 16:47:24 +01:00
Adam Turner
b6d3242244
GH-136975: Emend a spelling error (algorthm -> algorithm) (#136999) 2025-07-22 13:48:58 +00:00
Victorien
c13cc4af79
Fix code example in annotationlib documentation (#136972) 2025-07-22 13:48:02 +00:00
Serhiy Storchaka
3a89dfe32b
Revert "gh-112068: C API: Add support of nullable arguments in PyArg_Parse (GH-121303)" (#136991) 2025-07-22 16:39:50 +03:00
sobolevn
b31e5d6de1
gh-136437: Convert more `os.path` functions to positional-only in the docs (#136970) 2025-07-22 14:38:33 +01:00
Hood Chatham
12d2f373b9
gh-124621: Emscripten: Fix __syscall_ioctl patch (GH-136993)
If there is an error, we have to return `-errno` not positive errno.
Included in backport of GH-136931: #136988
2025-07-22 15:05:26 +02:00
Pablo Galindo Salgado
aafbdb5df5
gh-133742: Fix test_sysconfig and test_build_details for relocated directories (#136987) 2025-07-22 11:53:05 +00:00
Timon Viola
4d02f31cdd
gh-118350: Fix support of elements "textarea" and "title" in HTMLParser (#135310)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-07-22 13:27:13 +02:00
Hood Chatham
c933a6bb32
gh-124621: Emscripten: Support pyrepl in browser (GH-136931)
Basic support for pyrepl in Emscripten. Limitations:
* requires JSPI
* no signal handling implemented

As followup work, it would be nice to implement a webworker variant
for when JSPI is not available and proper signal handling.

Because it requires JSPI, it doesn't work in Safari. Firefox requires
setting an experimental flag. All the Chromiums have full support since
May. Until we make it work without JSPI, let's keep the original web_example
around.

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Éric <merwok@netwok.org>
2025-07-22 12:13:38 +02:00
Dave Peck
22c8658906
gh-132661: Document t-strings and templatelib (#135229)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Loïc Simon <loic.pano@gmail.com>
Co-authored-by: pauleveritt <pauleveritt@me.com>
2025-07-22 12:44:13 +03:00
Cornelius Roemer
9a21df7c0a
Fix 3 typos in "Next" News items (#136892) 2025-07-22 11:22:08 +03:00
Malcolm Smith
149bddcc21
gh-131531: Android test fixes (#136845)
Modifies the test runner script to no longer export the the HOST environment
variable, and to allow for tests that produce no Python output (output from the
Android console is still expected and required). These changes stem from
knowledge gained during developing a PR for Android support in cibuildwheel.
2025-07-22 14:51:16 +08:00