Commit graph

126301 commits

Author SHA1 Message Date
Kumar Aditya
24070492cf
gh-128002: add test_asyncio.test_free_threading to tsan tests (#131106) 2025-03-12 01:33:44 +05:30
Kumar Aditya
fcf756adef
fix various warnings in test_asyncio.test_tasks (#131109) 2025-03-11 19:51:53 +00:00
Tian Gao
8b1edae93a
gh-122029: Do not unpack method for legacy tracing anymore (#130898) 2025-03-11 14:04:22 -04:00
Barney Gale
3569e4a670
GH-130614: pathlib ABCs: revise test suite for Windows path joining (#131016)
Test Windows-flavoured `pathlib.types._JoinablePath` in a dedicated test
module. These tests cover `LexicalWindowsPath`, `PureWindowsPath` and
`WindowsPath`, where `LexicalWindowsPath` is a simple implementation of
`_JoinablePath` for use in tests.
2025-03-11 18:01:43 +00:00
Gerardwx
e0bc9d2a0c
Replace link to historical TypedDict PEP with current document on typing.python… (#131096)
* Replace link to historical PEP with current document on typing.python.org

* Update Doc/library/typing.rst

Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>

---------

Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
2025-03-11 12:45:31 -04:00
Victor Stinner
9d759b63d8
gh-111178: Change Argument Clinic signature for METH_O (#130682)
Use "PyObject*" for METH_O functions to fix an undefined behavior.
2025-03-11 16:33:36 +01:00
Sam Gross
4162bc133b
gh-130396: Fix thread sanitizer crashes on stack overflow tests (gh-130966)
Thread sanitizer will often crash if a test uses more than half the
stack.
2025-03-11 10:33:23 -04:00
Sam Gross
1908115871
gh-130957: Use sleeping_retry in test_free_reference (#130958)
The weak reference may not be immediately dead.
2025-03-11 09:51:26 -04:00
Max Bachmann
44c55c2356
Replace K&R function declarations with ANSI declarations (#114818) 2025-03-11 13:06:36 +01:00
Mark Shannon
6e5b9f3d00
GH-127705: Check for immortality in refcount accounting (#131072)
Check for immortality in refcount accounting
2025-03-11 11:53:07 +00:00
Max Bachmann
de8818ae23
gh-131082: Add missing guards for WIN32_LEAN_AND_MEAN (#131044)
* Add missing guards for WIN32_LEAN_AND_MEAN

* add missing whitespaces
2025-03-11 12:33:01 +01:00
donBarbos
425e0af74f
gh-93096: Remove -t and -v flags from pickle cli (#131068)
* Remove `python -m pickle -t`

* Revert adding doctest to unittests
2025-03-11 12:07:00 +01:00
donBarbos
3ddf983afd
gh-93096: Remove -t and -v flags from pickletools cli (#131039)
Remove `python -m pickletools -t`
2025-03-11 12:06:26 +01:00
donBarbos
3bb20d13a8
gh-93096: Load doctests in test_pickle (#131069)
Add doctests to unittest for `pickle`
2025-03-11 12:25:25 +02:00
Petr Viktorin
ad0f618ab3
gh-129675: Update documentation for tp_basicsize & tp_itemsize (#129850)
* Update documentation for tp_basicsize & tp_itemsize

- Add alignment requirement
- Mention that ob_size is unreliable if you don't control it
- Add some links for context
- basicsize should include the base type in generaly not just PyObject

This adds a “by-the-way” link to `PyObject_New`, which shouldn't be
used for GC types. In order to be comfortable linking to it, I also
add a link to `PyObject_GC_New` from its docs. And the same for
`*Var` variants, while I'm here.

* Strongly suggest Py_SIZE & Py_SET_SIZE
2025-03-11 11:21:18 +01:00
RUANG (James Roy)
faadb446d9
gh-46236: Add missing PyUnicode_Append() doc (#130531)
* Add missing PyUnicode_Append() doc

* Change the copied content

* Add '`` ``'

* Change doc

* Add PyUnicode_AppendAndDel function doc

* Change doc

* Add PyUnicode_AppendAndDel to refcounts

* Change doc

* Change doc

Co-authored-by: Petr Viktorin <encukou@gmail.com>

* Change doc

---------

Co-authored-by: Petr Viktorin <encukou@gmail.com>
2025-03-11 10:28:17 +01:00
Michał Górny
33494b4d0d
gh-130959: Reject whitespace in fractions, in pure Python fromisoformat() (#130962)
* gh-130959: Reject whitespace in fractions, in pure Python `fromisoformat()`

Fix the pure Python implementation of `fromisoformat()` to reject any
non-digit characters, including whitespace, in the fractional part
of time specification.  This makes the behavior consistent with the C
implementation, and prevents incorrect parsing of these fractions
(e.g. `.400 ` would be misinterpreted as `.04`).

* Add the news entry

* Use a different example to fix Sphinx lint

* Apply suggestions from code review

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>

* Try fixing `:func:` ref.

---------

Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Paul Ganssle <1377457+pganssle@users.noreply.github.com>
2025-03-11 10:15:40 +01:00
Jakub Kulík
69309a55bc
gh-130932: cwd cannot be removed on Solaris/Illumos (#131037) 2025-03-11 10:09:04 +01:00
Ken Jin
fe186d76cf
Minor nits to whats new tail call wording (#130912) 2025-03-11 10:57:35 +08:00
Ken Jin
a8ee1e16f5
gh-130039: Tailcall for windows builds (GH-130040)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-03-11 10:52:56 +08:00
Pablo Galindo Salgado
4192ce17ba
gh-117174: Adapt test_multiple_statements_fail_early now that we have always source (#131065) 2025-03-10 23:10:53 +00:00
Sergey Miryanov
7c98b0674d
gh-130804: Fix support of typing unicode chars in pyrepl (#130805) 2025-03-10 22:13:50 +00:00
FeH2
6ab5c4aa05
gh-124927: Fix conversion issue between coordinates and position in REPL (#125001) 2025-03-10 21:54:49 +00:00
Pablo Galindo Salgado
a931a8b324
gh-117174: Add a new route in linecache to fetch interactive source code (#117500) 2025-03-10 21:54:05 +00:00
stratakis
ecdf6b15b0
gh-118518: Minor improvements to perf docs (#130866)
Minor improvements to perf docs
2025-03-10 21:51:21 +00:00
Pablo Galindo Salgado
fd3b49e85d
gh-128515: Properly check for bolt in test_perf_profiler (#131058) 2025-03-10 21:48:03 +00:00
Ammar Askar
8431b1fee8
Add Ammar to CODEOWNERS for fuzzing (#131057) 2025-03-10 13:58:36 -07:00
Chris Eibl
36ef3bfe39
gh-131020: py.exe launcher does not correctly detect a BOM when searching for the shebang (GH-131021) 2025-03-10 17:59:23 +00:00
Barney Gale
5a484714c3
GH-130614: pathlib ABCs: revise test suite for Posix path joining (#131017)
Test Posix-flavoured `pathlib.types._JoinablePath` in a dedicated test
module. These tests cover `LexicalPosixPath`, `PurePosixPath` and
`PosixPath`, where `LexicalPosixPath` is a simple implementation of
`_JoinablePath` for use in tests.
2025-03-10 17:59:10 +00:00
Barney Gale
93fc3d34f9
GH-127381: pathlib ABCs: remove case_sensitive argument (#131024)
Remove the *case_sensitive* argument from `_JoinablePath.full_match()` and
`_ReadablePath.glob()`. Using a non-native case sensitivity forces the use
of "case-pedantic" globbing, where we `iterdir()` even for non-wildcard
pattern segments. But it's hard to know when to enable this mode, as
case-sensitivity can vary by directory, so `_PathParser.normcase()` doesn't
always give the full picture. The `Path.glob()` implementation is forced to
make an educated guess, but we can avoid the issue in the ABCs by dropping
the *case_sensitive* argument.

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

Also drop support for `_ReadablePath.glob(recurse_symlinks=False)`, which
makes recursive globbing much slower.
2025-03-10 17:50:48 +00:00
Jean-Christophe Fillion-Robin
c3487c941d
gh-82909: Update PC/pyconfig.h to allow disabling pragma based auto-linking (GH-19740)
Define Py_NO_LINK_LIB to build extension disabling pragma based auto-linking. This is relevant when using build-system generator (e.g CMake) where the linking is explicitly handled
2025-03-10 17:40:17 +00:00
Mark Shannon
be046ee6e0
GH-123044: Give the POP_TOP after a case test a location in the body, not the pattern. (GH-130627) 2025-03-10 17:31:16 +00:00
Chris Eibl
91d6db7ee0
GH-131035: Use -flto=thin for clang-cl on Windows (GH-131036) 2025-03-10 16:47:45 +00:00
Mark Shannon
2bef8ea8ea
GH-127705: Use _PyStackRefs in the default build. (GH-127875) 2025-03-10 14:06:56 +00:00
Yuki Kobayashi
7cc99a54b7
gh-101100: Fix sphinx warnings in library/asyncio-subprocess.rst (#130994) 2025-03-10 12:38:08 +00:00
Stan Ulbrych
98fa4a49fe
gh-80421: Correct definitions of time (#130984)
Based on the Wikipedia article, UTC is better said to be a successor than a renaming of GTC and language agnostic rather than an English-French compromise.
2025-03-09 16:09:23 -04:00
Barney Gale
475f933ed8
GH-130614: pathlib ABCs: revise test suite for path joining (#130988)
Test `pathlib.types._JoinablePath` in a dedicated test module. These tests
cover `LexicalPath`, `PurePath` and `Path`, where `LexicalPath` is defined
in a new `test.test_pathlib.support` package.
2025-03-09 17:02:37 +00:00
Barney Gale
bbd6d17ef8
GH-130614: pathlib ABCs: support alternate separator in full_match() (#130991)
In `pathlib.types._JoinablePath.full_match()`, treat alternate path
separators in the path and pattern as if they were primary separators. e.g.
if the parser is `ntpath`, then `P(r'foo/bar\baz').full_match(r'*\*/*')` is
true.
2025-03-09 16:36:59 +00:00
Barney Gale
ba64cc5db4
GH-130614: pathlib ABCs: retain original separator in with_name() (#130990)
In `pathlib.types._JoinablePath.with_name()`, retain any alternative path
separator preceding the old name, rather stripping and replacing it with a
primary separator. As a result, this method changes _only_ the name.
2025-03-09 16:36:20 +00:00
donBarbos
c240c2d88a
gh-130160: use .. program:: directive for documenting pdb CLI (#130996) 2025-03-09 11:55:23 -04:00
donBarbos
92e5f826ac
gh-130160: use .. program:: directive for documenting webbrowser CLI (#130995)
use `.. program::` directive for documenting `webbrowser` CLI
2025-03-09 09:57:59 +03:00
Affan Shaikhsurab
a3990df612
gh-123726: Document caveats of zipfile.Path around name sanitization (#130537)
Add a note to the `zipfile.Path` class documentation clarifying that it does not sanitize filenames. This emphasizes the caller's responsibility to validate or sanitize inputs, especially when handling untrusted ZIP archives, to prevent path traversal vulnerabilities. The note also references the `extract` and `extractall` methods for comparison and suggests using `os.path.abspath` and `os.path.commonpath` for safe filename resolution.
2025-03-08 16:37:05 -05:00
Sam Gross
edd1eca336
gh-130954: Fix multiprocessing test_notify_n (#130955)
The test could deadlock trying join on the worker processes.
Apply the same technique as gh-130933.

Join the process before the test ends in `test_notify` as well.
2025-03-08 13:04:30 -05:00
Chris Markiewicz
72e5b25efb
gh-128646: Implement GzipFile.readinto[1]() methods (GH-128647)
The new methods simply delegate to the underlying buffer, much like the existing GzipFile.read[1] methods.  This avoids extra allocations caused by the BufferedIOBase.readinto implementation previously used.

This commit also factors out a common readability check rather than copying it an additional two times.
2025-03-07 21:04:45 -06:00
Diego Russo
7879081198
gh-130917: update timer and workload in test_signal (#130918)
The workload to advance the virtual timeout is too lightweight for some
platforms. As result the test goes in timeout as it never reaches the
end of the timer. By having a heavier workload, the virtual timer
advances rapidly and the SIGVTALRM is sent before the timeout.
2025-03-07 16:10:02 -05:00
morotti
b1b4f9625c
gh-117151: IO performance improvement, increase io.DEFAULT_BUFFER_SIZE to 128k (GH-118144)
Co-authored-by: rmorotti <romain.morotti@man.com>
2025-03-07 11:36:12 -08:00
Barney Gale
4bf25a0dc8
GH-128520: Merge pathlib._local into pathlib (#130748)
The `pathlib` module used to import stuff from both `_abc` and `_local`,
but nowadays the `_local` module provides the entire public pathlib
implementation, so there's no reason for the indirection.
2025-03-07 19:24:57 +00:00
Sam Gross
12db45211d
gh-130851: Only intern constants of types generated by the compiler (#130901)
The free-threading build interns and immortalizes most constants
generated by the bytecode compiler. However, users can construct their
own code objects with arbitrary constants. We should not intern or
immortalize these objects if they are not of a type that we know how to
handle.

This change fixes a reference leak failure in the recently added
`test_code.test_unusual_constants` test. It also addresses a potential
crash that could occur when attempting to destroy an immortalized
object during interpreter shutdown.
2025-03-07 10:34:53 -05:00
Sam Gross
c476410dc5
gh-110206: Fix multiprocessing test_notify_all (#130933)
The test could deadlock trying join on the worker processes due to a
combination of behaviors:

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

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

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

This takes two approaches to fix this:

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

2) At the end of the test, wait until the workers are finished, while `cond`,
   `sleeping`, and `woken` are still valid.
2025-03-07 09:58:09 -05:00
Mark Shannon
89df62c120
GH-128534: Fix behavior of branch monitoring for async for (GH-130847)
* Both branches in a pair now have a common source and are included in co_branches
2025-03-07 14:30:31 +00:00