120265 Commits

Author SHA1 Message Date
Mariusz Felisiak
de777e490f
gh-108364: In sqlite3, disable foreign keys before dumping SQL schema (#113957)
sqlite3.Connection.iterdump now ensures that foreign key support is
disabled before dumping the database schema, if there is any foreign key
violation.

Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-01-12 10:50:37 +01:00
Petr Viktorin
fcb4c8d31a
gh-113858: Cut down ccache size (GH-113945)
Cut down ccache size

- Only save the ccache in the main reusable builds, not on builds that
  don't use special build options:
  - Generated files check
  - OpenSSL tests
  - Hypothesis tests
- Halve the max cache size, to 200M
2024-01-12 10:48:25 +01:00
Peter Lazorchak
e58334e4c9
gh-113937 Fix failures in type cache tests due to re-running (GH-113953) 2024-01-12 13:18:19 +08:00
Terry Jan Reedy
c4992f4106
gh-113903: Fix an IDLE configdialog test (#113973)
test_configdialog.HighPageTest.test_highlight_target_text_mouse fails
if a line of the Highlight tab text sample is not visible. If so, bbox()
in click_char() returns None and the unpacking iteration fails.

This occurred on a Devuan Linux system. Fix by moving the
'see character' call inside click_char, just before the bbox call.

Also, reduce the click_char calls to just one per tag name and
replace the other nested function with a dict comprehension.
2024-01-11 22:10:00 -05:00
Donghee Na
efa738e862
gh-111968: Explicit handling for finalized freelist (gh-113929) 2024-01-12 00:31:28 +00:00
Raymond Hettinger
53d2e1f26c
Improve kde graph with better caption and number formatting (gh-113967) 2024-01-11 18:25:18 -06:00
Adam Turner
c9b8a22f34
GH-107678: Improve Unicode handling clarity in `library/re.rst` (#107679) 2024-01-11 23:56:10 +00:00
Zackery Spytz
b4d4aa9e8d
gh-81489: Use Unicode APIs for mmap tagname on Windows (GH-14133)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-01-11 22:39:47 +00:00
Raymond Hettinger
2f126a70f3
Update KDE recipe to match the standard use of the h parameter (gh-#113958) 2024-01-11 16:21:21 -06:00
Donghee Na
2e7577b622
gh-111968: Use per-thread freelists for tuple in free-threading (gh-113921) 2024-01-12 03:46:28 +09:00
Serhiy Storchaka
8717f7b495
gh-113845: Fix a compiler warning in Python/suggestions.c (GH-113949) 2024-01-11 20:31:24 +02:00
Mark Shannon
55824d01f8
GH-113853: Guarantee forward progress in executors (GH-113854) 2024-01-11 18:20:42 +00:00
Irit Katriel
0d8fec79ca
gh-107901: jump leaving an exception handler doesn't need an eval break check (#113943) 2024-01-11 14:27:41 +00:00
Victor Stinner
7ed76fc368
gh-91960: Remove Cirrus CI configuration (#113938)
Remove .cirrus.yml which was already disabled by being renamed to
.cirrus-DISABLED.yml. In total, Cirrus CI only run for less than one
month.
2024-01-11 14:33:24 +01:00
Kirill Podoprigora
9f088336b2
gh-113932: assert `SyntaxWarning` in test_compile.TestSpecifics.test_… (#113933) 2024-01-11 11:25:07 +00:00
AN Long
ec23e90082
gh-112419: Document removal of sys.meta_path's 'find_module' fallback (#112421)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-01-11 09:43:35 +00:00
Nikita Sobolev
2ac4cf4743
gh-112640: Add kwdefaults parameter to types.FunctionType.__new__ (#112641) 2024-01-11 00:42:30 -08:00
Peter Lazorchak
f653caa5a8
gh-89811: Check for valid tp_version_tag in specializer (GH-113558) 2024-01-11 13:33:05 +08:00
Donghee Na
c65ae26f2b
gh-111968: Unify naming scheme for freelist (gh-113919) 2024-01-11 08:51:51 +09:00
Kirill Podoprigora
9d33c23857
gh-113896: Fix test_builtin.BuiltinTest.test___ne__() (#113897)
Fix DeprecationWarning in test___ne__().

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-01-11 00:39:48 +01:00
AN Long
fafb3275f2
gh-87868: Skip test_one_environment_variable in test_subprocess when the platform or build cannot do that (#113867)
* improve the assert for test_one_environment_variable
* skip some test in test_subprocess when python is configured with shared
* also skip the test if AddressSanitizer is enabled

---------

Co-authored-by: Steve Dower <steve.dower@microsoft.com>
2024-01-10 15:17:05 -08:00
Victor Stinner
1d75fa43a2
gh-77046: os.pipe() sets _O_NOINHERIT flag on fds (#113817)
On Windows, set _O_NOINHERIT flag on file descriptors
created by os.pipe() and io.WindowsConsoleIO.

Add test_pipe_spawnl() to test_os.

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2024-01-10 23:02:17 +01:00
Seth Michael Larson
e82b096335
gh-112302: Point core developers to SBOM devguide on errors (#113490)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2024-01-10 19:21:04 +00:00
Sam Gross
73ae2023a7
gh-113753: Clear finalized bit when putting PyAsyncGenASend back into free list (#113754) 2024-01-10 10:18:38 -08:00
Raymond Hettinger
901a971e16
gh-113625: Align object addresses in the Descriptor HowTo Guide (#113894) 2024-01-10 17:23:40 +01:00
Serhiy Storchaka
7049721835
Add @requires_zlib() decorator for gh-109858 tests (GH-113918) 2024-01-10 15:56:40 +00:00
Donghee Na
f728f7242c
gh-111968: Use per-thread freelists for float in free-threading (gh-113886) 2024-01-10 15:47:13 +00:00
Mark Shannon
a0c9cf9456
GH-113860: All executors are now defined in terms of micro ops. Convert counter executor to use uops. (GH-113864) 2024-01-10 15:44:34 +00:00
Victor Stinner
93930eaf0a
gh-111139: Optimize math.gcd(int, int) (#113887)
Add a fast-path for the common case.

Benchmark:

    python -m pyperf timeit \
        -s 'import math; gcd=math.gcd; x=2*3; y=3*5' \
        'gcd(x,y)'

Result: 1.07x faster (-3.4 ns)

    Mean +- std dev: 52.6 ns +- 4.0 ns -> 49.2 ns +- 0.4 ns: 1.07x faster
2024-01-10 16:38:56 +01:00
Serhiy Storchaka
66363b9a7b
gh-109858: Protect zipfile from "quoted-overlap" zipbomb (GH-110016)
Raise BadZipFile when try to read an entry that overlaps with other entry or
central directory.
2024-01-10 15:55:36 +02:00
Serhiy Storchaka
183b97bb9d
gh-111789: Use PyDict_GetItemRef() in Modules/_zoneinfo.c (GH-112078) 2024-01-10 15:35:10 +02:00
Serhiy Storchaka
be5e65fdf6
gh-66515: Fix locking of an MH mailbox without ".mh_sequences" file (GH-113482)
Guarantee that it either open an existing ".mh_sequences" file or create
a new ".mh_sequences" file, but do not replace existing ".mh_sequences"
file.
2024-01-10 15:31:55 +02:00
Serhiy Storchaka
89cee94b31
gh-89850: Add default C implementations of persistent_id() and persistent_load() (GH-113579)
Previously the C implementation of pickle.Pickler and pickle.Unpickler
classes did not have such methods and they could only be used if
they were overloaded in subclasses or set as instance attributes.

Fixed calling super().persistent_id() and super().persistent_load() in
subclasses of the C implementation of pickle.Pickler and pickle.Unpickler
classes. It no longer causes an infinite recursion.
2024-01-10 15:30:37 +02:00
Serhiy Storchaka
b3d2427f22
gh-58032: Do not use argparse.FileType in module CLIs and scripts (GH-113649)
Open and close files manually. It prevents from leaking files,
preliminary creation of output files, and accidental closing of stdin
and stdout.
2024-01-10 15:07:19 +02:00
Serhiy Storchaka
a8629816c6
gh-113664: Improve style of Big O notation (GH-113695)
Use cursive to make it looking like mathematic formulas.
2024-01-10 15:01:18 +02:00
Serhiy Storchaka
e9d5b6ea2d
gh-113594: Fix UnicodeEncodeError in TokenList.fold() (GH-113730)
It occurred when try to re-encode an unknown-8bit part combined with non-unknown-8bit part.
2024-01-10 14:54:36 +02:00
Serhiy Storchaka
568d220993
gh-70835: Clarify error message for CSV file opened with wrong newline (GH-113786)
Based on patch by SilentGhost.
2024-01-10 14:52:29 +02:00
Serhiy Storchaka
aef4a1203c
gh-96037: Always insert TimeoutError when exit an expired asyncio.timeout() block (GH-113819)
If other exception was raised during exiting an expired
asyncio.timeout() block, insert TimeoutError in the exception context
just above the CancelledError.
2024-01-10 12:50:31 +02:00
Serhiy Storchaka
ab0ad62038
gh-113879: Fix ResourceWarning in test_asyncio.test_server (GH-113881) 2024-01-10 12:38:36 +02:00
Serhiy Storchaka
1b7e0024a1
gh-113877: Fix Tkinter method winfo_pathname() on 64-bit Windows (GH-113900)
winfo_id() converts the result of "winfo id" command to integer, but
"winfo pathname" command requires an argument to be a hexadecimal number
on Win64.
2024-01-10 12:36:03 +02:00
Petr Viktorin
5d384b0468
GH-113858: GitHub Actions config: Only save ccache on pushes (GH-113859) 2024-01-10 09:49:18 +01:00
Jamie Phan
4826d52338
gh-112182: Replace StopIteration with RuntimeError for future (#113220)
When an `StopIteration` raises into `asyncio.Future`, this will cause
a thread to hang. This commit address this by not raising an exception
and silently transforming the `StopIteration` with a `RuntimeError`,
which the caller can reconstruct from `fut.exception().__cause__`
2024-01-09 21:21:00 -08:00
Barney Gale
5d8a3e74b5
pathlib ABCs: Require one or more initialiser arguments (#113885)
Refuse to guess what a user means when they initialise a pathlib ABC
without any positional arguments. In mainline pathlib it's normalised to
`.`, but in the ABCs this guess isn't appropriate; for example, the path
type may not represent the current directory as `.`, or may have no concept
of a "current directory" at all.
2024-01-10 01:12:58 +00:00
Barney Gale
beb80d11ec
GH-113528: Deoptimise pathlib._abc.PurePathBase (#113559)
Apply pathlib's normalization and performance tuning in `pathlib.PurePath`, but not `pathlib._abc.PurePathBase`.

With this change, the pathlib ABCs do not normalize away alternate path separators, empty segments, or dot segments. A single string given to the initialiser will round-trip by default, i.e. `str(PurePathBase(my_string)) == my_string`. Implementors can set their own path domain-specific normalization scheme by overriding `__str__()`

Eliminating path normalization makes maintaining and caching the path's parts and string representation both optional and not very useful, so this commit moves the `_drv`, `_root`, `_tail_cached` and `_str` slots from `PurePathBase` to `PurePath`. Only `_raw_paths` and `_resolving` slots remain in `PurePathBase`. This frees the ABCs from the burden of some of pathlib's hardest-to-understand code.
2024-01-09 23:52:15 +00:00
Donghee Na
57bdc6c30d
gh-111968: Introduce _PyFreeListState and _PyFreeListState_GET API (gh-113584) 2024-01-10 08:04:41 +09:00
Barney Gale
cdca0ce0ad
GH-113528: Deoptimise pathlib._abc.PurePathBase.relative_to() (again) (#113882)
Restore full battle-tested implementations of `PurePath.[is_]relative_to()`. These were recently split up in 3375dfe and a15a773.

In `PurePathBase`, add entirely new implementations based on `_stack`, which itself calls `pathmod.split()` repeatedly to disassemble a path. These new implementations preserve features like trailing slashes where possible, while still observing that a `..` segment cannot be added to traverse an empty or `.` segment in *walk_up* mode. They do not rely on `parents` nor `__eq__()`, nor do they spin up temporary path objects.

Unfortunately calling `pathmod.relpath()` isn't an option, as it calls `abspath()` and in turn `os.getcwd()`, which is impure.
2024-01-09 23:04:14 +00:00
Barney Gale
5c7bd0e398
GH-113528: Deoptimise pathlib._abc.PurePathBase.parts (#113883)
Implement `parts` using `_stack`, which itself calls `pathmod.split()`
repeatedly. This avoids use of `_tail`, which will be moved to `PurePath`
shortly.
2024-01-09 22:46:50 +00:00
AN Long
623b338adf
gh-66060: Use actual class name in _io type's __repr__ (#30824)
Use the object's actual class name in the following _io type's __repr__:
- FileIO
- TextIOWrapper
- _WindowsConsoleIO
2024-01-09 21:39:36 +01:00
Barney Gale
1092cfb201
GH-113528: Deoptimise pathlib._abc.PathBase.resolve() (#113782)
Replace use of `_from_parsed_parts()` with `with_segments()` in
`resolve()`.

No effect on `Path.resolve()`, which uses `os.path.realpath()`.
2024-01-09 19:50:23 +00:00
Stefano Rivera
3a9096c337
GH-113661: unittest runner: Don't exit 5 if tests were skipped (#113856)
The intention of exiting 5 was to detect issues where the test suite
wasn't discovered at all. If we skipped tests, it was correctly
discovered.
2024-01-09 19:50:01 +00:00