Commit graph

51825 commits

Author SHA1 Message Date
Ville Skyttä
a768e12f09
Use bool in fileinput.input() docstring and tests for the inplace argument (GH-111998)
The `.rst` docs, most tests, and typeshed already use bool for it.
2024-01-27 23:47:55 +02:00
Barney Gale
823a38a960
GH-79634: Speed up pathlib globbing by removing joinpath() call. (#114623)
Remove `self.joinpath('')` call that should have been removed in 6313cdde.

This makes `PathBase.glob('')` yield itself *without* adding a trailing slash. It's hard to say whether this is more or less correct, but at least everything else is faster, and there's no behaviour change in the public classes where empty glob patterns are disallowed.
2024-01-27 19:59:51 +00:00
Serhiy Storchaka
7a470541e2
gh-114100: Remove superfluous writing to fd 1 in test_pty (GH-114647) 2024-01-27 18:38:17 +02:00
NewUserHa
547c135d70
Simplify concurrent.futures.process code by using itertools.batched() (GH-114221) 2024-01-27 10:29:38 +02:00
Barney Gale
2d08af34b8
Cover OS-specific behaviour in PurePathBase and PathBase tests. (#114633)
Wherever possible, move tests for OS-specific behaviour from `PurePathTest`
and `PathTest` to `DummyPurePathTest` and `DummyPathTest`.
2024-01-27 02:16:17 +00:00
Barney Gale
fe5905e21a
Cover OS-specific behaviour in PurePath and Path tests (#114632)
Test Posix- and Windows-specific behaviour from `PurePathTest` and `PathTest`.
2024-01-27 01:30:25 +00:00
Barney Gale
7a9727e10c
pathlib tests: annotate tests needing symlinks with decorator (#114625)
Add `@needs_symlinks` decorator for tests that require symlink support in
the path class.

Also add `@needs_windows` and `@needs_posix` decorators for tests that
require a specific a specific path flavour. These aren't much used yet, but
will be later.
2024-01-26 22:29:28 +00:00
Aiden Fox Ivey
b5c7c84673
gh-114490: Add check for Mach-O linkage in Lib/platform.py (#114491)
``platform.architecture()`` now returns the format of binaries (e.g. Mach-O) instead of the default empty string.

Co-authored-by: AN Long <aisk@users.noreply.github.com>
2024-01-26 21:36:50 +01:00
Tristan Pank
07236f5b39
gh-114494: Change logging docstring to bool for exec_info (GH=114558) 2024-01-26 21:48:22 +02:00
Barney Gale
7e31d6dea2
gh-88569: add ntpath.isreserved() (#95486)
Add `ntpath.isreserved()`, which identifies reserved pathnames such as "NUL", "AUX" and "CON".

Deprecate `pathlib.PurePath.is_reserved()`.

---------

Co-authored-by: Eryk Sun <eryksun@gmail.com>
Co-authored-by: Brett Cannon <brett@python.org>
Co-authored-by: Steve Dower <steve.dower@microsoft.com>
2024-01-26 18:14:24 +00:00
Steve Dower
d91ddff5de
gh-114435: Allow test_stat_inaccessible_file() to have matching ino/dev (GH-114571)
This may occur if Windows allows reading stat information from a file even if the current user does not have access.
2024-01-26 17:33:44 +00:00
Rito Takeuchi
504334c7be
gh-77749: Fix inconsistent behavior of non-ASCII handling in EmailPolicy.fold() (GH-6986)
It now always encodes non-ASCII characters in headers if utf8 is false.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-01-26 15:19:41 +00:00
Steve Dower
442a299af0
gh-114272: Allow _wmi audit test to succeed even if it times out (GH-114602) 2024-01-26 14:38:24 +00:00
Mariusz Felisiak
456e274578
gh-112451: Prohibit subclassing of datetime.timezone. (#114190)
This is consistent with C-extension datetime.timezone.
2024-01-26 09:33:13 +01:00
Barney Gale
b69548a0f5
GH-73435: Add pathlib.PurePath.full_match() (#114350)
In 49f90ba we added support for the recursive wildcard `**` in
`pathlib.PurePath.match()`. This should allow arbitrary prefix and suffix
matching, like `p.match('foo/**')` or `p.match('**/foo')`, but there's a
problem: for relative patterns only, `match()` implicitly inserts a `**`
token on the left hand side, causing all patterns to match from the right.
As a result, it's impossible to match relative patterns from the left:
`PurePath('foo/bar').match('bar/**')` is true!

This commit reverts the changes to `match()`, and instead adds a new
`full_match()` method that:

- Allows empty patterns
- Supports the recursive wildcard `**`
- Matches the *entire* path when given a relative pattern
2024-01-26 01:12:46 +00:00
Kirill Podoprigora
33ae9895d4
gh-114561: Mark some tests in `test_wincosoleio with requires_resource('console')` decorator (GH-114565) 2024-01-25 20:00:52 +00:00
Nikita Sobolev
d96358ff9d
gh-114315: Make threading.Lock a real class, not a factory function (#114479)
`threading.Lock` is now the underlying class and is constructable rather than the old
factory function. This allows for type annotations to refer to it which had no non-ugly
way to be expressed prior to this.

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-01-25 19:46:32 +00:00
Sam Gross
b52fc70d1a
gh-112529: Implement GC for free-threaded builds (#114262)
* gh-112529: Implement GC for free-threaded builds

This implements a mark and sweep GC for the free-threaded builds of
CPython. The implementation relies on mimalloc to find GC tracked
objects (i.e., "containers").
2024-01-25 10:27:36 -08:00
Tian Gao
8278fa2f56
gh-111051: Check if file is modifed during debugging in pdb (#111052) 2024-01-25 16:48:50 +00:00
AN Long
e721adf4bd
gh-77465: Increase test coverage for the numbers module (GH-111738)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-01-25 16:35:05 +02:00
Irit Katriel
0315941441
gh-114265: remove i_loc_propagated, jump threading does not consider line numbers anymore (#114535) 2024-01-25 12:54:19 +00:00
Michael Droettboom
ea3cd0498c
gh-114312: Collect stats for unlikely events (GH-114493) 2024-01-25 11:10:51 +00:00
Steve Dower
c63c6142f9
gh-114272: Fix or skip tests that fail due to spaces in paths (GH-114451) 2024-01-25 00:38:34 +00:00
Mark Shannon
981d172f7f
GH-112354: END_FOR instruction to only pop one value. (GH-114247)
* Compiler emits END_FOR; POP_TOP instead of END_FOR. To support tier 2 side exits in loops.
2024-01-24 15:10:17 +00:00
Serhiy Storchaka
ce75b4c26d
gh-113205: test_multiprocessing.test_terminate: Give tasks a chance to start (GH-114249) 2024-01-24 09:13:09 +02:00
Brett Cannon
f59f90b5bc
GH-114456: lower the recursion limit under WASI for debug builds (GH-114457)
Testing under wasmtime 16.0.0 w/ code from https://github.com/python/cpython/issues/114413 is how the value was found.
2024-01-23 15:48:14 -08:00
Sam Gross
ce01ab536f
gh-101438: Avoid reference cycle in ElementTree.iterparse. (GH-114269)
The iterator returned by ElementTree.iterparse() may hold on to a file
descriptor. The reference cycle prevented prompt clean-up of the file
descriptor if the returned iterator was not exhausted.
2024-01-23 20:14:46 +00:00
Nikita Sobolev
ba253a4794
gh-108303: Move .whl test files to Lib/test/wheeldata/ (#114343) 2024-01-23 16:33:12 +01:00
Fabio Zadrozny
5a1ecc8cc7
gh-114423: Remove DummyThread from threading._active when thread dies (GH-114424) 2024-01-23 14:12:50 +02:00
Jim Porter
8edc8029de
gh-89427: Provide the original prompt value for VIRTUAL_ENV_PROMPT (GH-106726)
This improves the implementation in gh-106643.

Previously, venv passed "(<prompt>) " to the activation scripts, but we want
to provide the original value so that users can inspect it in the
$VIRTUAL_ENV_PROMPT env var.

Note: Lib/venv/scripts/common/Activate.ps1 surrounded the prompt value with
parens a second time, so no change was necessary in that file.
2024-01-23 08:53:04 +00:00
AN Long
7fc51c3f6b
gh-114257: Ignore the FileNotFound error in ctypes.util._is_elf() (GH-114394) 2024-01-22 17:15:29 +00:00
Irit Katriel
ed30a3c337
gh-114083: apply optimization of LOAD_CONST instructions to the whole CFG before optimize_basic_block. (#114408) 2024-01-22 17:12:06 +00:00
Serhiy Storchaka
a53e56e7d8
gh-75128: Ignore EADDRNOTAVAIL error in asyncio.BaseEventLoop.create_server() (GH-114420)
Co-authored-by: Antoine Pitrou <pitrou@free.fr>
2024-01-22 18:40:35 +02:00
Nikita Sobolev
2ef520ebec
gh-108303: Remove Lib/test/shadowed_super.py (#114372)
Move code into Lib/test/test_super.py.
2024-01-22 16:09:10 +01:00
Serhiy Storchaka
49785b06de
gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261)
Always set a _MainThread as a main thread after os.fork() is called from
a thread started not by the threading module.

A new _MainThread was already set as a new main thread after fork if
threading.current_thread() was not called for a foreign thread before fork.
Now, if it was called before fork, the implicitly created _DummyThread will
be turned into _MainThread after fork.

It fixes, in particularly, an incompatibility of _DummyThread with
the threading shutdown logic which relies on the main thread
having tstate_lock.

Co-authored-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
2024-01-22 16:14:42 +02:00
Nikita Sobolev
8f5e7d739f
gh-108303: Move smtpd to test.support (#114368)
Update test_logging.py and test_smtplib.py.
2024-01-22 14:36:29 +01:00
Serhiy Storchaka
c8351a617b
gh-113796: Add more validation checks in the csv.Dialect constructor (GH-113797)
ValueError is now raised if the same character is used in different roles.
2024-01-22 15:34:16 +02:00
Gregory P. Smith
fd49e22670
gh-114328: tty cbreak mode should not alter ICRNL (#114335)
The terminal CR -> NL mapping setting should be inherited in cbreak mode as OSes do not specify altering it as part of their stty cbreak mode definition.
2024-01-21 15:25:52 -08:00
Serhiy Storchaka
db1c18eb62
gh-111803: Make test_deep_nesting from test_plistlib more strict (GH-114026)
It is no longer silently passed if RecursionError was raised for low
recursion depth.
2024-01-21 22:29:51 +02:00
Serhiy Storchaka
42d72b23dd
gh-114241: Fix and improve the ftplib CLI (GH-114242)
* Fix writing the retrieved binary file to stdout.
* Add a newline after writing warnings to stderr.
* Fix a TypeError if the netrc file doesn't contain a host/default entry.
* Improve the usage message.
2024-01-21 22:16:45 +02:00
Ronald Oussoren
5adff3f86f
gh-80931: Skip some socket tests while hunting for refleaks on macOS (#114057)
Some socket tests related to sending file descriptors cause a file descriptor leak on macOS, all of them tests that send one or more descriptors than cannot be received on the read end.  This appears to be a platform bug.

This PR skips those tests when doing a refleak test run to avoid hiding other problems.
2024-01-21 11:25:15 +01:00
Hugo van Kemenade
52eade2223
Remove deleted time_hashlib.py from Lib/test/.ruff.toml (#114355) 2024-01-20 14:10:43 -07:00
Gregory P. Smith
c48b8f8db8
Remove the non-test Lib/test/time_hashlib.py. (#114354)
I believe I added this while chasing some performance of hash functions
when I first created hashlib.  It hasn't been used since, is frankly
trivial, and not a test.
2024-01-20 12:09:50 -08:00
Nikita Sobolev
0554a9594e
gh-114281: Remove incorrect type hints from asyncio.staggered (#114282)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
2024-01-20 16:49:48 +00:00
Barney Gale
1e610fb05f
GH-113225: Speed up pathlib.Path.walk(top_down=False) (#113693)
Use `_make_child_entry()` rather than `_make_child_relpath()` to retrieve
path objects for directories to visit. This saves the allocation of one
path object per directory in user subclasses of `PathBase`, and avoids a
second loop.

This trick does not apply when walking top-down, because users can affect
the walk by modifying *dirnames* in-place.

A side effect of this change is that, in bottom-up mode, subdirectories of
each directory are visited in reverse order, and that this order doesn't
match that of the names in *dirnames*. I suspect this is fine as the
order is arbitrary anyway.
2024-01-20 03:06:00 +00:00
Barney Gale
6313cdde58
GH-79634: Accept path-like objects as pathlib glob patterns. (#114017)
Allow `os.PathLike` objects to be passed as patterns to `pathlib.Path.glob()` and `rglob()`. (It's already possible to use them in `PurePath.match()`)

While we're in the area:

- Allow empty glob patterns in `PathBase` (but not `Path`)
- Speed up globbing in `PathBase` by generating paths with trailing slashes only as a final step, rather than for every intermediate directory.
- Simplify and speed up handling of rare patterns involving both `**` and `..` segments.
2024-01-20 02:10:25 +00:00
Irit Katriel
7e49f27b41
gh-114265: move line number propagation before cfg optimization, remove guarantee_lineno_for_exits (#114267) 2024-01-19 14:49:26 +00:00
Nikita Sobolev
efb81a60f5
gh-114275: Skip doctests that use asyncio in test_pdb for WASI builds (#114309) 2024-01-19 14:00:34 +01:00
Skip Montanaro
72abb8c5d4
gh-114123: Migrate docstring from _csv to csv (#114124)
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Éric <merwok@netwok.org>
2024-01-18 22:18:42 +00:00
keithasaurus
2d3f6b56c5
gh-114087: Speed up dataclasses._asdict_inner (#114088) 2024-01-18 09:03:20 -07:00