Python 3.12.0a4

This commit is contained in:
Thomas Wouters
2023-01-10 13:07:54 +01:00
parent f07daaf4f7
commit 3d5d3f7af6
114 changed files with 1172 additions and 263 deletions
+2 -2
View File
@@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 12
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 3
#define PY_RELEASE_SERIAL 4
/* Version as a string */
#define PY_VERSION "3.12.0a3+"
#define PY_VERSION "3.12.0a4"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
+37 -38
View File
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Dec 6 19:31:49 2022
# Autogenerated by Sphinx on Tue Jan 10 13:08:32 2023
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -2382,12 +2382,10 @@ topics = {'assert': 'The "assert" statement\n'
'finished,\n'
'but if the sequence is empty, they will not have been assigned '
'to at\n'
'all by the loop. Hint: the built-in function "range()" returns '
'an\n'
'iterator of integers suitable to emulate the effect of Pascals '
'"for i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, '
'2]".\n'
'all by the loop. Hint: the built-in type "range()" represents\n'
'immutable arithmetic sequences of integers. For instance, '
'iterating\n'
'"range(3)" successively yields 0, 1, and then 2.\n'
'\n'
'Changed in version 3.11: Starred elements are now allowed in '
'the\n'
@@ -2726,7 +2724,7 @@ topics = {'assert': 'The "assert" statement\n'
'the\n'
' target list, it will be treated the same as an error '
'occurring\n'
' within the suite would be. See step 6 below.\n'
' within the suite would be. See step 7 below.\n'
'\n'
'6. The suite is executed.\n'
'\n'
@@ -5668,7 +5666,8 @@ topics = {'assert': 'The "assert" statement\n'
'be\n'
'determined by scanning the entire text of the block for name '
'binding\n'
'operations.\n'
'operations. See the FAQ entry on UnboundLocalError for '
'examples.\n'
'\n'
'If the "global" statement occurs within a block, all uses of '
'the names\n'
@@ -5970,10 +5969,9 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'Names in the target list are not deleted when the loop is finished,\n'
'but if the sequence is empty, they will not have been assigned to at\n'
'all by the loop. Hint: the built-in function "range()" returns an\n'
'iterator of integers suitable to emulate the effect of Pascals "for '
'i\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, 2]".\n'
'all by the loop. Hint: the built-in type "range()" represents\n'
'immutable arithmetic sequences of integers. For instance, iterating\n'
'"range(3)" successively yields 0, 1, and then 2.\n'
'\n'
'Changed in version 3.11: Starred elements are now allowed in the\n'
'expression list.\n',
@@ -7781,7 +7779,7 @@ topics = {'assert': 'The "assert" statement\n'
'within a code block. The local variables of a code block can be\n'
'determined by scanning the entire text of the block for name '
'binding\n'
'operations.\n'
'operations. See the FAQ entry on UnboundLocalError for examples.\n'
'\n'
'If the "global" statement occurs within a block, all uses of the '
'names\n'
@@ -11322,35 +11320,35 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
"str.encode(encoding='utf-8', errors='strict')\n"
'\n'
' Return an encoded version of the string as a bytes '
'object. Default\n'
' encoding is "\'utf-8\'". *errors* may be given to set a '
'different\n'
' error handling scheme. The default for *errors* is '
'"\'strict\'",\n'
' meaning that encoding errors raise a "UnicodeError". '
' Return the string encoded to "bytes".\n'
'\n'
' *encoding* defaults to "\'utf-8\'"; see Standard '
'Encodings for\n'
' possible values.\n'
'\n'
' *errors* controls how encoding errors are handled. If '
'"\'strict\'"\n'
' (the default), a "UnicodeError" exception is raised. '
'Other possible\n'
' values are "\'ignore\'", "\'replace\'", '
'"\'xmlcharrefreplace\'",\n'
' "\'backslashreplace\'" and any other name registered '
'via\n'
' "codecs.register_error()", see section Error Handlers. '
'For a list\n'
' of possible encodings, see section Standard Encodings.\n'
' "codecs.register_error()". See Error Handlers for '
'details.\n'
'\n'
' By default, the *errors* argument is not checked for '
'best\n'
' performances, but only used at the first encoding '
'error. Enable the\n'
' Python Development Mode, or use a debug build to check '
'*errors*.\n'
' For performance reasons, the value of *errors* is not '
'checked for\n'
' validity unless an encoding error actually occurs, '
'Python\n'
' Development Mode is enabled or a debug build is used.\n'
'\n'
' Changed in version 3.1: Support for keyword arguments '
'added.\n'
' Changed in version 3.1: Added support for keyword '
'arguments.\n'
'\n'
' Changed in version 3.9: The *errors* is now checked in '
'development\n'
' mode and in debug mode.\n'
' Changed in version 3.9: The value of the *errors* '
'argument is now\n'
' checked in Python Development Mode and in debug mode.\n'
'\n'
'str.endswith(suffix[, start[, end]])\n'
'\n'
@@ -14099,6 +14097,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> class Counter(dict):\n'
' ... def __missing__(self, key):\n'
' ... return 0\n'
' ...\n'
' >>> c = Counter()\n'
" >>> c['red']\n"
' 0\n'
@@ -14425,6 +14424,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> n = 0\n'
' >>> for val in values:\n'
' ... n += val\n'
' ...\n'
' >>> print(n)\n'
' 504\n'
'\n'
@@ -14452,8 +14452,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> # get back a read-only proxy for the original '
'dictionary\n'
' >>> values.mapping\n'
" mappingproxy({'eggs': 2, 'sausage': 1, 'bacon': 1, "
"'spam': 500})\n"
" mappingproxy({'bacon': 1, 'spam': 500})\n"
" >>> values.mapping['spam']\n"
' 500\n',
'typesmethods': 'Methods\n'
@@ -15499,7 +15498,7 @@ topics = {'assert': 'The "assert" statement\n'
' returns without an error, then "__exit__()" will always be\n'
' called. Thus, if an error occurs during the assignment to the\n'
' target list, it will be treated the same as an error occurring\n'
' within the suite would be. See step 6 below.\n'
' within the suite would be. See step 7 below.\n'
'\n'
'6. The suite is executed.\n'
'\n'
File diff suppressed because it is too large Load Diff
@@ -1,2 +0,0 @@
Allow override of ac_cv_cxx_thread so that cross compiled python can set
-pthread for CXX.
@@ -1 +0,0 @@
Avoid exporting Python symbols in linked Windows applications when the core is built as static.
@@ -1,8 +0,0 @@
Removed the ``--with-system-ffi`` ``configure`` option; ``libffi`` must
now always be supplied by the system on all non-Windows platforms. The
option has had no effect on non-Darwin platforms for several releases, and
in 3.11 only had the non-obvious effect of invoking ``pkg-config`` to
find ``libffi`` and never setting ``-DUSING_APPLE_OS_LIBFFI``. Now on
Darwin platforms ``configure`` will first check for the OS ``libffi`` and
then fall back to the same processing as other platforms if it is not
found.
@@ -1,3 +0,0 @@
The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` macros
now only evaluate their arguments once. If an argument has side effects, these
side effects are no longer duplicated. Patch by Victor Stinner.
@@ -1,2 +0,0 @@
In argument parsing, after deallocating newly allocated memory, reset its
pointer to NULL.
@@ -1 +0,0 @@
Raising SystemError on import will now have its cause be set to the original unexpected exception.
@@ -1,3 +0,0 @@
``ctypes`` arrays of length 0 now report a correct itemsize when a
``memoryview`` is constructed from them, rather than always giving a value
of 0.
@@ -1 +0,0 @@
Add :data:`ssl.OP_LEGACY_SERVER_CONNECT`
@@ -1 +0,0 @@
Improve performance of ``list.pop`` for small lists.
@@ -1,3 +0,0 @@
Add an internal version number to code objects, to give better versioning of
inner functions and comprehensions, and thus better specialization of those
functions. This change is invisible to both Python and C extensions.
@@ -1 +0,0 @@
Pack debugging location tables more efficiently during bytecode compilation.
@@ -1 +0,0 @@
Freeze :mod:`zipimport` module into ``_bootstrap_python``.
@@ -1 +0,0 @@
Improve the performance of :func:`hasattr` for type objects with a missing attribute.
@@ -1,2 +0,0 @@
Honor existing errors obtained when searching for mismatching parentheses in
the tokenizer. Patch by Pablo Galindo
@@ -1 +0,0 @@
Specialize ``FOR_ITER`` for tuples.
@@ -1,4 +0,0 @@
Improve ``BUILD_LIST`` opcode so that it works similarly to the
``BUILD_TUPLE`` opcode, by stealing references from the stack rather than
repeatedly using stack operations to set list elements. Implementation
details are in a new private API :c:func:`_PyList_FromArraySteal`.
@@ -1,3 +0,0 @@
When built with ``--enable-pystats``, stats collection is now off by
default. To enable it early at startup, pass the ``-Xpystats`` flag. Stats
are now always dumped, even if switched off.
@@ -1 +0,0 @@
``None`` now hashes to a constant value. This is not a requirements change.
@@ -1 +0,0 @@
Improved the hashing algorithm for code objects, mitigating some hash collisions.
@@ -1,2 +0,0 @@
Initialize frame->previous in frameobject.c to fix a segmentation fault when
accessing frames created by :c:func:`PyFrame_New`.
@@ -1,3 +0,0 @@
The ``BINARY_SUBSCR_LIST_INT`` and ``BINARY_SUBSCR_TUPLE_INT``
instructions are no longer used for negative integers because
those instructions always miss when encountering negative integers.
@@ -1 +0,0 @@
Internal compiler functions (in compile.c) now consistently return -1 on error and 0 on success.
@@ -1,2 +0,0 @@
Redefine the ``_Py_CODEUNIT`` typedef as a union to describe its layout to
the C compiler, avoiding type punning and improving clarity.
@@ -1,2 +0,0 @@
Handle NaNs when specializing :opcode:`COMPARE_OP` for :class:`float`
values.
@@ -1,2 +0,0 @@
Improve the output of ``co_lines`` by emitting only one entry for each line
range.
@@ -1,2 +0,0 @@
Convert ``vars``, ``dir``, ``next``, ``getattr``, and ``iter`` to argument
clinic.
@@ -1 +0,0 @@
Fix incorrect result and delay in :func:`socket.getfqdn`. Patch by Dominic Socular.
@@ -1 +0,0 @@
Improve the accuracy of ``sum()`` with compensated summation.
@@ -1 +0,0 @@
Add :meth:`int.is_integer` to improve duck type compatibility between :class:`int` and :class:`float`.
@@ -1,5 +0,0 @@
Fix :exc:`SyntaxError` on comprehension rebind checking with names that are
not actually redefined.
Now reassigning ``b`` in ``[(b := 1) for a, b.prop in some_iter]`` is allowed.
Reassigning ``a`` is still disallowed as per :pep:`572`.
@@ -1,3 +0,0 @@
Fix an issue where "incomplete" frames could be briefly visible to C code
while other frames are being torn down, possibly resulting in corruption or
hard crashes of the interpreter while running finalizers.
@@ -1 +0,0 @@
Update the native_thread_id field of PyThreadState after fork.
@@ -1 +0,0 @@
Fix :func:`int.__sizeof__` calculation to include the 1 element ob_digit array for 0 and False.
@@ -1,2 +0,0 @@
Removed the co_nplaincellvars field from the code object, as it is
redundant.
@@ -1 +0,0 @@
Added ``_PyFrame_NumSlotsForCodeObject``, which returns the number of slots needed in a frame for a given code object.
@@ -1,2 +0,0 @@
Remove the LOAD_ATTR_METHOD_WITH_DICT specialized instruction. Stats show it
is not useful.
@@ -1,4 +0,0 @@
Add new :opcode:`CALL_INSTRINSIC_1` instruction. Remove
:opcode:`IMPORT_STAR`, :opcode:`PRINT_EXPR` and
:opcode:`STOPITERATION_ERROR`, replacing them with the
:opcode:`CALL_INSTRINSIC_1` instruction.
@@ -1,2 +0,0 @@
Remove :opcode:`UNARY_POSITIVE`, :opcode:`ASYNC_GEN_WRAP` and
:opcode:`LIST_TO_TUPLE`, replacing them with intrinsics.
@@ -1 +0,0 @@
Fix misleading default value in :func:`input`'s ``__text_signature__``.
@@ -1 +0,0 @@
Clarify use of octal format of mode argument in help(os.chmod) as well as help(os.fchmod)
@@ -1 +0,0 @@
Remove claim in documentation that the ``stripdir``, ``prependdir`` and ``limit_sl_dest`` parameters of :func:`compileall.compile_dir` and :func:`compileall.compile_file` could be :class:`bytes`.
@@ -1,2 +0,0 @@
Document existing ``attr`` parameter to :func:`curses.window.vline` function
in :mod:`curses`.
@@ -1,2 +0,0 @@
Fix a reference counting issue when a :mod:`ctypes` callback with return
type :class:`~ctypes.py_object` returns ``None``, which could cause crashes.
@@ -1,2 +0,0 @@
Accept :class:`os.PathLike` (such as :class:`pathlib.Path`) in the ``stripdir`` arguments of
:meth:`compileall.compile_file` and :meth:`compileall.compile_dir`.
@@ -1,3 +0,0 @@
Make :class:`pathlib.PurePath` and :class:`~pathlib.Path` subclassable
(private to start). Previously, attempting to instantiate a subclass
resulted in an :exc:`AttributeError` being raised. Patch by Barney Gale.
@@ -1 +0,0 @@
Optimize the :class:`~fractions.Fraction` arithmetics for small components.
@@ -1 +0,0 @@
Fix reStructuredText syntax errors in docstrings in the :mod:`enum` module.
@@ -1,3 +0,0 @@
Deprecate passing more than one positional argument to
:meth:`pathlib.PurePath.relative_to` and
:meth:`~pathlib.PurePath.is_relative_to`.
@@ -1 +0,0 @@
Fix a 3.11 regression in :func:`~contextlib.asynccontextmanager`, which caused it to propagate exceptions with incorrect tracebacks and fix a 3.11 regression in :func:`~contextlib.contextmanager`, which caused it to propagate exceptions with incorrect tracebacks for :exc:`StopIteration`.
@@ -1,2 +0,0 @@
``inspect.signature`` was raising ``TypeError`` on call with mock objects.
Now it correctly returns ``(*args, **kwargs)`` as infered signature.
@@ -1,2 +0,0 @@
Reduced the memory usage of :func:`urllib.parse.unquote` and
:func:`urllib.parse.unquote_to_bytes` on large values.
@@ -1,7 +0,0 @@
Add missing TCP socket options from Linux: ``TCP_MD5SIG``,
``TCP_THIN_LINEAR_TIMEOUTS``, ``TCP_THIN_DUPACK``, ``TCP_REPAIR``,
``TCP_REPAIR_QUEUE``, ``TCP_QUEUE_SEQ``, ``TCP_REPAIR_OPTIONS``,
``TCP_TIMESTAMP``, ``TCP_CC_INFO``, ``TCP_SAVE_SYN``, ``TCP_SAVED_SYN``,
``TCP_REPAIR_WINDOW``, ``TCP_FASTOPEN_CONNECT``, ``TCP_ULP``,
``TCP_MD5SIG_EXT``, ``TCP_FASTOPEN_KEY``, ``TCP_FASTOPEN_NO_COOKIE``,
``TCP_ZEROCOPY_RECEIVE``, ``TCP_INQ``, ``TCP_TX_DELAY``.
@@ -1 +0,0 @@
:mod:`asyncio` is optimized to avoid excessive copying when writing to socket and use :meth:`~socket.socket.sendmsg` if the platform supports it. Patch by Kumar Aditya.
@@ -1,6 +0,0 @@
Several improvements to :func:`inspect.signature`'s handling of ``__text_signature``.
- Fixes a case where :func:`inspect.signature` dropped parameters
- Fixes a case where :func:`inspect.signature` raised :exc:`tokenize.TokenError`
- Allows :func:`inspect.signature` to understand defaults involving binary operations of constants
- :func:`inspect.signature` is documented as only raising :exc:`TypeError` or :exc:`ValueError`, but sometimes raised :exc:`RuntimeError`. These cases now raise :exc:`ValueError`
- Removed a dead code path
@@ -1 +0,0 @@
Fix :mod:`doctest` failure on :class:`types.MethodWrapperType` in modules.
@@ -1 +0,0 @@
Remove ``Jython`` partial compatibility code from several stdlib modules.
@@ -1 +0,0 @@
Add :pep:`585` support for :class:`multiprocessing.queues.Queue`.
@@ -1,2 +0,0 @@
Add :func:`inspect.markcoroutinefunction` decorator which manually marks
a function as a coroutine for the benefit of :func:`iscoroutinefunction`.
@@ -1,2 +0,0 @@
Fix ``.save()`` method for ``LWPCookieJar`` and ``MozillaCookieJar``: saved
file was not truncated on repeated save.
@@ -1 +0,0 @@
Fix :func:`inspect.getsource` handling of decorator calls with nested parentheses.
@@ -1,5 +0,0 @@
Add :ref:`enum-dataclass-support` to the
:class:`~enum.Enum` :meth:`~enum.Enum.__repr__`.
When inheriting from a :class:`~dataclasses.dataclass`,
only show the field names in the value section of the member :func:`repr`,
and not the dataclass' class name.
@@ -1,3 +0,0 @@
Fix issue with :func:`os.walk` where a :exc:`RecursionError` would occur on
deep directory structures by adjusting the implementation of
:func:`os.walk` to be iterative instead of recursive.
@@ -1,4 +0,0 @@
Unify error messages in JSON serialization between
``json.dumps(float('nan'), allow_nan=False)`` and ``json.dumps(float('nan'),
allow_nan=False, indent=<SOMETHING>)``. Now both include the representation
of the value that could not be serialized.
@@ -1,2 +0,0 @@
Update :exc:`~urllib.error.HTTPError` to be initialized properly, even if
the ``fp`` is ``None``. Patch by Dong-hee Na.
@@ -1,5 +0,0 @@
Rename the *fmt* parameter of the pure-Python implementation of
:meth:`datetime.time.strftime` to *format*. Rename the *t* parameter of
:meth:`datetime.datetime.fromtimestamp` to *timestamp*. These changes mean
the parameter names in the pure-Python implementation now match the
parameter names in the C implementation. Patch by Alex Waygood.
@@ -1 +0,0 @@
Fix ``tuple`` subclasses being cast to ``tuple`` when used as enum values.
@@ -1,2 +0,0 @@
Fixes inconsistent handling of case sensitivity of *extrasaction* arg in
:class:`csv.DictWriter`.
@@ -1 +0,0 @@
Fix regression in :mod:`asyncio` where a subprocess would sometimes lose data received from pipe.
@@ -1 +0,0 @@
Improve signatures for enums and flags.
@@ -1,5 +0,0 @@
A :exc:`DeprecationWarning` may be raised when :func:`os.fork()` or
:func:`os.forkpty()` is called from multi-threaded processes. Forking
with threads is unsafe and can cause deadlocks, crashes and subtle
problems. Lack of a warning does not indicate that the fork call was
actually safe, as Python may not be aware of all threads.
@@ -1,2 +0,0 @@
Set a default value of 1.0 for the ``lambd`` parameter in
random.expovariate().
@@ -1 +0,0 @@
Instantiation of ``Mock()`` and ``AsyncMock()`` is now 3.8x faster.
@@ -1 +0,0 @@
Fix JSON serialization of OrderedDict. It now preserves the order of keys.
@@ -1,2 +0,0 @@
Provide C implementation for :func:`asyncio.current_task` for a 4x-6x
speedup.
@@ -1,2 +0,0 @@
Fix ref cycle in :class:`!asyncio._SelectorSocketTransport` by removing ``_read_ready_cb`` in ``close``.
@@ -1 +0,0 @@
Fix crash when creating an instance of :class:`!_ctypes.CField`.
@@ -1 +0,0 @@
Speed up :func:`asyncio.get_running_loop` by removing redundant ``getpid`` checks. Patch by Kumar Aditya.
@@ -1,2 +0,0 @@
:mod:`http.server` now checks that an index page is actually a regular file before trying
to serve it. This avoids issues with directories named ``index.html``.
@@ -1 +0,0 @@
Add :meth:`Fraction.is_integer` to check whether a :class:`fractions.Fraction` is an integer. This improves duck type compatibility with :class:`float` and :class:`int`.
@@ -1 +0,0 @@
Fix the interaction of :func:`unittest.mock.seal` with :class:`unittest.mock.AsyncMock`.
@@ -1,2 +0,0 @@
Small simplification of :func:`http.cookiejar.eff_request_host` that
improves readability and better matches the RFC wording.
@@ -1,3 +0,0 @@
Improve performance of :meth:`pathlib.Path.absolute` by nearly 2x. This comes
at the cost of a performance regression in :meth:`pathlib.Path.cwd`, which is
generally used less frequently in user code.
@@ -1 +0,0 @@
Fixed a bug where importlib.resources.as_file was leaving file pointers open
@@ -1,6 +0,0 @@
``importlib.resources.files`` now accepts a module as an anchor instead of
only accepting packages. If a module is passed, resources are resolved
adjacent to that module (in the same package or at the package root). The
parameter was renamed from ``package`` to ``anchor`` with a compatibility
shim for those passing by keyword. Additionally, the new ``anchor``
parameter is now optional and will default to the caller's module.
@@ -1 +0,0 @@
Fix :func:`asyncio.open_connection` to skip binding to local addresses of different family. Patch by Kumar Aditya.
@@ -1 +0,0 @@
Add math.sumprod() to compute the sum of products.
@@ -1 +0,0 @@
Simplify and optimize :func:`os.walk` by using :func:`isinstance` checks to check the top of the stack.
@@ -1,7 +0,0 @@
``Mock`` objects which are not unsafe will now raise an
``AttributeError`` when accessing an attribute that matches the name
of an assertion but without the prefix ``assert_``, e.g. accessing
``called_once`` instead of ``assert_called_once``.
This is in addition to this already happening for accessing attributes
with prefixes ``assert``, ``assret``, ``asert``, ``aseert``,
and ``assrt``.
@@ -1,2 +0,0 @@
Change ``SimpleHTTPRequestHandler`` to support subclassing to provide a
different set of index file names instead of using ``__init__`` parameters.
@@ -1 +0,0 @@
Fix ``unittest.mock.Mock`` not respecting the spec for attribute names prefixed with ``assert``.
@@ -1 +0,0 @@
Fix crash in :mod:`pyexpat` by statically allocating ``PyExpat_CAPI`` capsule.
@@ -1 +0,0 @@
Avoid RecursionError on ``repr`` if a dataclass field definition has a cyclic reference.
@@ -1,3 +0,0 @@
Microoptimizations for :meth:`fractions.Fraction.__round__`,
:meth:`fractions.Fraction.__ceil__` and
:meth:`fractions.Fraction.__floor__`.
@@ -1 +0,0 @@
Make :meth:`email.message.Message.__contains__` twice as fast.
@@ -1 +0,0 @@
Add :data:`socket.IP_PKTINFO` constant.
@@ -1,2 +0,0 @@
Modify :func:`random.choice` implementation to once again work with NumPy
arrays.
@@ -1 +0,0 @@
Speed up :func:`math.fsum` by removing defensive ``volatile`` qualifiers.

Some files were not shown because too many files have changed in this diff Show More