Python 3.13.0rc1

This commit is contained in:
Thomas Wouters 2024-07-31 20:10:21 +02:00
parent 9c1c9188df
commit e4a3e786a5
31 changed files with 307 additions and 100 deletions

View File

@ -19,11 +19,11 @@
#define PY_MAJOR_VERSION 3 #define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 13 #define PY_MINOR_VERSION 13
#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_GAMMA
#define PY_RELEASE_SERIAL 4 #define PY_RELEASE_SERIAL 1
/* Version as a string */ /* Version as a string */
#define PY_VERSION "3.13.0b4+" #define PY_VERSION "3.13.0rc1"
/*--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,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Thu Jul 18 11:36:18 2024 # Autogenerated by Sphinx on Wed Jul 31 20:10:37 2024
# as part of the release process. # as part of the release process.
topics = {'assert': 'The "assert" statement\n' topics = {'assert': 'The "assert" statement\n'
'**********************\n' '**********************\n'
@ -633,10 +633,10 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'Evaluation of a literal yields an object of the given type ' 'Evaluation of a literal yields an object of the given type '
'(string,\n' '(string,\n'
'bytes, integer, floating point number, complex number) with ' 'bytes, integer, floating-point number, complex number) with '
'the given\n' 'the given\n'
'value. The value may be approximated in the case of ' 'value. The value may be approximated in the case of '
'floating point\n' 'floating-point\n'
'and imaginary (complex) literals. See section Literals for ' 'and imaginary (complex) literals. See section Literals for '
'details.\n' 'details.\n'
'\n' '\n'
@ -1307,8 +1307,8 @@ topics = {'assert': 'The "assert" statement\n'
'the first argument by the second. The numeric arguments are ' 'the first argument by the second. The numeric arguments are '
'first\n' 'first\n'
'converted to a common type. A zero right argument raises the\n' 'converted to a common type. A zero right argument raises the\n'
'"ZeroDivisionError" exception. The arguments may be floating ' '"ZeroDivisionError" exception. The arguments may be '
'point\n' 'floating-point\n'
'numbers, e.g., "3.14%0.7" equals "0.34" (since "3.14" equals ' 'numbers, e.g., "3.14%0.7" equals "0.34" (since "3.14" equals '
'"4*0.7 +\n' '"4*0.7 +\n'
'0.34".) The modulo operator always yields a result with the same ' '0.34".) The modulo operator always yields a result with the same '
@ -1341,7 +1341,7 @@ topics = {'assert': 'The "assert" statement\n'
'"divmod()"\n' '"divmod()"\n'
'function are not defined for complex numbers. Instead, convert to ' 'function are not defined for complex numbers. Instead, convert to '
'a\n' 'a\n'
'floating point number using the "abs()" function if appropriate.\n' 'floating-point number using the "abs()" function if appropriate.\n'
'\n' '\n'
'The "+" (addition) operator yields the sum of its arguments. The\n' 'The "+" (addition) operator yields the sum of its arguments. The\n'
'arguments must either both be numbers or both be sequences of the ' 'arguments must either both be numbers or both be sequences of the '
@ -4474,7 +4474,7 @@ topics = {'assert': 'The "assert" statement\n'
'converted to\n' 'converted to\n'
' complex;\n' ' complex;\n'
'\n' '\n'
'* otherwise, if either argument is a floating point number, ' '* otherwise, if either argument is a floating-point number, '
'the other\n' 'the other\n'
' is converted to floating point;\n' ' is converted to floating point;\n'
'\n' '\n'
@ -6587,10 +6587,10 @@ topics = {'assert': 'The "assert" statement\n'
'that expression. (To create an empty tuple, use an empty pair ' 'that expression. (To create an empty tuple, use an empty pair '
'of\n' 'of\n'
'parentheses: "()".)\n', 'parentheses: "()".)\n',
'floating': 'Floating point literals\n' 'floating': 'Floating-point literals\n'
'***********************\n' '***********************\n'
'\n' '\n'
'Floating point literals are described by the following lexical\n' 'Floating-point literals are described by the following lexical\n'
'definitions:\n' 'definitions:\n'
'\n' '\n'
' floatnumber ::= pointfloat | exponentfloat\n' ' floatnumber ::= pointfloat | exponentfloat\n'
@ -6604,12 +6604,12 @@ topics = {'assert': 'The "assert" statement\n'
'using\n' 'using\n'
'radix 10. For example, "077e010" is legal, and denotes the same ' 'radix 10. For example, "077e010" is legal, and denotes the same '
'number\n' 'number\n'
'as "77e10". The allowed range of floating point literals is\n' 'as "77e10". The allowed range of floating-point literals is\n'
'implementation-dependent. As in integer literals, underscores ' 'implementation-dependent. As in integer literals, underscores '
'are\n' 'are\n'
'supported for digit grouping.\n' 'supported for digit grouping.\n'
'\n' '\n'
'Some examples of floating point literals:\n' 'Some examples of floating-point literals:\n'
'\n' '\n'
' 3.14 10. .001 1e100 3.14e-10 0e0 ' ' 3.14 10. .001 1e100 3.14e-10 0e0 '
'3.14_15_93\n' '3.14_15_93\n'
@ -6992,7 +6992,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'The "\'_\'" option signals the use of an underscore for a ' 'The "\'_\'" option signals the use of an underscore for a '
'thousands\n' 'thousands\n'
'separator for floating point presentation types and for ' 'separator for floating-point presentation types and for '
'integer\n' 'integer\n'
'presentation type "\'d\'". For integer presentation types ' 'presentation type "\'d\'". For integer presentation types '
'"\'b\'", "\'o\'",\n' '"\'b\'", "\'o\'",\n'
@ -7119,11 +7119,11 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'In addition to the above presentation types, integers can ' 'In addition to the above presentation types, integers can '
'be formatted\n' 'be formatted\n'
'with the floating point presentation types listed below ' 'with the floating-point presentation types listed below '
'(except "\'n\'"\n' '(except "\'n\'"\n'
'and "None"). When doing so, "float()" is used to convert ' 'and "None"). When doing so, "float()" is used to convert '
'the integer\n' 'the integer\n'
'to a floating point number before formatting.\n' 'to a floating-point number before formatting.\n'
'\n' '\n'
'The available presentation types for "float" and "Decimal" ' 'The available presentation types for "float" and "Decimal" '
'values are:\n' 'values are:\n'
@ -7981,11 +7981,11 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'An imaginary literal yields a complex number with a real part ' 'An imaginary literal yields a complex number with a real part '
'of 0.0.\n' 'of 0.0.\n'
'Complex numbers are represented as a pair of floating point ' 'Complex numbers are represented as a pair of floating-point '
'numbers\n' 'numbers\n'
'and have the same restrictions on their range. To create a ' 'and have the same restrictions on their range. To create a '
'complex\n' 'complex\n'
'number with a nonzero real part, add a floating point number to ' 'number with a nonzero real part, add a floating-point number to '
'it,\n' 'it,\n'
'e.g., "(3+4j)". Some examples of imaginary literals:\n' 'e.g., "(3+4j)". Some examples of imaginary literals:\n'
'\n' '\n'
@ -8782,8 +8782,8 @@ topics = {'assert': 'The "assert" statement\n'
'numbers': 'Numeric literals\n' 'numbers': 'Numeric literals\n'
'****************\n' '****************\n'
'\n' '\n'
'There are three types of numeric literals: integers, floating ' 'There are three types of numeric literals: integers, '
'point\n' 'floating-point\n'
'numbers, and imaginary numbers. There are no complex literals\n' 'numbers, and imaginary numbers. There are no complex literals\n'
'(complex numbers can be formed by adding a real number and an\n' '(complex numbers can be formed by adding a real number and an\n'
'imaginary number).\n' 'imaginary number).\n'
@ -13855,7 +13855,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
'* A sign is shown only when the number is negative.\n' '* A sign is shown only when the number is negative.\n'
'\n' '\n'
'Python distinguishes between integers, floating point numbers, and\n' 'Python distinguishes between integers, floating-point numbers, and\n'
'complex numbers:\n' 'complex numbers:\n'
'\n' '\n'
'\n' '\n'
@ -13900,28 +13900,28 @@ topics = {'assert': 'The "assert" statement\n'
'"numbers.Real" ("float")\n' '"numbers.Real" ("float")\n'
'------------------------\n' '------------------------\n'
'\n' '\n'
'These represent machine-level double precision floating point ' 'These represent machine-level double precision floating-point '
'numbers.\n' 'numbers.\n'
'You are at the mercy of the underlying machine architecture (and C ' 'You are at the mercy of the underlying machine architecture (and C '
'or\n' 'or\n'
'Java implementation) for the accepted range and handling of ' 'Java implementation) for the accepted range and handling of '
'overflow.\n' 'overflow.\n'
'Python does not support single-precision floating point numbers; ' 'Python does not support single-precision floating-point numbers; '
'the\n' 'the\n'
'savings in processor and memory usage that are usually the reason ' 'savings in processor and memory usage that are usually the reason '
'for\n' 'for\n'
'using these are dwarfed by the overhead of using objects in Python, ' 'using these are dwarfed by the overhead of using objects in Python, '
'so\n' 'so\n'
'there is no reason to complicate the language with two kinds of\n' 'there is no reason to complicate the language with two kinds of\n'
'floating point numbers.\n' 'floating-point numbers.\n'
'\n' '\n'
'\n' '\n'
'"numbers.Complex" ("complex")\n' '"numbers.Complex" ("complex")\n'
'-----------------------------\n' '-----------------------------\n'
'\n' '\n'
'These represent complex numbers as a pair of machine-level double\n' 'These represent complex numbers as a pair of machine-level double\n'
'precision floating point numbers. The same caveats apply as for\n' 'precision floating-point numbers. The same caveats apply as for\n'
'floating point numbers. The real and imaginary parts of a complex\n' 'floating-point numbers. The real and imaginary parts of a complex\n'
'number "z" can be retrieved through the read-only attributes ' 'number "z" can be retrieved through the read-only attributes '
'"z.real"\n' '"z.real"\n'
'and "z.imag".\n' 'and "z.imag".\n'
@ -14336,21 +14336,10 @@ topics = {'assert': 'The "assert" statement\n'
'to\n' 'to\n'
'calling "f(C,1)" where "f" is the underlying function.\n' 'calling "f(C,1)" where "f" is the underlying function.\n'
'\n' '\n'
'Note that the transformation from function object to instance ' 'It is important to note that user-defined functions which are\n'
'method\n' 'attributes of a class instance are not converted to bound methods;\n'
'object happens each time the attribute is retrieved from the ' 'this *only* happens when the function is an attribute of the '
'instance.\n' 'class.\n'
'In some cases, a fruitful optimization is to assign the attribute '
'to a\n'
'local variable and call that local variable. Also notice that this\n'
'transformation only happens for user-defined functions; other '
'callable\n'
'objects (and all non-callable objects) are retrieved without\n'
'transformation. It is also important to note that user-defined\n'
'functions which are attributes of a class instance are not '
'converted\n'
'to bound methods; this *only* happens when the function is an\n'
'attribute of the class.\n'
'\n' '\n'
'\n' '\n'
'Generator functions\n' 'Generator functions\n'
@ -16508,7 +16497,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n' '\n'
' * The linspace recipe shows how to implement a lazy version of ' ' * The linspace recipe shows how to implement a lazy version of '
'range\n' 'range\n'
' suitable for floating point applications.\n', ' suitable for floating-point applications.\n',
'typesseq-mutable': 'Mutable Sequence Types\n' 'typesseq-mutable': 'Mutable Sequence Types\n'
'**********************\n' '**********************\n'
'\n' '\n'

273
Misc/NEWS.d/3.13.0rc1.rst Normal file
View File

@ -0,0 +1,273 @@
.. date: 2024-07-13-11-48-20
.. gh-issue: 59022
.. nonce: fYNbQ8
.. release date: 2024-07-31
.. section: Tests
Add tests for :func:`pkgutil.extend_path`. Patch by Andreas Stocker.
..
.. date: 2024-07-13-11-04-44
.. gh-issue: 99242
.. nonce: aGxnwz
.. section: Tests
:func:`os.getloadavg` may throw :exc:`OSError` when running regression tests
under certain conditions (e.g. chroot). This error is now caught and
ignored, since reporting load average is optional.
..
.. date: 2024-07-22-13-11-28
.. gh-issue: 122133
.. nonce: 0mPeta
.. section: Security
Authenticate the socket connection for the ``socket.socketpair()`` fallback
on platforms where ``AF_UNIX`` is not available like Windows.
Patch by Gregory P. Smith <greg@krypto.org> and Seth Larson
<seth@python.org>. Reported by Ellie <el@horse64.org>
..
.. date: 2024-07-18-13-17-47
.. gh-issue: 121957
.. nonce: QemKLU
.. section: Security
Fixed missing audit events around interactive use of Python, now also
properly firing for ``python -i``, as well as for ``python -m asyncio``. The
events in question are ``cpython.run_stdin`` and ``cpython.run_startup``.
..
.. date: 2024-07-29-16-47-08
.. gh-issue: 122400
.. nonce: fM0YSv
.. section: Library
Handle :exc:`ValueError`\s raised by :func:`os.stat` in
:class:`filecmp.dircmp` and :func:`filecmp.cmpfiles`. Patch by Bénédikt
Tran.
..
.. date: 2024-07-29-10-24-48
.. gh-issue: 122311
.. nonce: xChV1b
.. section: Library
Fix some error messages in :mod:`pickle`.
..
.. date: 2024-07-26-21-21-13
.. gh-issue: 122332
.. nonce: fvw88r
.. section: Library
Fixed segfault with :meth:`asyncio.Task.get_coro` when using an eager task
factory.
..
.. date: 2024-07-25-15-41-14
.. gh-issue: 105733
.. nonce: o3koJA
.. section: Library
:func:`ctypes.ARRAY` is now :term:`soft deprecated`: it no longer emits
deprecation warnings and is not scheduled for removal.
..
.. date: 2024-07-24-09-29-55
.. gh-issue: 122087
.. nonce: FdBrWo
.. section: Library
Restore :func:`inspect.ismethoddescriptor` and :func:`inspect.isroutine`
returning ``False`` for :class:`functools.partial` objects.
..
.. date: 2024-07-23-15-30-23
.. gh-issue: 122170
.. nonce: Z9gi3Y
.. section: Library
Handle :exc:`ValueError`\s raised by :func:`os.stat` in :mod:`linecache`.
Patch by Bénédikt Tran.
..
.. date: 2024-07-23-09-14-44
.. gh-issue: 82951
.. nonce: -F5p5A
.. section: Library
Serializing objects with complex ``__qualname__`` (such as unbound methods
and nested classes) by name no longer involves serializing parent objects by
value in pickle protocols < 4.
..
.. date: 2024-07-22-08-14-04
.. gh-issue: 113785
.. nonce: 6B_KNB
.. section: Library
:mod:`csv` now correctly parses numeric fields (when used with
:const:`csv.QUOTE_NONNUMERIC` or :const:`csv.QUOTE_STRINGS`) which start
with an escape character.
..
.. date: 2024-07-21-18-03-30
.. gh-issue: 122088
.. nonce: vi2bP-
.. section: Library
:func:`@warnings.deprecated <warnings.deprecated>` now copies the coroutine
status of functions and methods so that :func:`inspect.iscoroutinefunction`
returns the correct result.
..
.. date: 2024-07-14-11-18-28
.. gh-issue: 120930
.. nonce: Kuo4L0
.. section: Library
Fixed a bug introduced by gh-92081 that added an incorrect extra blank to
encoded words occurring in wrapped headers.
..
.. date: 2024-07-08-03-45-34
.. gh-issue: 121474
.. nonce: NsvrUN
.. section: Library
Fix missing sanity check for ``parties`` arg in :class:`threading.Barrier`
constructor. Patch by Clinton Christian (pygeek).
..
.. date: 2024-06-09-19-53-11
.. gh-issue: 120289
.. nonce: s4HXR0
.. section: Library
Fixed the use-after-free issue in :mod:`cProfile` by disallowing
``disable()`` and ``clear()`` in external timers.
..
.. date: 2024-07-30-18-02-55
.. gh-issue: 122482
.. nonce: TerE0g
.. section: IDLE
Change About IDLE to direct users to discuss.python.org instead of the now
unused idle-dev email and mailing list.
..
.. date: 2024-07-29-10-55-46
.. gh-issue: 116090
.. nonce: p1MhU0
.. section: Core and Builtins
Fix an issue in JIT builds that prevented some :keyword:`for` loops from
correctly firing :monitoring-event:`RAISE` monitoring events.
..
.. date: 2024-07-26-21-26-33
.. gh-issue: 122208
.. nonce: z8KHsY
.. section: Core and Builtins
Dictionary watchers now only deliver the PyDict_EVENT_ADDED event when the
insertion is in a known good state to succeed.
..
.. date: 2024-07-26-14-05-51
.. gh-issue: 122300
.. nonce: SVIF-l
.. section: Core and Builtins
Preserve AST nodes for f-string with single-element format specifiers. Patch
by Pablo Galindo
..
.. date: 2024-07-26-13-56-32
.. gh-issue: 120906
.. nonce: qBh2I9
.. section: Core and Builtins
:attr:`frame.f_locals` now supports arbitrary hashable objects as keys.
..
.. date: 2024-07-21-01-23-54
.. gh-issue: 122029
.. nonce: gKv-e2
.. section: Core and Builtins
Emit ``c_call`` events in :func:`sys.setprofile` when a ``PyMethodObject``
pointing to a ``PyCFunction`` is called.
..
.. date: 2024-07-19-15-28-05
.. gh-issue: 122026
.. nonce: sta2Ca
.. section: Core and Builtins
Fix a bug that caused the tokenizer to not correctly identify mismatched
parentheses inside f-strings in some situations. Patch by Pablo Galindo
..
.. date: 2024-05-30-04-11-36
.. gh-issue: 118934
.. nonce: fbDqve
.. section: Core and Builtins
Make ``PyEval_GetLocals`` return borrowed reference
..
.. date: 2024-07-30-23-48-26
.. gh-issue: 116622
.. nonce: yTTtil
.. section: C API
Make :any:`PyObject_Print` work around a bug in Android and OpenBSD which
prevented it from throwing an exception when trying to write to a read-only
stream.
..
.. date: 2024-07-21-17-40-07
.. gh-issue: 121489
.. nonce: SUMFCr
.. section: C API
Export private :c:func:`!_PyBytes_Join` again.
..
.. date: 2024-07-18-07-53-07
.. gh-issue: 120522
.. nonce: dg3o5A
.. section: Build
Added a :option:`--with-app-store-compliance` option to patch out known
issues with macOS/iOS App Store review processes.

View File

@ -1,2 +0,0 @@
Added a :option:`--with-app-store-compliance` option to patch out known
issues with macOS/iOS App Store review processes.

View File

@ -1 +0,0 @@
Export private :c:func:`!_PyBytes_Join` again.

View File

@ -1,3 +0,0 @@
Make :any:`PyObject_Print` work around a bug in Android and OpenBSD which
prevented it from throwing an exception when trying to write to a read-only
stream.

View File

@ -1 +0,0 @@
Make ``PyEval_GetLocals`` return borrowed reference

View File

@ -1,2 +0,0 @@
Fix a bug that caused the tokenizer to not correctly identify mismatched
parentheses inside f-strings in some situations. Patch by Pablo Galindo

View File

@ -1 +0,0 @@
Emit ``c_call`` events in :func:`sys.setprofile` when a ``PyMethodObject`` pointing to a ``PyCFunction`` is called.

View File

@ -1,2 +0,0 @@
Preserve AST nodes for f-string with single-element format specifiers. Patch
by Pablo Galindo

View File

@ -1 +0,0 @@
:attr:`frame.f_locals` now supports arbitrary hashable objects as keys.

View File

@ -1 +0,0 @@
Dictionary watchers now only deliver the PyDict_EVENT_ADDED event when the insertion is in a known good state to succeed.

View File

@ -1,2 +0,0 @@
Fix an issue in JIT builds that prevented some :keyword:`for` loops from
correctly firing :monitoring-event:`RAISE` monitoring events.

View File

@ -1,2 +0,0 @@
Change About IDLE to direct users to discuss.python.org instead of the now
unused idle-dev email and mailing list.

View File

@ -1,2 +0,0 @@
Fixed the use-after-free issue in :mod:`cProfile` by disallowing
``disable()`` and ``clear()`` in external timers.

View File

@ -1,2 +0,0 @@
Fix missing sanity check for ``parties`` arg in :class:`threading.Barrier`
constructor. Patch by Clinton Christian (pygeek).

View File

@ -1,2 +0,0 @@
Fixed a bug introduced by gh-92081 that added an incorrect extra
blank to encoded words occurring in wrapped headers.

View File

@ -1,3 +0,0 @@
:func:`@warnings.deprecated <warnings.deprecated>` now copies the
coroutine status of functions and methods so that
:func:`inspect.iscoroutinefunction` returns the correct result.

View File

@ -1 +0,0 @@
:mod:`csv` now correctly parses numeric fields (when used with :const:`csv.QUOTE_NONNUMERIC` or :const:`csv.QUOTE_STRINGS`) which start with an escape character.

View File

@ -1,3 +0,0 @@
Serializing objects with complex ``__qualname__`` (such as unbound methods
and nested classes) by name no longer involves serializing parent objects by
value in pickle protocols < 4.

View File

@ -1,2 +0,0 @@
Handle :exc:`ValueError`\s raised by :func:`os.stat` in :mod:`linecache`.
Patch by Bénédikt Tran.

View File

@ -1,2 +0,0 @@
Restore :func:`inspect.ismethoddescriptor` and :func:`inspect.isroutine`
returning ``False`` for :class:`functools.partial` objects.

View File

@ -1,2 +0,0 @@
:func:`ctypes.ARRAY` is now :term:`soft deprecated`: it no longer emits deprecation
warnings and is not scheduled for removal.

View File

@ -1,2 +0,0 @@
Fixed segfault with :meth:`asyncio.Task.get_coro` when using an eager task
factory.

View File

@ -1 +0,0 @@
Fix some error messages in :mod:`pickle`.

View File

@ -1,3 +0,0 @@
Handle :exc:`ValueError`\s raised by :func:`os.stat` in
:class:`filecmp.dircmp` and :func:`filecmp.cmpfiles`.
Patch by Bénédikt Tran.

View File

@ -1,3 +0,0 @@
Fixed missing audit events around interactive use of Python, now also
properly firing for ``python -i``, as well as for ``python -m asyncio``. The
events in question are ``cpython.run_stdin`` and ``cpython.run_startup``.

View File

@ -1,5 +0,0 @@
Authenticate the socket connection for the ``socket.socketpair()`` fallback
on platforms where ``AF_UNIX`` is not available like Windows.
Patch by Gregory P. Smith <greg@krypto.org> and Seth Larson <seth@python.org>. Reported by Ellie
<el@horse64.org>

View File

@ -1,3 +0,0 @@
:func:`os.getloadavg` may throw :exc:`OSError` when running regression tests
under certain conditions (e.g. chroot). This error is now caught and
ignored, since reporting load average is optional.

View File

@ -1 +0,0 @@
Add tests for :func:`pkgutil.extend_path`. Patch by Andreas Stocker.

View File

@ -1,5 +1,5 @@
This is Python version 3.13.0 beta 4 This is Python version 3.13.0 release candidate 1
==================================== =================================================
.. image:: https://github.com/python/cpython/workflows/Tests/badge.svg .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg
:alt: CPython build status on GitHub Actions :alt: CPython build status on GitHub Actions