Python 3.12.0b4

This commit is contained in:
Thomas Wouters 2023-07-11 14:22:17 +02:00
parent 6968f9e4d3
commit 97a6a41816
35 changed files with 337 additions and 82 deletions

View file

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 12 #define PY_MINOR_VERSION 12
#define PY_MICRO_VERSION 0 #define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
#define PY_RELEASE_SERIAL 3 #define PY_RELEASE_SERIAL 4
/* Version as a string */ /* Version as a string */
#define PY_VERSION "3.12.0b3+" #define PY_VERSION "3.12.0b4"
/*--end constants--*/ /*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View file

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Mon Jun 19 20:55:48 2023 # Autogenerated by Sphinx on Tue Jul 11 14:22:58 2023
# as part of the release process.
topics = {'assert': 'The "assert" statement\n' topics = {'assert': 'The "assert" statement\n'
'**********************\n' '**********************\n'
'\n' '\n'
@ -208,7 +209,7 @@ topics = {'assert': 'The "assert" statement\n'
'the\n' 'the\n'
' subscript must have a type compatible with the mappings key ' ' subscript must have a type compatible with the mappings key '
'type,\n' 'type,\n'
' and the mapping is then asked to create a key/datum pair ' ' and the mapping is then asked to create a key/value pair '
'which maps\n' 'which maps\n'
' the subscript to the assigned object. This can either ' ' the subscript to the assigned object. This can either '
'replace an\n' 'replace an\n'
@ -5687,30 +5688,31 @@ topics = {'assert': 'The "assert" statement\n'
'dict': 'Dictionary displays\n' 'dict': 'Dictionary displays\n'
'*******************\n' '*******************\n'
'\n' '\n'
'A dictionary display is a possibly empty series of key/datum pairs\n' 'A dictionary display is a possibly empty series of dict items\n'
'enclosed in curly braces:\n' '(key/value pairs) enclosed in curly braces:\n'
'\n' '\n'
' dict_display ::= "{" [key_datum_list | dict_comprehension] ' ' dict_display ::= "{" [dict_item_list | dict_comprehension] '
'"}"\n' '"}"\n'
' key_datum_list ::= key_datum ("," key_datum)* [","]\n' ' dict_item_list ::= dict_item ("," dict_item)* [","]\n'
' key_datum ::= expression ":" expression | "**" or_expr\n' ' dict_item ::= expression ":" expression | "**" or_expr\n'
' dict_comprehension ::= expression ":" expression comp_for\n' ' dict_comprehension ::= expression ":" expression comp_for\n'
'\n' '\n'
'A dictionary display yields a new dictionary object.\n' 'A dictionary display yields a new dictionary object.\n'
'\n' '\n'
'If a comma-separated sequence of key/datum pairs is given, they are\n' 'If a comma-separated sequence of dict items is given, they are\n'
'evaluated from left to right to define the entries of the ' 'evaluated from left to right to define the entries of the '
'dictionary:\n' 'dictionary:\n'
'each key object is used as a key into the dictionary to store the\n' 'each key object is used as a key into the dictionary to store the\n'
'corresponding datum. This means that you can specify the same key\n' 'corresponding value. This means that you can specify the same key\n'
'multiple times in the key/datum list, and the final dictionarys ' 'multiple times in the dict item list, and the final dictionarys '
'value\n' 'value\n'
'for that key will be the last one given.\n' 'for that key will be the last one given.\n'
'\n' '\n'
'A double asterisk "**" denotes *dictionary unpacking*. Its operand\n' 'A double asterisk "**" denotes *dictionary unpacking*. Its operand\n'
'must be a *mapping*. Each mapping item is added to the new\n' 'must be a *mapping*. Each mapping item is added to the new\n'
'dictionary. Later values replace values already set by earlier\n' 'dictionary. Later values replace values already set by earlier '
'key/datum pairs and earlier dictionary unpackings.\n' 'dict\n'
'items and earlier dictionary unpackings.\n'
'\n' '\n'
'New in version 3.5: Unpacking into dictionary displays, originally\n' 'New in version 3.5: Unpacking into dictionary displays, originally\n'
'proposed by **PEP 448**.\n' 'proposed by **PEP 448**.\n'
@ -5726,7 +5728,7 @@ topics = {'assert': 'The "assert" statement\n'
'Restrictions on the types of the key values are listed earlier in\n' 'Restrictions on the types of the key values are listed earlier in\n'
'section The standard type hierarchy. (To summarize, the key type\n' 'section The standard type hierarchy. (To summarize, the key type\n'
'should be *hashable*, which excludes all mutable objects.) Clashes\n' 'should be *hashable*, which excludes all mutable objects.) Clashes\n'
'between duplicate keys are not detected; the last datum (textually\n' 'between duplicate keys are not detected; the last value (textually\n'
'rightmost in the display) stored for a given key value prevails.\n' 'rightmost in the display) stored for a given key value prevails.\n'
'\n' '\n'
'Changed in version 3.8: Prior to Python 3.8, in dict ' 'Changed in version 3.8: Prior to Python 3.8, in dict '
@ -13256,7 +13258,7 @@ topics = {'assert': 'The "assert" statement\n'
'are\n' 'are\n'
'most of the built-in objects considered false:\n' 'most of the built-in objects considered false:\n'
'\n' '\n'
'* constants defined to be false: "None" and "False".\n' '* constants defined to be false: "None" and "False"\n'
'\n' '\n'
'* zero of any numeric type: "0", "0.0", "0j", "Decimal(0)",\n' '* zero of any numeric type: "0", "0.0", "0j", "Decimal(0)",\n'
' "Fraction(0, 1)"\n' ' "Fraction(0, 1)"\n'

318
Misc/NEWS.d/3.12.0b4.rst Normal file
View file

@ -0,0 +1,318 @@
.. date: 2023-06-13-20-52-24
.. gh-issue: 102988
.. nonce: Kei7Vf
.. release date: 2023-07-11
.. section: Security
CVE-2023-27043: Prevent :func:`email.utils.parseaddr` and
:func:`email.utils.getaddresses` from returning the realname portion of an
invalid RFC2822 email header in the email address portion of the 2-tuple
returned after being parsed by :class:`email._parseaddr.AddressList`.
..
.. date: 2023-07-04-09-51-45
.. gh-issue: 106396
.. nonce: DmYp7x
.. section: Core and Builtins
When the format specification of an f-string expression is empty, the parser
now generates an empty :class:`ast.JoinedStr` node for it instead of an
one-element :class:`ast.JoinedStr` with an empty string
:class:`ast.Constant`.
..
.. date: 2023-06-29-09-46-41
.. gh-issue: 106145
.. nonce: QC6-Kq
.. section: Core and Builtins
Make ``end_lineno`` and ``end_col_offset`` required on ``type_param`` ast
nodes.
..
.. date: 2023-06-22-19-16-24
.. gh-issue: 105979
.. nonce: TDP2CU
.. section: Core and Builtins
Fix crash in :func:`!_imp.get_frozen_object` due to improper exception
handling.
..
.. date: 2023-06-22-14-19-17
.. gh-issue: 98931
.. nonce: PPgvSF
.. section: Core and Builtins
Ensure custom :exc:`SyntaxError` error messages are raised for invalid
imports with multiple targets. Patch by Pablo Galindo
..
.. date: 2023-06-19-11-04-01
.. gh-issue: 105908
.. nonce: 7oanny
.. section: Core and Builtins
Fixed bug where :gh:`99111` breaks future import ``barry_as_FLUFL`` in the
Python REPL.
..
.. date: 2023-06-12-16-38-31
.. gh-issue: 105340
.. nonce: _jRHXe
.. section: Core and Builtins
Include the comprehension iteration variable in ``locals()`` inside a
module- or class-scope comprehension.
..
.. date: 2023-06-08-09-10-15
.. gh-issue: 105486
.. nonce: dev-WS
.. section: Core and Builtins
Change the repr of ``ParamSpec`` list of args in ``types.GenericAlias``.
..
.. date: 2023-01-13-11-37-41
.. gh-issue: 101006
.. nonce: fuLvn2
.. section: Core and Builtins
Improve error handling when read :mod:`marshal` data.
..
.. date: 2023-07-07-17-44-03
.. gh-issue: 106524
.. nonce: XkBV8h
.. section: Library
Fix crash in :func:`!_sre.template` with templates containing invalid group
indices.
..
.. date: 2023-07-07-13-47-28
.. gh-issue: 106510
.. nonce: 9n5BdC
.. section: Library
Improve debug output for atomic groups in regular expressions.
..
.. date: 2023-07-07-03-05-58
.. gh-issue: 106503
.. nonce: ltfeiH
.. section: Library
Fix ref cycle in :class:`!asyncio._SelectorSocketTransport` by removing
``_write_ready`` in ``close``.
..
.. date: 2023-07-05-14-34-10
.. gh-issue: 105497
.. nonce: HU5u89
.. section: Library
Fix flag mask inversion when unnamed flags exist.
..
.. date: 2023-07-05-13-08-23
.. gh-issue: 90876
.. nonce: Qvlkfl
.. section: Library
Prevent :mod:`multiprocessing.spawn` from failing to *import* in
environments where ``sys.executable`` is ``None``. This regressed in 3.11
with the addition of support for path-like objects in multiprocessing.
..
.. date: 2023-07-03-15-09-44
.. gh-issue: 106292
.. nonce: 3npldV
.. section: Library
Check for an instance-dict cached value in the :meth:`__get__` method of
:func:`functools.cached_property`. This better matches the pre-3.12 behavior
and improves compatibility for users subclassing
:func:`functools.cached_property` and adding a :meth:`__set__` method.
..
.. date: 2023-07-02-10-56-41
.. gh-issue: 106330
.. nonce: QSkIUH
.. section: Library
Fix incorrect matching of empty paths in :meth:`pathlib.PurePath.match`.
This bug was introduced in Python 3.12.0 beta 1.
..
.. date: 2023-07-01-16-40-54
.. gh-issue: 102541
.. nonce: C1ahtk
.. section: Library
Make pydoc.doc catch bad module ImportError when output stream is not None.
..
.. date: 2023-06-27-23-22-37
.. gh-issue: 106152
.. nonce: ya5jBT
.. section: Library
Added PY_THROW event hook for :mod:`cProfile` for generators
..
.. date: 2023-06-25-12-28-55
.. gh-issue: 106075
.. nonce: W7tMRb
.. section: Library
Added `asyncio.taskgroups.__all__` to `asyncio.__all__` for export in star
imports.
..
.. date: 2023-06-22-15-21-11
.. gh-issue: 105987
.. nonce: T7Kzrb
.. section: Library
Fix crash due to improper reference counting in :mod:`asyncio` eager task
factory internal routines.
..
.. date: 2023-06-21-19-04-27
.. gh-issue: 105974
.. nonce: M47n3t
.. section: Library
Fix bug where a :class:`typing.Protocol` class that had one or more
non-callable members would raise :exc:`TypeError` when :func:`issubclass`
was called against it, even if it defined a custom ``__subclasshook__``
method. The behaviour in Python 3.11 and lower -- which has now been
restored -- was not to raise :exc:`TypeError` in these situations if a
custom ``__subclasshook__`` method was defined. Patch by Alex Waygood.
..
.. date: 2023-06-20-23-18-45
.. gh-issue: 96145
.. nonce: o5dTRM
.. section: Library
Reverted addition of ``json.AttrDict``.
..
.. date: 2023-06-08-17-49-46
.. gh-issue: 105497
.. nonce: K6Q8nU
.. section: Library
Fix flag inversion when alias/mask members exist.
..
.. date: 2023-06-05-14-43-56
.. gh-issue: 104554
.. nonce: pwfKIo
.. section: Library
Add RTSPS scheme support in urllib.parse
..
.. date: 2022-07-12-18-45-13
.. gh-issue: 94777
.. nonce: mOybx7
.. section: Library
Fix hanging :mod:`multiprocessing` ``ProcessPoolExecutor`` when a child
process crashes while data is being written in the call queue.
..
.. date: 2023-06-30-19-28-59
.. gh-issue: 106232
.. nonce: hQ4-tz
.. section: Documentation
Make timeit doc command lines compatible with Windows by using double quotes
for arguments. This works on linux and macOS also.
..
.. date: 2023-06-28-02-51-08
.. gh-issue: 101634
.. nonce: Rayczr
.. section: Tests
When running the Python test suite with ``-jN`` option, if a worker stdout
cannot be decoded from the locale encoding report a failed testn so the
exitcode is non-zero. Patch by Victor Stinner.
..
.. date: 2023-06-26-21-56-29
.. gh-issue: 106118
.. nonce: 0cCfhl
.. section: Build
Fix compilation for platforms without :data:`!O_CLOEXEC`. The issue was
introduced with Python 3.12b1 in :gh:`103295`. Patch by Erlend Aasland.
..
.. date: 2023-05-20-23-49-30
.. gh-issue: 104692
.. nonce: s5UIu5
.. section: Build
Include ``commoninstall`` as a prerequisite for ``bininstall``
This ensures that ``commoninstall`` is completed before ``bininstall`` is
started when parallel builds are used (``make -j install``), and so the
``python3`` symlink is only installed after all standard library modules are
installed.
..
.. date: 2023-07-03-14-06-19
.. gh-issue: 106359
.. nonce: RfJuR0
.. section: Tools/Demos
Argument Clinic now explicitly forbids "kwarg splats" in function calls used
as annotations.
..
.. date: 2023-06-13-14-24-55
.. gh-issue: 105227
.. nonce: HDL9aF
.. section: C API
The new :c:func:`PyType_GetDict` provides the dictionary for the given type
object that is normally exposed by ``cls.__dict__``. Normally it's
sufficient to use :c:member:`~PyTypeObject.tp_dict`, but for the static
builtin types :c:member:`!tp_dict` is now always ``NULL``.
:c:func:`!PyType_GetDict()` provides the correct dict object instead.

View file

@ -1,6 +0,0 @@
Include ``commoninstall`` as a prerequisite for ``bininstall``
This ensures that ``commoninstall`` is completed before ``bininstall``
is started when parallel builds are used (``make -j install``), and so
the ``python3`` symlink is only installed after all standard library
modules are installed.

View file

@ -1,2 +0,0 @@
Fix compilation for platforms without :data:`!O_CLOEXEC`. The issue was
introduced with Python 3.12b1 in :gh:`103295`. Patch by Erlend Aasland.

View file

@ -1,5 +0,0 @@
The new :c:func:`PyType_GetDict` provides the dictionary for the given type
object that is normally exposed by ``cls.__dict__``. Normally it's
sufficient to use :c:member:`~PyTypeObject.tp_dict`, but for the static
builtin types :c:member:`!tp_dict` is now always ``NULL``. :c:func:`!PyType_GetDict()`
provides the correct dict object instead.

View file

@ -1 +0,0 @@
Improve error handling when read :mod:`marshal` data.

View file

@ -1 +0,0 @@
Change the repr of ``ParamSpec`` list of args in ``types.GenericAlias``.

View file

@ -1,2 +0,0 @@
Include the comprehension iteration variable in ``locals()`` inside a
module- or class-scope comprehension.

View file

@ -1 +0,0 @@
Fixed bug where :gh:`99111` breaks future import ``barry_as_FLUFL`` in the Python REPL.

View file

@ -1,2 +0,0 @@
Ensure custom :exc:`SyntaxError` error messages are raised for invalid
imports with multiple targets. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Fix crash in :func:`!_imp.get_frozen_object` due to improper exception handling.

View file

@ -1,2 +0,0 @@
Make ``end_lineno`` and ``end_col_offset`` required on ``type_param`` ast
nodes.

View file

@ -1,3 +0,0 @@
When the format specification of an f-string expression is empty, the parser now
generates an empty :class:`ast.JoinedStr` node for it instead of an one-element
:class:`ast.JoinedStr` with an empty string :class:`ast.Constant`.

View file

@ -1,2 +0,0 @@
Make timeit doc command lines compatible with Windows by using double quotes
for arguments. This works on linux and macOS also.

View file

@ -1 +0,0 @@
Fix hanging :mod:`multiprocessing` ``ProcessPoolExecutor`` when a child process crashes while data is being written in the call queue.

View file

@ -1 +0,0 @@
Add RTSPS scheme support in urllib.parse

View file

@ -1 +0,0 @@
Fix flag inversion when alias/mask members exist.

View file

@ -1 +0,0 @@
Reverted addition of ``json.AttrDict``.

View file

@ -1,6 +0,0 @@
Fix bug where a :class:`typing.Protocol` class that had one or more
non-callable members would raise :exc:`TypeError` when :func:`issubclass`
was called against it, even if it defined a custom ``__subclasshook__``
method. The behaviour in Python 3.11 and lower -- which has now been
restored -- was not to raise :exc:`TypeError` in these situations if a
custom ``__subclasshook__`` method was defined. Patch by Alex Waygood.

View file

@ -1 +0,0 @@
Fix crash due to improper reference counting in :mod:`asyncio` eager task factory internal routines.

View file

@ -1 +0,0 @@
Added `asyncio.taskgroups.__all__` to `asyncio.__all__` for export in star imports.

View file

@ -1 +0,0 @@
Added PY_THROW event hook for :mod:`cProfile` for generators

View file

@ -1 +0,0 @@
Make pydoc.doc catch bad module ImportError when output stream is not None.

View file

@ -1,2 +0,0 @@
Fix incorrect matching of empty paths in :meth:`pathlib.PurePath.match`.
This bug was introduced in Python 3.12.0 beta 1.

View file

@ -1,4 +0,0 @@
Check for an instance-dict cached value in the :meth:`__get__` method of
:func:`functools.cached_property`. This better matches the pre-3.12 behavior
and improves compatibility for users subclassing
:func:`functools.cached_property` and adding a :meth:`__set__` method.

View file

@ -1,3 +0,0 @@
Prevent :mod:`multiprocessing.spawn` from failing to *import* in environments
where ``sys.executable`` is ``None``. This regressed in 3.11 with the addition
of support for path-like objects in multiprocessing.

View file

@ -1 +0,0 @@
Fix flag mask inversion when unnamed flags exist.

View file

@ -1,2 +0,0 @@
Fix ref cycle in :class:`!asyncio._SelectorSocketTransport` by removing
``_write_ready`` in ``close``.

View file

@ -1 +0,0 @@
Improve debug output for atomic groups in regular expressions.

View file

@ -1 +0,0 @@
Fix crash in :func:`!_sre.template` with templates containing invalid group indices.

View file

@ -1,4 +0,0 @@
CVE-2023-27043: Prevent :func:`email.utils.parseaddr`
and :func:`email.utils.getaddresses` from returning the realname portion of an
invalid RFC2822 email header in the email address portion of the 2-tuple
returned after being parsed by :class:`email._parseaddr.AddressList`.

View file

@ -1,3 +0,0 @@
When running the Python test suite with ``-jN`` option, if a worker stdout
cannot be decoded from the locale encoding report a failed testn so the
exitcode is non-zero. Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Argument Clinic now explicitly forbids "kwarg splats" in function calls used as
annotations.

View file

@ -1,4 +1,4 @@
This is Python version 3.12.0 beta 3 This is Python version 3.12.0 beta 4
===================================== =====================================
.. image:: https://github.com/python/cpython/workflows/Tests/badge.svg .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg