]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
4 years agoRemove Enum warnings from test_httpservers (GH-25844)
Shreyan Avigyan [Mon, 3 May 2021 19:27:47 +0000 (00:57 +0530)] 
Remove Enum warnings from test_httpservers (GH-25844)

4 years agobpo-38530: Refactor and improve AttributeError suggestions (GH-25776)
Dennis Sweeney [Mon, 3 May 2021 15:47:27 +0000 (11:47 -0400)] 
bpo-38530: Refactor and improve AttributeError suggestions (GH-25776)

- Make case-swaps half the cost of any other edit
- Refactor Levenshtein code to not use memory allocator, and to bail early on no match.
- Add comments to Levenshtein distance code
- Add test cases for Levenshtein distance behind a debug macro
- Set threshold to `(name_size + item_size + 3) * MOVE_COST / 6`.
  - Reasoning: similar to `difflib.SequenceMatcher.ratio()` >= 2/3:
```
"Multiset Jaccard similarity" >= 2/3
matching letters / total letters >= 2/3
(name_size - distance + item_size - distance) / (name_size + item_size) >= 2/3
1 - (2*distance) / (name_size + item_size) >= 2/3
1/3 >= (2*distance) / (name_size + item_size)
(name_size + item_size) / 6 >= distance
With rounding:
(name_size + item_size + 3) // 6 >= distance
```

Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
4 years agobpo-43943: ssl tests: Increase server socket timeout, backlog, debugging (GH-25850)
Christian Heimes [Mon, 3 May 2021 15:45:02 +0000 (17:45 +0200)] 
bpo-43943: ssl tests: Increase server socket timeout, backlog, debugging (GH-25850)

Signed-off-by: Christian Heimes <christian@python.org>
4 years agobpo-44011: Revert "New asyncio ssl implementation (GH-17975)" (GH-25848)
Pablo Galindo [Mon, 3 May 2021 15:21:59 +0000 (16:21 +0100)] 
bpo-44011: Revert "New asyncio ssl implementation (GH-17975)" (GH-25848)

This reverts commit 5fb06edbbb769561e245d0fe13002bab50e2ae60 and all
subsequent dependent commits.

4 years agobpo-43754: Fix compiler warning in Python/compile.c (GH-25855)
Pablo Galindo [Mon, 3 May 2021 15:20:46 +0000 (16:20 +0100)] 
bpo-43754: Fix compiler warning in Python/compile.c (GH-25855)

This fixes the following warning:

'initializing': conversion from 'Py_ssize_t' to 'int', possible loss of data [D:\a\cpython\cpython\PCbuild\pythoncore.vcxproj]

4 years agobpo-43916: Move the _PyStructSequence_InitType function to the internal API (GH-25854)
Pablo Galindo [Mon, 3 May 2021 14:50:24 +0000 (15:50 +0100)] 
bpo-43916: Move the _PyStructSequence_InitType function to the internal API (GH-25854)

4 years agoDoc: Fix random.uniform example comment. (GH-25784)
Julien Palard [Mon, 3 May 2021 09:20:54 +0000 (11:20 +0200)] 
Doc: Fix random.uniform example comment. (GH-25784)

4 years agoIncrease test timeout (GH-25842)
Andrew Svetlov [Mon, 3 May 2021 09:06:17 +0000 (12:06 +0300)] 
Increase test timeout (GH-25842)

4 years agobpo-42725: Render annotations effectless on symbol table with PEP 563 (GH-25583)
Batuhan Taskaya [Mon, 3 May 2021 07:43:00 +0000 (10:43 +0300)] 
bpo-42725: Render annotations effectless on symbol table with PEP 563 (GH-25583)

4 years agobpo-44011: Fix asyncio tests without ssl module (GH-25840)
Christian Heimes [Mon, 3 May 2021 07:38:56 +0000 (09:38 +0200)] 
bpo-44011: Fix asyncio tests without ssl module (GH-25840)

Signed-off-by: Christian Heimes <christian@python.org>
4 years agobpo-44015: dataclasses should allow KW_ONLY to be specified only once per class ...
Eric V. Smith [Mon, 3 May 2021 07:24:53 +0000 (03:24 -0400)] 
bpo-44015: dataclasses should allow KW_ONLY to be specified only once per class (GH-25841)

bpo-44015: Raise a TypeError if KW_ONLY is specified more than once.

4 years agodataclasses docs: add a missing word. (GH-25839)
Eric V. Smith [Mon, 3 May 2021 06:33:34 +0000 (02:33 -0400)] 
dataclasses docs: add a missing word. (GH-25839)

4 years agoMore clarification of kw_only args. (GH-25838)
Eric V. Smith [Mon, 3 May 2021 05:55:13 +0000 (01:55 -0400)] 
More clarification of kw_only args. (GH-25838)

Also, clarify that the dataclass decorator is what raises an error for some mutable defaults.

4 years agoUpdate macOS installer welcome and readme for 3.10b1 (GH-25835)
Ned Deily [Mon, 3 May 2021 05:02:13 +0000 (01:02 -0400)] 
Update macOS installer welcome and readme for 3.10b1 (GH-25835)

