Commit graph

51202 commits

Author SHA1 Message Date
Miss Islington (bot)
4c0bc69238
[3.12] GH-119496: accept UTF-8 BOM in .pth files (GH-119509)
`Out-File -Encoding utf8` and similar commands in Windows Powershell 5.1 emit
UTF-8 with a BOM marker, which the regular `utf-8` codec decodes incorrectly.

`utf-8-sig` accepts a BOM, but also works correctly without one.

This change also makes .pth files match the way Python source files are handled.

(cherry picked from commit bf5b6467f8)

Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
Co-authored-by: Inada Naoki <songofacandy@gmail.com>
2024-05-24 14:52:09 +00:00
Miss Islington (bot)
122dd4f48a
[3.12] [3.13] gh-119461: Fix ThreadedVSOCKSocketStreamTest (GH-119465) (GH-119479) (#119484)
[3.13] gh-119461: Fix ThreadedVSOCKSocketStreamTest (GH-119465) (GH-119479)

gh-119461: Fix ThreadedVSOCKSocketStreamTest (GH-119465)

Fix ThreadedVSOCKSocketStreamTest: if get_cid() returns the host
address or the "any" address, use the local communication address
(loopback): VMADDR_CID_LOCAL.

On Linux 6.9, apparently, the /dev/vsock device is now available but
get_cid() returns VMADDR_CID_ANY (-1).

(cherry picked from commit c750061047)

Co-authored-by: Victor Stinner <vstinner@python.org>
(cherry picked from commit e94dbe4ed8)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-05-23 23:23:55 +00:00
Eric Snow
0d5fe2c7b4
[3.12] gh-119213: Be More Careful About _PyArg_Parser.kwtuple Across Interpreters (gh-119331) (gh-119425)
_PyArg_Parser holds static global data generated for modules by Argument Clinic.  The _PyArg_Parser.kwtuple field is a tuple object, even though it's stored within a static global.  In some cases the tuple is statically allocated and thus it's okay that it gets shared by multiple interpreters.  However, in other cases the tuple is set lazily, allocated from the heap using the active interprepreter at the point the tuple is needed.

This is a problem once that interpreter is destroyed since _PyArg_Parser.kwtuple becomes at dangling pointer, leading to crashes.  It isn't a problem if the tuple is allocated under the main interpreter, since its lifetime is bound to the lifetime of the runtime.  The solution here is to temporarily switch to the main interpreter.  The alternative would be to always statically allocate the tuple.

This change also fixes a bug where only the most recent parser was added to the global linked list.

(cherry picked from commit 81865002ae)
2024-05-22 22:26:58 +00:00
Nice Zombies
874a4f7d08
gh-118507 : Refactor ntpath native functions (gh-119381)
This refactoring will make future backports easier without changing behaviours,
apart from correcting a bug when passing a pipe to `ntpath.isfile`.
2024-05-22 15:49:26 +01:00
Miss Islington (bot)
8c96850161
[3.12] gh-118643: Fix AttributeError in the email module (GH-119099) (GH-119390)
Fix regression introduced in gh-100884: AttributeError when re-fold a long
address list.

Also fix more cases of incorrect encoding of the address separator in the
address list missed in gh-100884.
(cherry picked from commit 858b9e85fc)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-22 14:08:05 +03:00
Miss Islington (bot)
47b09d2e4c
[3.12] gh-119189: Add yet more tests for mixed Fraction arithmetic (GH-119298) (GH-119347)
(cherry picked from commit 10b1bd926a)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-21 22:49:16 +00:00
Miss Islington (bot)
a1c20529e2
[3.12] gh-110383: Document socket.makefile() accepts combined modes (GH-119150) (#119325)
The supported mode values are 'r', 'w', and 'b', or a combination of those.
(cherry picked from commit 62a29be5bb)

Co-authored-by: Daniel Williams <dann0a@gmail.com>
2024-05-21 18:52:56 +00:00
Miss Islington (bot)
8b6175c261
[3.12] gh-119174: Fix high DPI causes turtledemo(turtle-graphics examples) windows blurry (GH-119175) (#119290)
gh-119174: Fix high DPI causes turtledemo(turtle-graphics examples) windows blurry (GH-119175)

------

(cherry picked from commit 538ed5e481)

Co-authored-by: Wulian233 <71213467+Wulian233@users.noreply.github.com>
2024-05-21 04:09:30 +00:00
Victor Stinner
ec5743b5f2
[3.12] gh-119050: Add XML support to libregrtest refleak checker (#119148) (#119272)
gh-119050: Add XML support to libregrtest refleak checker (#119148)

regrtest test runner: Add XML support to the refleak checker
(-R option).

* run_unittest() now stores XML elements as string, rather than
  objects, in support.junit_xml_list.
* runtest_refleak() now saves/restores XML strings before/after
  checking for reference leaks. Save XML into a temporary file.

(cherry picked from commit 9257731f5d)
2024-05-20 22:56:34 +00:00
Miss Islington (bot)
f489911f2c
[3.12] gh-119189: Add more tests for mixed Fraction arithmetic (GH-119236) (GH-119256)
(cherry picked from commit fe67af1963)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-20 20:58:40 +00:00
Miss Islington (bot)
ffe9ba0477
[3.12] gh-92081: Fix for email.generator.Generator with whitespace between encoded words. (GH-92281) (#119246)
* Fix for email.generator.Generator with whitespace between encoded words.

email.generator.Generator currently does not handle whitespace between
encoded words correctly when the encoded words span multiple lines.  The
current generator will create an encoded word for each line.  If the end
of the line happens to correspond with the end real word in the
plaintext, the generator will place an unencoded space at the start of
the subsequent lines to represent the whitespace between the plaintext
words.

A compliant decoder will strip all the whitespace from between two
encoded words which leads to missing spaces in the round-tripped
output.

The fix for this is to make sure that whitespace between two encoded
words ends up inside of one or the other of the encoded words.  This
fix places the space inside of the second encoded word.

A second problem happens with continuation lines.  A continuation line that
starts with whitespace and is followed by a non-encoded word is fine because
the newline between such continuation lines is defined as condensing to
a single space character.  When the continuation line starts with whitespace
followed by an encoded word, however, the RFCs specify that the word is run
together with the encoded word on the previous line.  This is because normal
words are filded on syntactic breaks by encoded words are not.

The solution to this is to add the whitespace to the start of the encoded word
on the continuation line.

Test cases are from GH-92081

* Rename a variable so it's not confused with the final variable.
(cherry picked from commit a6fdb31b67)

Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
2024-05-20 20:10:49 +00:00
Miss Islington (bot)
541b89eaf6
[3.12] IDLE: fix url in config.py comment (GH-119198) (#119200)
IDLE: fix url in config.py comment (GH-119198)
(cherry picked from commit 357f5a1f73)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2024-05-20 06:29:42 +00:00
Miss Islington (bot)
d76d95eacb
[3.12] gh-119050: Add type hints to libregrtest/results.py (GH-119144) (#119157)
gh-119050: Add type hints to libregrtest/results.py (GH-119144)

Sort also 'omitted' in TestResults.display_result().
(cherry picked from commit 30b4e9f9c4)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-05-18 21:06:41 +00:00
Serhiy Storchaka
0a761cafc8
[3.12] Add Tkinter tests for different events (GH-118778) (GH-119095)
(cherry picked from commit b6839942a8)
2024-05-16 10:43:02 +00:00
Serhiy Storchaka
33a9f0ce65
[3.12] gh-119064: Use os_helper.FakePath instead of pathlib.Path in tests (GH-119065) (GH-119088)
(cherry picked from commit 0152dc4ff5)
2024-05-16 08:04:37 +00:00
Miss Islington (bot)
6d0850c4c8
gh-118486: Simplify test_win32_mkdir_700 to check the exact ACL (GH-119056)
(cherry picked from commit 94591dca51)

Co-authored-by: Steve Dower <steve.dower@python.org>
2024-05-15 11:21:57 +00:00
Miss Islington (bot)
4695f1a364
[3.12] typing tests: remove some unnecessary uses of exec() (GH-119005) (#119039)
(cherry picked from commit a9328e2b6e)

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-05-14 14:51:08 +00:00
Miss Islington (bot)
56cc026c85
[3.12] Add yet few cases for urlparse/urlunparse roundtrip tests (GH-119031) (GH-119036)
(cherry picked from commit 331d385af9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-14 14:16:27 +00:00
Miss Islington (bot)
387ff96e95
[3.12] gh-67693: Fix urlunparse() and urlunsplit() for URIs with path starting with multiple slashes and no authority (GH-113563) (GH-119024)
(cherry picked from commit e237b25a4f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-14 09:47:11 +00:00
Tian Gao
fcdd20ef83
[3.12] gh-58933: Make pdb return to caller frame correctly when f_trace is not set (GH-118979) (#119008)
* [3.12] gh-58933: Make pdb return to caller frame correctly when f_trace is not set (GH-118979)
(cherry picked from commit f526314194)

Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>
2024-05-13 20:21:15 +01:00
Miss Islington (bot)
35649dfe05
[3.12] gh-87106: Fix inspect.signature.bind() handling of positional-only arguments with **kwargs (GH-103404) (GH-118984)
(cherry picked from commit 9c15202441)

Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
2024-05-13 08:29:47 +00:00
Miss Islington (bot)
76dc1bf5be
[3.12] gh-118899: Add tests for NotImplemented attribute access (GH-118902) (#118969)
gh-118899: Add tests for `NotImplemented` attribute access (GH-118902)
(cherry picked from commit ec1398e117)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-12 14:22:58 +00:00
Steve Dower
eb29e2f590
gh-118486: Support mkdir(mode=0o700) on Windows (GH-118488) 2024-05-09 19:18:56 +01:00
Miss Islington (bot)
c0d257cc69
gh-118802: Fix ACL use in test for non-English Windows (GH-118831)
(cherry picked from commit 82acc5f211)

Co-authored-by: Steve Dower <steve.dower@python.org>
2024-05-09 13:41:15 +00:00
Miss Islington (bot)
0d626760a4
[3.12] gh-103956: Fix trace output in case of missing source line (GH-103958) (GH-118832)
Print only filename with lineno if linecache.getline() returns an empty string.
(cherry picked from commit 7c87ce777b)

Co-authored-by: Radislav Chugunov <52372310+chgnrdv@users.noreply.github.com>
2024-05-09 12:51:03 +00:00
Miss Islington (bot)
e9539568be
[3.12] gh-118033: Fix __weakref__ not set for generic dataclasses (GH-118099) (#118822)
gh-118033: Fix `__weakref__` not set for generic dataclasses (GH-118099)
(cherry picked from commit fa9b9cb113)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-09 09:09:40 +00:00
Miss Islington (bot)
656491783d
[3.12] gh-118671: Updated dead ActiveState links (GH-118730) (#118754)
Co-authored-by: trag1c <trag1cdev@yahoo.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
2024-05-08 07:22:35 +00:00
Miss Islington (bot)
56c61cc564
[3.12] gh-118314: Fix padding edge case in binascii.a2b_base64 strict mode (GH-118320) (GH-118691)
gh-118314: Fix padding edge case in binascii.a2b_base64 strict mode (GH-118320)

Fix an edge case in `binascii.a2b_base64` strict mode, where
excessive padding was not detected when no padding is necessary.

(cherry picked from commit fe47d9bee3)

Co-authored-by: Youfu Zhang <1315097+zhangyoufu@users.noreply.github.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com>
2024-05-07 09:35:49 +00:00
Serhiy Storchaka
bee1c322c0
[3.12] gh-71592: Add ability to trace Tcl commands executed by Tkinter (GH-118291) (GH-118662)
This is an experimental feature, for internal use.

Setting tkinter._debug = True before creating the root window enables
printing every executed Tcl command (or a Tcl command equivalent to the
used Tcl C API).

This will help to convert a Tkinter example into Tcl script to check
whether the issue is caused by Tkinter or exists in the underlying Tcl/Tk
library.
(cherry picked from commit 1ff626ebda)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-06 19:26:08 +00:00
Miss Islington (bot)
a4812fd8f7
[3.12] gh-118164: Break a loop between _pydecimal and _pylong and optimize int to str conversion (GH-118483) (GH-118590)
For converting large ints to strings, CPython invokes a function in _pylong.py,
which uses the decimal module to implement an asymptotically waaaaay
sub-quadratic algorithm. But if the C decimal module isn't available, CPython
uses _pydecimal.py instead. Which in turn frequently does str(int). If the int
is very large, _pylong ends up doing the work, which in turn asks decimal to do
"big" arithmetic, which in turn calls str(big_int), which in turn ... it can
become infinite mutual recursion.

This change introduces a different int->str function that doesn't use decimal.
It's asymptotically worse, "Karatsuba time" instead of quadratic time, so
still a huge improvement. _pylong switches to that when the C decimal isn't
available. It is also used for not too large integers (less than 450_000 bits),
where it is faster (up to 2 times for 30_000 bits) than the asymptotically
better implementation that uses the C decimal.

(cherry picked from commit 711c80bfca)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Tim Peters <tim.peters@gmail.com>
2024-05-06 12:10:05 +03:00
Miss Islington (bot)
6abf8401db
[3.12] gh-78955: Use user-selected color theme for Help => IDLE Doc (GH-9502) (#118632)
gh-78955: Use user-selected color theme for Help => IDLE Doc (GH-9502)
(cherry picked from commit 7758be4318)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
2024-05-06 08:12:39 +00:00
Miss Islington (bot)
11594da046
[3.12] gh-117389: Fix test_compileall.EncodingTest (GH-117390) (#118603)
gh-117389: Fix `test_compileall.EncodingTest` (GH-117390)
(cherry picked from commit 44f67916da)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-05 19:02:04 +00:00
Miss Islington (bot)
d629819f60
[3.12] gh-118455: Fix mangle_from_ default value in email.policy.Policy.__doc__ (GH-118456) (#118586)
gh-118455: Fix mangle_from_ default value in email.policy.Policy.__doc__ (GH-118456)

* Fix mangle_from_ default value in email.policy.Policy.__doc__

The docstring says it defaults to True, but it actually defaults
to False. Only the Compat32 subclass overrides that.

---------

(cherry picked from commit fed8d73fde)

Co-authored-by: wim glenn <jump@wimglenn.com>
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-05 06:35:11 +00:00
Miss Islington (bot)
0c605244a8
[3.12] gh-118164: str(10**10000) hangs if the C _decimal module is missing (GH-118503) (GH-118584)
Serhiy and I independently concluded that exact powers of 10
aren't possible in these contexts, so just checking the
string length is sufficient.

(cherry picked from commit 999f0c5122)

Co-authored-by: Tim Peters <tim.peters@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-05-05 09:34:43 +03:00
Miss Islington (bot)
53e8bdd1e6
[3.12] gh-118569: Add a test for dynamic PEP695 classes (GH-118570) (#118574)
gh-118569: Add a test for dynamic PEP695 classes (GH-118570)
(cherry picked from commit 5f547585fa)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-04 15:26:30 +00:00
Miss Islington (bot)
3706eef02a
[3.12] gh-118513: Fix sibling comprehensions with a name bound in one and global in the other (GH-118526) (#118548)
gh-118513: Fix sibling comprehensions with a name bound in one and global in the other (GH-118526)
(cherry picked from commit c8deb1e4b4)

Co-authored-by: Carl Meyer <carl@oddbird.net>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
2024-05-03 14:40:05 +00:00
Miss Islington (bot)
23ba96e243
[3.12] gh-90848: Fixed create_autospec ignoring configure_mock style kwargs (GH-118163) (#118517)
gh-90848: Fixed create_autospec ignoring configure_mock style kwargs (GH-118163)
(cherry picked from commit b28a3339e4)

Co-authored-by: infohash <46137868+infohash@users.noreply.github.com>
2024-05-02 18:01:17 +00:00
Irit Katriel
238efbecab
[3.12] gh-118272: Clear generator frame's locals when the generator is closed (#118451) 2024-05-02 16:22:50 +01:00
Thomas Grainger
c48e0ef7dd
[3.12] GH-117881: fix athrow().throw()/asend().throw() concurrent access (GH-117882) (#118458)
GH-117881: fix athrow().throw()/asend().throw() concurrent access (GH-117882)

(cherry picked from commit fc7e1aa3c0)
2024-05-02 10:23:25 +02:00
Miss Islington (bot)
29be35c0ab
[3.12] Uncomment one grammar test (GH-118361) (#118385)
Uncomment one grammar test (GH-118361)
(cherry picked from commit 23d0371bb9)

Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-05-02 06:03:49 +00:00
Jelle Zijlstra
9ec7ddd826
[3.12] docs: typo: tiny grammar change: "pointed by" -> "pointed to by" (GH-118411) (#118504)
(cherry picked from commit a6b610a94b)

Co-authored-by: Andrew Zipperer <47086307+zipperer@users.noreply.github.com>
Co-authored-by: Andrew-Zipperer <atzipperer@gmail.com>
2024-05-02 06:01:06 +00:00
Irit Katriel
ebef3c5ba4
[3.12] gh-116767: fix crash on 'async with' with many context managers (GH-118348) (#118477)
gh-116767: fix crash on 'async with' with many context managers (GH-118348)

Account for `add_stopiteration_handler` pushing a block for `async with`.
To allow generator functions that previously almost hit the `CO_MAXBLOCKS`
limit by nesting non-async blocks, the limit is increased by 1.
This increase allows one more block in non-generator functions.

(cherry picked from commit c1bf4874c1)
2024-05-01 18:23:29 +01:00
Miss Islington (bot)
0586d54241
[3.12] gh-118418: Use a default value for type_params in typing._eval_type (GH-118431) (#118436)
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
2024-04-30 16:26:38 +00:00
Miss Islington (bot)
a030bae584
[3.12] gh-117860: Add tests for resolving names when import rebind names (GH-118176) (GH-118432)
Add tests for "import", pkgutil.resolve_name() and unittest.mock.path()
for cases when "import a.b as x" and "from a import b as x" give
different results.
(cherry picked from commit c0eaa232f6)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-04-30 14:52:44 +00:00
Miss Islington (bot)
1b12ad5970
[3.12] gh-118404: Fix inspect.signature() for non-comparable callables (GH-118405) (GH-118424)
(cherry picked from commit 11f8348d78)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-04-30 12:33:54 +00:00
Miss Islington (bot)
3989894a39
[3.12] gh-117566: fix IPv6Address.is_loopback for IPv4-mapped loopbacks (GH-117567) (GH-118391)
gh-117566: fix IPv6Address.is_loopback for IPv4-mapped loopbacks (GH-117567)

While properties like IPv6Address.is_private account for IPv4-mapped
IPv6 addresses, such as for example:

    >>> ipaddress.ip_address("192.168.0.1").is_private
    True
    >>> ipaddress.ip_address("::ffff:192.168.0.1").is_private
    True
...the same doesn't currently apply to the is_loopback property:
    >>> ipaddress.ip_address("127.0.0.1").is_loopback
    True
    >>> ipaddress.ip_address("::ffff:127.0.0.1").is_loopback
    False

At minimum, this inconsistency between different properties is
counter-intuitive. Moreover, ::ffff:127.0.0.0/104 is for all intents and
purposes a loopback address, and should be treated as such.

(cherry picked from commit fb7f79b4da)

Co-authored-by: Faidon Liambotis <paravoid@debian.org>
2024-04-29 14:41:26 +00:00
Serhiy Storchaka
8e3bd342f3
[3.12] gh-118042: Fix error in Telnet.__del__ when __init__() was not called (GH-118274) 2024-04-26 08:53:54 +03:00
Erlend E. Aasland
7a843e8390
[3.12] gh-118221: Always use the default row factory in sqlite3.iterdump() (#118223) (#118270)
sqlite3.iterdump() depends on the row factory returning resulting rows
as tuples; it will fail with custom row factories like for example a
dict factory.

With this commit, we explicitly reset the row factory of the cursor used
by iterdump(), so we always get predictable results. This does not
affect the row factory of the parent connection.

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-04-25 08:33:35 +00:00
Thomas Grainger
fc1732ce3f
[3.12] GH-117894: prevent aclose()/athrow() being re-used after StopIteration (GH-117851) (GH-118226)
(cherry picked from commit 7d369d471c)
2024-04-25 09:13:47 +02:00
Miss Islington (bot)
0691bd860d
[3.12] gh-118013: Use weakrefs for the cache key in inspect._shadowed_dict (GH-118202) (#118232)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-04-24 15:27:08 +00:00