4 years agobpo-42362: use clang name on 10.9 builds as well (GH-25834)
Ned Deily [Mon, 3 May 2021 04:23:54 +0000 (00:23 -0400)] 
bpo-42362: use clang name on 10.9 builds as well (GH-25834)

4 years agoFix invalid markup (#25833)
Raymond Hettinger [Mon, 3 May 2021 04:07:29 +0000 (21:07 -0700)] 
Fix invalid markup (#25833)

4 years agobpo-42235: [macOS] Use LTO/PGO in build-installer.py with new enough compilers (GH...
Ronald Oussoren [Mon, 3 May 2021 03:43:52 +0000 (05:43 +0200)] 
bpo-42235: [macOS] Use LTO/PGO in build-installer.py with new enough compilers (GH-23079)

With recent enough compilers we can build binaries with
LTO/PGO on macOS. This patch enables this when building on
macOS 10.15 or later (Xcode 11 or later).

4 years agobpo-25478: Add total() method to collections.Counter (GH-25829)
Raymond Hettinger [Mon, 3 May 2021 03:19:51 +0000 (20:19 -0700)] 
bpo-25478: Add total() method to collections.Counter (GH-25829)

4 years agobpo-41129: Fix check for macOS SDK paths when building Python (GH-25785)
Ned Batchelder [Mon, 3 May 2021 02:58:57 +0000 (19:58 -0700)] 
bpo-41129: Fix check for macOS SDK paths when building Python (GH-25785)

Narrow search to match contents of SDKs, namely only files in ``/System/Library``,
``/System/IOSSupport``, and ``/usr`` other than ``/usr/local``. Previously,
anything under ``/System`` was assumed to be in an SDK which causes problems
with the new file system layout in 10.15+ where user file systems may appear
to be mounted under ``/System``.  Paths in ``/Library`` were also
incorrectly treated as SDK locations.

Co-authored-by: Ned Deily <nad@python.org>
4 years agobpo-37903: IDLE: add shell sidebar mouse interactions (GH-25708)
Tal Einat [Mon, 3 May 2021 02:27:38 +0000 (05:27 +0300)] 
bpo-37903: IDLE: add shell sidebar mouse interactions (GH-25708)

Left click and drag to select lines.  With selection, right click for context menu with copy and copy-with-prompts.
Also add copy-with-prompts to the text-box context menu.

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
4 years agobpo-42362: Switch to clang/clang++ as the default compiler in build-installer.py...
Ronald Oussoren [Mon, 3 May 2021 01:29:03 +0000 (03:29 +0200)] 
bpo-42362: Switch to clang/clang++ as the default compiler in build-installer.py (GH-23298)

This change is cosmetic only, the "gcc" command in Apple's compiler tools is an alias for "clang" (and using non-system tooling for building the installer is not supported by this script).

Automerge-Triggered-By: GH:ned-deily
4 years agoMore work on documenting dataclass keyword-only fields. (GH-25828)
Eric V. Smith [Mon, 3 May 2021 01:20:50 +0000 (21:20 -0400)] 
More work on documenting dataclass keyword-only fields. (GH-25828)

4 years agobpo-43851: Build SQLite with SQLITE_OMIT_AUTOINIT on macOS (GH-25413)
Erlend Egeberg Aasland [Mon, 3 May 2021 00:37:35 +0000 (02:37 +0200)] 
bpo-43851: Build SQLite with SQLITE_OMIT_AUTOINIT on macOS (GH-25413)

4 years agobpo-43568: Drop support for MACOSX_DEPLOYMENT_TARGET < 10.3 (GH-25827)
Ned Deily [Mon, 3 May 2021 00:28:43 +0000 (20:28 -0400)] 
bpo-43568: Drop support for MACOSX_DEPLOYMENT_TARGET < 10.3 (GH-25827)

Only complain if the config target is >= 10.3 and the current target is
< 10.3. The check was originally added to ensure that incompatible
LDSHARED flags are not used, because -undefined dynamic_lookup is
used when building for 10.3 and later, and is not supported on older OS
versions. Apart from that, there should be no problem in general
with using an older target.

Authored-by: Joshua Root <jmr@macports.org>
4 years agobpo-43977: Make sure that tp_flags for pattern matching are inherited correctly....
Mark Shannon [Sun, 2 May 2021 23:38:22 +0000 (00:38 +0100)] 
bpo-43977: Make sure that tp_flags for pattern matching are inherited correctly. (GH-25813)

4 years agobpo-43977: Document the new pattern matching type flags (GH-25734)
Brandt Bucher [Sun, 2 May 2021 22:35:00 +0000 (15:35 -0700)] 
bpo-43977: Document the new pattern matching type flags (GH-25734)

4 years agobpo-43434: Clean up sqlite3.connect() after GH-25818 (GH-25823)
Erlend Egeberg Aasland [Sun, 2 May 2021 22:10:51 +0000 (00:10 +0200)] 
bpo-43434: Clean up sqlite3.connect() after GH-25818 (GH-25823)

4 years agobpo-44011: New asyncio ssl implementation (#17975)
Andrew Svetlov [Sun, 2 May 2021 21:34:15 +0000 (00:34 +0300)] 
bpo-44011: New asyncio ssl implementation (#17975)

4 years agobpo-43434: Move sqlite3.connect audit events to sqlite3.Connection.__init__ (GH-25818)
Erlend Egeberg Aasland [Sun, 2 May 2021 21:25:17 +0000 (23:25 +0200)] 
bpo-43434: Move sqlite3.connect audit events to sqlite3.Connection.__init__ (GH-25818)

4 years agobpo-43926: Cleaner metadata with PEP 566 JSON support. (GH-25565)
Jason R. Coombs [Sun, 2 May 2021 21:03:40 +0000 (17:03 -0400)] 
bpo-43926: Cleaner metadata with PEP 566 JSON support. (GH-25565)

* bpo-43926: Cleaner metadata with PEP 566 JSON support.

* Add blurb

* Add versionchanged and versionadded declarations for changes to metadata.

* Use descriptor for PEP 566

4 years agobpo-43754: Eliminate bindings for partial pattern matches (GH-25229)
Brandt Bucher [Sun, 2 May 2021 20:02:10 +0000 (13:02 -0700)] 
bpo-43754: Eliminate bindings for partial pattern matches (GH-25229)

4 years agobpo-43990: Fix the footnote ordering in the operator precedence docs (GH-25805)
Zackery Spytz [Sun, 2 May 2021 17:29:15 +0000 (10:29 -0700)] 
bpo-43990: Fix the footnote ordering in the operator precedence docs (GH-25805)

Footnotes 5 and 6 were in the wrong order.

4 years agobpo-43997: Add versionadded directives for to match_args, kw_only, and slots in datac...
Shreyan Avigyan [Sun, 2 May 2021 15:43:50 +0000 (21:13 +0530)] 
bpo-43997: Add versionadded directives for to match_args, kw_only, and slots in dataclasses.dataclasses documentation (GH-25803)

4 years agobpo-38820: Add ssl, hashlib, and hmac changes to whatsnew 3.10 (GH-25817)
Christian Heimes [Sun, 2 May 2021 14:38:02 +0000 (16:38 +0200)] 
bpo-38820: Add ssl, hashlib, and hmac changes to whatsnew 3.10 (GH-25817)

Signed-off-by: Christian Heimes <christian@python.org>
4 years agobpo-36384: Leading zeros in IPv4 addresses are no longer tolerated (GH-25099)
Christian Heimes [Sun, 2 May 2021 12:00:35 +0000 (14:00 +0200)] 
bpo-36384: Leading zeros in IPv4 addresses are no longer tolerated (GH-25099)

Reverts commit e653d4d8e820a7a004ad399530af0135b45db27a and makes
parsing even more strict. Like socket.inet_pton() any leading zero
is now treated as invalid input.

Signed-off-by: Christian Heimes <christian@python.org>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
4 years agobpo-32745: Fix a regression in the handling of ctypes' c_wchar_p type (#8721)
Zackery Spytz [Sun, 2 May 2021 10:40:01 +0000 (03:40 -0700)] 
bpo-32745: Fix a regression in the handling of ctypes' c_wchar_p type (#8721)

Embedded nulls would cause a ValueError to be raised. Thanks go to
Eryk Sun for their analysis.

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
4 years agobpo-41100: Update Misc/ACKS (GH-25808)
Ned Deily [Sun, 2 May 2021 09:19:07 +0000 (05:19 -0400)] 
bpo-41100: Update Misc/ACKS (GH-25808)

4 years agobpo-44009: Provide "python3.x-intel64" for Apple Silicon Macs (GH-25804)
Ned Deily [Sun, 2 May 2021 08:48:29 +0000 (04:48 -0400)] 
bpo-44009: Provide "python3.x-intel64" for Apple Silicon Macs (GH-25804)

This allows reliably forcing macOS universal2 framework builds
to run under Rosetta 2 Intel-64 emulation on Apple Silicon Macs
if needed for testing or when universal2 wheels are not yet
available.

4 years agobpo-43908: Mark ssl, hash, and hmac types as immutable (GH-25792)
Christian Heimes [Sun, 2 May 2021 07:47:45 +0000 (09:47 +0200)] 
bpo-43908: Mark ssl, hash, and hmac types as immutable (GH-25792)

Signed-off-by: Christian Heimes <christian@python.org>
4 years agobpo-43733: netrc try to use UTF-8 before using locale encoding. (GH-25781)
Inada Naoki [Sun, 2 May 2021 05:01:02 +0000 (14:01 +0900)] 
bpo-43733: netrc try to use UTF-8 before using locale encoding. (GH-25781)

4 years agobpo-43987: Add "Annotations Best Practices" HOWTO doc. (#25746)
larryhastings [Sun, 2 May 2021 04:19:24 +0000 (21:19 -0700)] 
bpo-43987: Add "Annotations Best Practices" HOWTO doc. (#25746)

Add "Annotations Best Practices" HOWTO doc.

4 years agoMinor tweaks to dataclasses keyword-only fields documentation. (GH-25801)
Eric V. Smith [Sun, 2 May 2021 01:46:05 +0000 (21:46 -0400)] 
Minor tweaks to dataclasses keyword-only fields documentation. (GH-25801)

4 years agoImprove the dataclasses kw_only documentation. (GH-25799)
Eric V. Smith [Sat, 1 May 2021 23:51:12 +0000 (19:51 -0400)] 
Improve the dataclasses kw_only documentation. (GH-25799)

4 years agoFix broken name in build.yml (GH-25759)
Brandt Bucher [Sat, 1 May 2021 22:02:30 +0000 (15:02 -0700)] 
Fix broken name in build.yml (GH-25759)

4 years agoFix exceptions mentioned in os.setxattr() docs (GH-25742)
Shreyash Sharma [Sat, 1 May 2021 20:54:39 +0000 (02:24 +0530)] 
Fix exceptions mentioned in os.setxattr() docs (GH-25742)

4 years agoRevert "bpo-43989: Temporarily disable warnings in ssltests (GH-25780)" (GH-25793)
Ethan Furman [Sat, 1 May 2021 20:53:57 +0000 (13:53 -0700)] 
Revert "bpo-43989: Temporarily disable warnings in ssltests (GH-25780)" (GH-25793)

Reverts python/cpython#25780

Automerge-Triggered-By: GH:tiran
4 years agobpo-43916: Rewrite new hashlib tests, fix typo (GH-25791)
Christian Heimes [Sat, 1 May 2021 20:42:36 +0000 (22:42 +0200)] 
bpo-43916: Rewrite new hashlib tests, fix typo (GH-25791)

* bpo-43916: Rewrite new hashlib tests, fix typo
* Flag test as cpython only

4 years agobpo-43989: Add signal format specifier for unix_events (GH-25769)
Roberto Hueso [Sat, 1 May 2021 20:34:29 +0000 (22:34 +0200)] 
bpo-43989: Add signal format specifier for unix_events (GH-25769)

Add format specifier for IntEnum references to avoid 3.12 deprecation warning.

4 years agobpo-43998: Fix testing without ssl module (GH-25790)
Christian Heimes [Sat, 1 May 2021 20:17:01 +0000 (22:17 +0200)] 
bpo-43998: Fix testing without ssl module (GH-25790)

Signed-off-by: Christian Heimes <christian@python.org>
4 years agobpo-43957: Add a missins space to the new format enum warning (#25770)
Pablo Galindo [Sat, 1 May 2021 19:26:09 +0000 (20:26 +0100)] 
bpo-43957: Add a missins space to the new format enum warning (#25770)

4 years agobpo-43998: Default to TLS 1.2 and increase cipher suite security (GH-25778)
Christian Heimes [Sat, 1 May 2021 18:53:10 +0000 (20:53 +0200)] 
bpo-43998: Default to TLS 1.2 and increase cipher suite security (GH-25778)

The ssl module now has more secure default settings. Ciphers without forward
secrecy or SHA-1 MAC are disabled by default. Security level 2 prohibits
weak RSA, DH, and ECC keys with less than 112 bits of security.
:class:`~ssl.SSLContext` defaults to minimum protocol version TLS 1.2.
Settings are based on Hynek Schlawack's research.

```
$ openssl version
OpenSSL 1.1.1k  FIPS 25 Mar 2021
$ openssl ciphers -v '@SECLEVEL=2:ECDH+AESGCM:ECDH+CHACHA20:ECDH+AES:DHE+AES:!aNULL:!eNULL:!aDSS:!SHA1:!AESCCM'
TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
TLS_AES_128_CCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESCCM(128) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH     Au=RSA  Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
DHE-RSA-AES128-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA256
```

Signed-off-by: Christian Heimes <christian@python.org>
4 years agoFixing doc for callback for lambda (GG-25779)
Shreyash Sharma [Sat, 1 May 2021 18:24:10 +0000 (23:54 +0530)] 
Fixing doc for callback for lambda (GG-25779)

Fixing callback for lambda when no return value is provided

4 years agoIf using a frozen class with slots, add __getstate__ and __setstate__ to set the...
Eric V. Smith [Sat, 1 May 2021 17:27:30 +0000 (13:27 -0400)] 
If using a frozen class with slots, add __getstate__ and __setstate__ to set the instance values. (GH-25786)

4 years agobpo-43989: Temporarily disable warnings in ssltests (GH-25780)
Christian Heimes [Sat, 1 May 2021 14:05:01 +0000 (16:05 +0200)] 
bpo-43989: Temporarily disable warnings in ssltests (GH-25780)

-Werror is currently broken.

4 years agobpo-43993: Update vendored pip to 21.1.1 (GH-25761)
Stéphane Bidoul [Sat, 1 May 2021 09:15:19 +0000 (11:15 +0200)] 
bpo-43993: Update vendored pip to 21.1.1 (GH-25761)

4 years agoNoted my recent contributions in "What's New In Python 3.10". (#25771)
larryhastings [Sat, 1 May 2021 05:55:21 +0000 (22:55 -0700)] 
Noted my recent contributions in "What's New In Python 3.10". (#25771)

Noted my recent contributions in "What's New In Python 3.10".  Also made some edits clarifying "annotations" vs "type hints", and some other edits for correctness.

4 years agobpo-42269: Add slots parameter to dataclass decorator (GH-24171)
Yurii Karabas [Sat, 1 May 2021 02:14:30 +0000 (05:14 +0300)] 
bpo-42269: Add slots parameter to dataclass decorator (GH-24171)

Add slots parameter to dataclass decorator and make_dataclass function.

4 years agobpo-43916: Export the _PyStructSequence_InitType to fix build errors in the curses...
Pablo Galindo [Sat, 1 May 2021 01:21:19 +0000 (02:21 +0100)] 
bpo-43916: Export the _PyStructSequence_InitType to fix build errors in the curses module (GH-25768)

4 years agobpo-41486: Fix initial buffer size can't > UINT32_MAX in zlib module (GH-25738)
Ma Lin [Fri, 30 Apr 2021 23:32:49 +0000 (07:32 +0800)] 
bpo-41486: Fix initial buffer size can't > UINT32_MAX in zlib module (GH-25738)

* Fix initial buffer size can't > UINT32_MAX in zlib module

After commit f9bedb630e8a0b7d94e1c7e609b20dfaa2b22231, in 64-bit build,
if the initial buffer size > UINT32_MAX, ValueError will be raised.

These two functions are affected:
1. zlib.decompress(data, /, wbits=MAX_WBITS, bufsize=DEF_BUF_SIZE)
2. zlib.Decompress.flush([length])

This commit re-allows the size > UINT32_MAX.

* adds curly braces per PEP 7.

* Renames `Buffer_*` to `OutputBuffer_*` for clarity

4 years agobpo-43995: Fix reference leak in test_grammar (GH-25764)
Erlend Egeberg Aasland [Fri, 30 Apr 2021 23:23:14 +0000 (01:23 +0200)] 
bpo-43995: Fix reference leak in test_grammar (GH-25764)

4 years agobpo-43971: Add spaces around annotated arg default '=' (GH-25702)
Mohamed Moselhy [Fri, 30 Apr 2021 23:06:55 +0000 (19:06 -0400)] 
bpo-43971: Add spaces around annotated arg default '=' (GH-25702)

Result: "quantity_on_hand: int = 0".

4 years agobpo-43928: Fix 'succesfully' typo in document (GH-25569)
JT [Fri, 30 Apr 2021 22:35:07 +0000 (15:35 -0700)] 
bpo-43928: Fix 'succesfully' typo in document (GH-25569)

4 years agobpo-43935: Fix typo in Turtle.back() docstring (GH-25581)
Tarjei Bærland [Fri, 30 Apr 2021 22:05:45 +0000 (00:05 +0200)] 
bpo-43935: Fix typo in Turtle.back() docstring (GH-25581)

'e ,' to 'e, '.

4 years agobpo-43888: Remove coverage builds from CI (GH-25679)
Ammar Askar [Fri, 30 Apr 2021 21:04:40 +0000 (17:04 -0400)] 
bpo-43888: Remove coverage builds from CI (GH-25679)

The coverage builds were consistently timing out in CI, suggesting that people were not reviewing the uploaded reports.

4 years agobpo-43979: Remove unnecessary operation from urllib.parse.parse_qsl (GH-25756)
Dong-hee Na [Fri, 30 Apr 2021 19:01:55 +0000 (04:01 +0900)] 
bpo-43979: Remove unnecessary operation from urllib.parse.parse_qsl (GH-25756)

Automerge-Triggered-By: GH:gpshead
4 years agobpo-43981: Fix reference leaks in test_squeezer (GH-25758)
Pablo Galindo [Fri, 30 Apr 2021 18:34:29 +0000 (19:34 +0100)] 
bpo-43981: Fix reference leaks in test_squeezer (GH-25758)

4 years agobpo-43916: _md5.md5 uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25753)
Victor Stinner [Fri, 30 Apr 2021 16:40:30 +0000 (18:40 +0200)] 
bpo-43916: _md5.md5 uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25753)

The following types use Py_TPFLAGS_DISALLOW_INSTANTIATION flag:

* _md5.md5
* _sha1.sha1
* _sha256.sha224
* _sha256.sha256
* _sha512.sha384
* _sha512.sha512

4 years agobpo-43901: Fix refleaks in test_module (GH-25754)
Pablo Galindo [Fri, 30 Apr 2021 16:26:45 +0000 (17:26 +0100)] 
bpo-43901: Fix refleaks in test_module (GH-25754)

4 years agobpo-43916: select.devpoll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25751)
Victor Stinner [Fri, 30 Apr 2021 16:19:57 +0000 (18:19 +0200)] 
bpo-43916: select.devpoll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25751)

4 years agobpo-43916: Apply Py_TPFLAGS_DISALLOW_INSTANTIATION to selected types (GH-25748)
Erlend Egeberg Aasland [Fri, 30 Apr 2021 14:04:57 +0000 (16:04 +0200)] 
bpo-43916: Apply Py_TPFLAGS_DISALLOW_INSTANTIATION to selected types (GH-25748)

Apply Py_TPFLAGS_DISALLOW_INSTANTIATION to the following types:

* _dbm.dbm
* _gdbm.gdbm
* _multibytecodec.MultibyteCodec
* _sre..SRE_Scanner
* _thread._localdummy
* _thread.lock
* _winapi.Overlapped
* array.arrayiterator
* functools.KeyWrapper
* functools._lru_list_elem
* pyexpat.xmlparser
* re.Match
* re.Pattern
* unicodedata.UCD
* zlib.Compress
* zlib.Decompress

4 years agobpo-43916: select.poll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25750)
Erlend Egeberg Aasland [Fri, 30 Apr 2021 13:49:17 +0000 (15:49 +0200)] 
bpo-43916: select.poll uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25750)

4 years agobpo-43933: Set frame.f_lineno during call to __exit__ (GH-25719)
Mark Shannon [Fri, 30 Apr 2021 13:32:47 +0000 (14:32 +0100)] 
bpo-43933:  Set frame.f_lineno during call to __exit__ (GH-25719)

* Set line number of __exit__ call in a with statement to be that of the with keyword.

4 years agobpo-43908: check_set_special_type_attr() checks Py_TPFLAGS_IMMUTABLETYPE (GH-25743)
Erlend Egeberg Aasland [Fri, 30 Apr 2021 13:25:43 +0000 (15:25 +0200)] 
bpo-43908: check_set_special_type_attr() checks Py_TPFLAGS_IMMUTABLETYPE (GH-25743)

check_set_special_type_attr() and type_set_annotations()
now check for immutable flag (Py_TPFLAGS_IMMUTABLETYPE).

Co-authored-by: Victor Stinner <vstinner@python.org>
4 years agobpo-43667: Fix broken Unicode encoding in non-UTF locales on Solaris (GH-25096)
Jakub Kulík [Fri, 30 Apr 2021 13:21:42 +0000 (15:21 +0200)] 
bpo-43667: Fix broken Unicode encoding in non-UTF locales on Solaris (GH-25096)

4 years agobpo-43916: PyStdPrinter_Type uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25749)
Victor Stinner [Fri, 30 Apr 2021 12:56:27 +0000 (14:56 +0200)] 
bpo-43916: PyStdPrinter_Type uses Py_TPFLAGS_DISALLOW_INSTANTIATION (GH-25749)

The PyStdPrinter_Type type now uses the
Py_TPFLAGS_DISALLOW_INSTANTIATION flag to disallow instantiation,
rather than seting a tp_init method which always fail.

Write also unit tests for PyStdPrinter_Type.

4 years agobpo-43916: Remove _disabled_new() function (GH-25745)
Victor Stinner [Fri, 30 Apr 2021 12:06:49 +0000 (14:06 +0200)] 
bpo-43916: Remove _disabled_new() function (GH-25745)

posix and _hashlib use the new Py_TPFLAGS_DISALLOW_INSTANTIATION
flag on their heap types, rather than using a custom tp_new function
(_disabled_new).

4 years agobpo-43916: Add Py_TPFLAGS_DISALLOW_INSTANTIATION type flag (GH-25721)
Victor Stinner [Fri, 30 Apr 2021 10:46:15 +0000 (12:46 +0200)] 
bpo-43916: Add Py_TPFLAGS_DISALLOW_INSTANTIATION type flag (GH-25721)

Add a new Py_TPFLAGS_DISALLOW_INSTANTIATION type flag to disallow
creating type instances: set tp_new to NULL and don't create the
"__new__" key in the type dictionary.

The flag is set automatically on static types if tp_base is NULL or
&PyBaseObject_Type and tp_new is NULL.

Use the flag on the following types:

* _curses.ncurses_version type
* _curses_panel.panel
* _tkinter.Tcl_Obj
* _tkinter.tkapp
* _tkinter.tktimertoken
* _xxsubinterpretersmodule.ChannelID
* sys.flags type
* sys.getwindowsversion() type
* sys.version_info type

Update MyStr example in the C API documentation to use
Py_TPFLAGS_DISALLOW_INSTANTIATION.

Add _PyStructSequence_InitType() function to create a structseq type
with the Py_TPFLAGS_DISALLOW_INSTANTIATION flag set.

type_new() calls _PyType_CheckConsistency() at exit.

4 years ago bpo-43973: object_set_class() checks Py_TPFLAGS_IMMUTABLETYPE (GH-25714)
Erlend Egeberg Aasland [Fri, 30 Apr 2021 10:07:02 +0000 (12:07 +0200)] 
 bpo-43973: object_set_class() checks Py_TPFLAGS_IMMUTABLETYPE (GH-25714)

Use Py_TPFLAGS_IMMUTABLETYPE to check for class assignments.

4 years agobpo-43977: Use tp_flags for collection matching (GH-25723)
Mark Shannon [Fri, 30 Apr 2021 08:50:28 +0000 (09:50 +0100)] 
bpo-43977: Use tp_flags for collection matching (GH-25723)

* Add Py_TPFLAGS_SEQUENCE and Py_TPFLAGS_MAPPING, add to all relevant standard builtin classes.

* Set relevant flags on collections.abc.Sequence and Mapping.

* Use flags in MATCH_SEQUENCE and MATCH_MAPPING opcodes.

* Inherit Py_TPFLAGS_SEQUENCE and Py_TPFLAGS_MAPPING.

* Add NEWS

* Remove interpreter-state map_abc and seq_abc fields.

4 years agobpo-43954: Fix a missing word in the unittest docs (GH-25672)
Zackery Spytz [Fri, 30 Apr 2021 07:32:19 +0000 (01:32 -0600)] 
bpo-43954: Fix a missing word in the unittest docs (GH-25672)

4 years agobpo-43817: Add inspect.get_annotations(). (#25522)
larryhastings [Fri, 30 Apr 2021 04:16:28 +0000 (21:16 -0700)] 
bpo-43817: Add inspect.get_annotations(). (#25522)

Add inspect.get_annotations, which safely computes the annotations defined on an object.  It works around the quirks of accessing the annotations from various types of objects, and makes very few assumptions about the object passed in. inspect.get_annotations can also correctly un-stringize stringized annotations.

inspect.signature, inspect.from_callable, and inspect.from_function now call inspect.get_annotations to retrieve annotations.  This means inspect.signature and inspect.from_callable can now un-stringize stringized annotations, too.

4 years agobpo-43981: Fix error in idle-test leak test (GH-25739)
Terry Jan Reedy [Fri, 30 Apr 2021 03:52:47 +0000 (23:52 -0400)] 
bpo-43981: Fix error in idle-test leak test (GH-25739)

Remove call to macosx.setupApp, which calls macosc.overrideRootMenu, which modifies
the menus, which results in two failures in the second round of the leak test.

4 years agoTwo minor fixes for accessing a module's name. (#25658)
larryhastings [Fri, 30 Apr 2021 03:13:25 +0000 (20:13 -0700)] 
Two minor fixes for accessing a module's name. (#25658)

While working on another issue, I noticed two minor nits in the C implementation of the module object.  Both are related to getting a module's name.

First, the C function module_dir() (module.__dir__) starts by ensuring the module dict is valid.  If the module dict is invalid, it wants to format an exception using the name of the module, which it gets from PyModule_GetName().  However, PyModule_GetName() gets the name of the module from the dict.  So getting the name in this circumstance will never succeed.

When module_dir() wants to format the error but can't get the name, it knows that PyModule_GetName() must have already raised an exception.  So it leaves that exception alone and returns an error.  The end result is that the exception raised here is kind of useless and misleading: dir(module) on a module with no __dict__ raises SystemError("nameless module").  I changed the code to actually raise the exception it wanted to raise, just without a real module name: TypeError("<module>.__dict__ is not a dictionary").  This seems more useful, and would do a better job putting the programmer who encountered this on the right track of figuring out what was going on.

Second, the C API function PyModule_GetNameObject() checks to see if the module has a dict.  If m->md_dict is not NULL, it calls _PyDict_GetItemIdWithError().  However, it's possible for m->md_dict to be None.  And if you call _PyDict_GetItemIdWithError(Py_None, ...) it will *crash*.

Unfortunately, this crash was due to my own bug in the other branch.  Fixing my code made the crash go away.  I assert that this is still possible at the API level.

The fix is easy: add a PyDict_Check() to PyModule_GetNameObject().

Unfortunately, I don't know how to add a unit test for this.  Having changed module_dir() above, I can't find any other interfaces callable from Python that eventually call PyModule_GetNameObject().  So I don't know how to trick the runtime into reproducing this error.

Since both these changes are minor--each entails only a small edit to only one line--I didn't bother with a news item.

4 years agobpo-43901: Lazy-create an empty annotations dict in all unannotated user classes...
larryhastings [Fri, 30 Apr 2021 03:09:08 +0000 (20:09 -0700)] 
bpo-43901: Lazy-create an empty annotations dict in all unannotated user classes and modules (#25623)

Change class and module objects to lazy-create empty annotations dicts on demand.  The annotations dicts are stored in the object's `__dict__` for backwards compatibility.

4 years agobpo-43892: Validate the first term of complex literal value patterns (GH-25735)
Brandt Bucher [Fri, 30 Apr 2021 00:19:28 +0000 (17:19 -0700)] 
bpo-43892: Validate the first term of complex literal value patterns (GH-25735)

4 years agobpo-42800: Rename AUDIT_READ to PY_AUDIT_READ (GH-25736)
Steve Dower [Fri, 30 Apr 2021 00:08:55 +0000 (01:08 +0100)] 
bpo-42800: Rename AUDIT_READ to PY_AUDIT_READ (GH-25736)

4 years agobpo-42800: add audit hooks for f_code and tb_frame (GH-24182)
Ryan Hileman [Thu, 29 Apr 2021 23:15:55 +0000 (16:15 -0700)] 
bpo-42800: add audit hooks for f_code and tb_frame (GH-24182)

Accessing the following attributes will now fire PEP 578 style audit hooks as ("object.__getattr__", obj, name):
* PyTracebackObject: tb_frame
* PyFrameObject: f_code
* PyGenObject: gi_code, gi_frame
* PyCoroObject: cr_code, cr_frame
* PyAsyncGenObject: ag_code, ag_frame
Add an AUDIT_READ attribute flag aliased to READ_RESTRICTED.
Update obsolete flag documentation.

4 years agobpo-43933: Show frame.f_lineno as None, rather than -1, if there is no line number...
Mark Shannon [Thu, 29 Apr 2021 18:28:50 +0000 (19:28 +0100)] 
bpo-43933: Show frame.f_lineno as None, rather than -1, if there is no line number. (GH-25717)

4 years agobpo-42589: Change URL for 'from' link when used in a raised exception (GH-23872)
sblondon [Thu, 29 Apr 2021 18:02:40 +0000 (20:02 +0200)] 
bpo-42589: Change URL for 'from' link when used in a raised exception (GH-23872)

Links for 'raise Exception from x' target to 'The raise statement' (7.8) section instead of 'The import statement' (7.11) section.

There are more modified links than in the bug report because I searched some other ones which can get the same improvement.

4 years agobpo-43882 - urllib.parse should sanitize urls containing ASCII newline and tabs....
Senthil Kumaran [Thu, 29 Apr 2021 17:16:50 +0000 (10:16 -0700)] 
bpo-43882 - urllib.parse should sanitize urls containing ASCII newline and tabs. (GH-25595)

* issue43882 - urllib.parse should sanitize urls containing ASCII newline and tabs.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
4 years agobpo-28254: Add PyGC_ functions to the stable ABI manifest (GH-25720) 11789/head
Petr Viktorin [Thu, 29 Apr 2021 13:46:48 +0000 (15:46 +0200)] 
bpo-28254: Add PyGC_ functions to the stable ABI manifest (GH-25720)

Co-authored-by: Senthil Kumaran <senthil@uthcode.com>
Co-authored-by: scoder <stefan_ml@behnel.de>
4 years agobpo-42739: Don't use sentinels to mark end of line table. (GH-25657)
Mark Shannon [Thu, 29 Apr 2021 12:12:51 +0000 (13:12 +0100)] 
bpo-42739: Don't use sentinels to mark end of line table. (GH-25657)

* Add length parameter to PyLineTable_InitAddressRange and doen't use sentinel values at end of table. Makes the line number table more robust.

* Update PyCodeAddressRange to match PEP 626.

4 years agobpo-43651: Fix test_logging (GH-25715)
Inada Naoki [Thu, 29 Apr 2021 11:37:32 +0000 (20:37 +0900)] 
bpo-43651: Fix test_logging (GH-25715)

4 years agobpo-43774: Enhance debug build documentation (GH-25712)
Victor Stinner [Thu, 29 Apr 2021 11:06:59 +0000 (13:06 +0200)] 
bpo-43774: Enhance debug build documentation (GH-25712)

* Add also references to --with-trace-refs option.
* Move _ob_next and _ob_prev at the end, since they don't exist by
  default and are related to debug.

4 years agobpo-37892: Use space indents in IDLE Shell (GH-25678)
Terry Jan Reedy [Thu, 29 Apr 2021 10:48:18 +0000 (06:48 -0400)] 
bpo-37892: Use space indents in IDLE Shell (GH-25678)

Adding a newline to the prompt moves it out of the way of
user code input, which now starts at the left margin,
along with continuation lines.

4 years agobpo-43795: Generate python3dll.c and doc data from manifest (PEP 652) (GH-25315)
Petr Viktorin [Thu, 29 Apr 2021 09:33:14 +0000 (11:33 +0200)] 
bpo-43795: Generate python3dll.c and doc data from manifest (PEP 652) (GH-25315)

4 years agobpo-43774: Remove unused PYMALLOC_DEBUG macro (GH-25711)
Victor Stinner [Thu, 29 Apr 2021 08:47:47 +0000 (10:47 +0200)] 
bpo-43774: Remove unused PYMALLOC_DEBUG macro (GH-25711)

Enhance also the documentation of debug hooks on memory allocators.

4 years agobpo-28254: Cleanup test_subprocess.test_preexec_gc_module_failure() (GH-25709)
Victor Stinner [Thu, 29 Apr 2021 08:26:53 +0000 (10:26 +0200)] 
bpo-28254: Cleanup test_subprocess.test_preexec_gc_module_failure() (GH-25709)

Saving/restoring gc.disable and gc.isenabled is no longer needed.

4 years agobpo-43908: Document Static Types in the C API (GH-25710)
Victor Stinner [Thu, 29 Apr 2021 08:26:34 +0000 (10:26 +0200)] 
bpo-43908: Document Static Types in the C API (GH-25710)

Update also PyTypeObject structure definition in the doc.

4 years agobpo-43908: Make array.array type immutable (GH-25696)
Erlend Egeberg Aasland [Thu, 29 Apr 2021 06:47:48 +0000 (08:47 +0200)] 
bpo-43908: Make array.array type immutable (GH-25696)

Co-authored-by: Victor Stinner <vstinner@python.org>