Python 3.11.0a4

This commit is contained in:
Pablo Galindo 2022-01-13 19:36:27 +00:00
parent 1a4d1c1c9b
commit 9471106fd5
No known key found for this signature in database
GPG Key ID: FFE87404168BD847
119 changed files with 1339 additions and 308 deletions

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 11
#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.11.0a3+"
#define PY_VERSION "3.11.0a4"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Wed Dec 8 22:23:59 2021
# Autogenerated by Sphinx on Thu Jan 13 19:37:48 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -1142,11 +1142,17 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", '
'"bytes" and "tuple".\n'
'\n'
'* Any non-string iterable may be assigned to '
'*__slots__*. Mappings may\n'
' also be used; however, in the future, special meaning '
'may be\n'
' assigned to the values corresponding to each key.\n'
'* Any non-string *iterable* may be assigned to '
'*__slots__*.\n'
'\n'
'* If a "dictionary" is used to assign *__slots__*, the '
'dictionary keys\n'
' will be used as the slot names. The values of the '
'dictionary can be\n'
' used to provide per-attribute docstrings that will be '
'recognised by\n'
' "inspect.getdoc()" and displayed in the output of '
'"help()".\n'
'\n'
'* "__class__" assignment works only if both classes have '
'the same\n'
@ -2376,33 +2382,6 @@ topics = {'assert': 'The "assert" statement\n'
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, '
'2]".\n'
'\n'
'Note:\n'
'\n'
' There is a subtlety when the sequence is being modified by the '
'loop\n'
' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used '
'next,\n'
' and this is incremented on each iteration. When this counter '
'has\n'
' reached the length of the sequence the loop terminates. This '
'means\n'
' that if the suite deletes the current (or a previous) item '
'from the\n'
' sequence, the next item will be skipped (since it gets the '
'index of\n'
' the current item which has already been treated). Likewise, '
'if the\n'
' suite inserts an item in the sequence before the current item, '
'the\n'
' current item will be treated again the next time through the '
'loop.\n'
' This can lead to nasty bugs that can be avoided by making a\n'
' temporary copy using a slice of the whole sequence, e.g.,\n'
'\n'
' for x in a[:]:\n'
' if x < 0: a.remove(x)\n'
'\n'
'\n'
'The "try" statement\n'
'===================\n'
@ -2411,13 +2390,18 @@ topics = {'assert': 'The "assert" statement\n'
'code\n'
'for a group of statements:\n'
'\n'
' try_stmt ::= try1_stmt | try2_stmt\n'
' try_stmt ::= try1_stmt | try2_stmt | try3_stmt\n'
' try1_stmt ::= "try" ":" suite\n'
' ("except" [expression ["as" identifier]] ":" '
'suite)+\n'
' ["else" ":" suite]\n'
' ["finally" ":" suite]\n'
' try2_stmt ::= "try" ":" suite\n'
' ("except" "*" expression ["as" identifier] ":" '
'suite)+\n'
' ["else" ":" suite]\n'
' ["finally" ":" suite]\n'
' try3_stmt ::= "try" ":" suite\n'
' "finally" ":" suite\n'
'\n'
'The "except" clause(s) specify one or more exception handlers. '
@ -2534,6 +2518,60 @@ topics = {'assert': 'The "assert" statement\n'
' >>> print(sys.exc_info())\n'
' (None, None, None)\n'
'\n'
'The "except*" clause(s) are used for handling "ExceptionGroup`s. '
'The\n'
'exception type for matching is interpreted as in the case of\n'
':keyword:`except", but in the case of exception groups we can '
'have\n'
'partial matches when the type matches some of the exceptions in '
'the\n'
'group. This means that multiple except* clauses can execute, '
'each\n'
'handling part of the exception group. Each clause executes once '
'and\n'
'handles an exception group of all matching exceptions. Each '
'exception\n'
'in the group is handled by at most one except* clause, the first '
'that\n'
'matches it.\n'
'\n'
' >>> try:\n'
' ... raise ExceptionGroup("eg",\n'
' ... [ValueError(1), TypeError(2), OSError(3), '
'OSError(4)])\n'
' ... except* TypeError as e:\n'
" ... print(f'caught {type(e)} with nested "
"{e.exceptions}')\n"
' ... except* OSError as e:\n'
" ... print(f'caught {type(e)} with nested "
"{e.exceptions}')\n"
' ...\n'
" caught <class 'ExceptionGroup'> with nested (TypeError(2),)\n"
" caught <class 'ExceptionGroup'> with nested (OSError(3), "
'OSError(4))\n'
' + Exception Group Traceback (most recent call last):\n'
' | File "<stdin>", line 2, in <module>\n'
' | ExceptionGroup: eg\n'
' +-+---------------- 1 ----------------\n'
' | ValueError: 1\n'
' +------------------------------------\n'
' >>>\n'
'\n'
' Any remaining exceptions that were not handled by any except* '
'clause\n'
' are re-raised at the end, combined into an exception group '
'along with\n'
' all exceptions that were raised from within except* clauses.\n'
'\n'
' An except* clause must have a matching type, and this type '
'cannot be a\n'
' subclass of :exc:`BaseExceptionGroup`. It is not possible to '
'mix except\n'
' and except* in the same :keyword:`try`. :keyword:`break`,\n'
' :keyword:`continue` and :keyword:`return` cannot appear in an '
'except*\n'
' clause.\n'
'\n'
'The optional "else" clause is executed if the control flow '
'leaves the\n'
'"try" suite, no exception was raised, and no "return", '
@ -4620,17 +4658,16 @@ topics = {'assert': 'The "assert" statement\n'
'debugger will pause execution just before the first line of the\n'
'module.\n'
'\n'
'The typical usage to break into the debugger from a running '
'program is\n'
'to insert\n'
'The typical usage to break into the debugger is to insert:\n'
'\n'
' import pdb; pdb.set_trace()\n'
'\n'
'at the location you want to break into the debugger. You can '
'then\n'
'step through the code following this statement, and continue '
'running\n'
'without the debugger using the "continue" command.\n'
'at the location you want to break into the debugger, and then '
'run the\n'
'program. You can then step through the code following this '
'statement,\n'
'and continue running without the debugger using the "continue"\n'
'command.\n'
'\n'
'New in version 3.7: The built-in "breakpoint()", when called '
'with\n'
@ -5897,30 +5934,7 @@ topics = {'assert': 'The "assert" statement\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'
'\n'
'Note:\n'
'\n'
' There is a subtlety when the sequence is being modified by the '
'loop\n'
' (this can only occur for mutable sequences, e.g. lists). An\n'
' internal counter is used to keep track of which item is used next,\n'
' and this is incremented on each iteration. When this counter has\n'
' reached the length of the sequence the loop terminates. This '
'means\n'
' that if the suite deletes the current (or a previous) item from '
'the\n'
' sequence, the next item will be skipped (since it gets the index '
'of\n'
' the current item which has already been treated). Likewise, if '
'the\n'
' suite inserts an item in the sequence before the current item, the\n'
' current item will be treated again the next time through the loop.\n'
' This can lead to nasty bugs that can be avoided by making a\n'
' temporary copy using a slice of the whole sequence, e.g.,\n'
'\n'
' for x in a[:]:\n'
' if x < 0: a.remove(x)\n',
':= a to b do"; e.g., "list(range(3))" returns the list "[0, 1, 2]".\n',
'formatstrings': 'Format String Syntax\n'
'********************\n'
'\n'
@ -9934,11 +9948,16 @@ topics = {'assert': 'The "assert" statement\n'
' “variable-length” built-in types such as "int", "bytes" '
'and "tuple".\n'
'\n'
'* Any non-string iterable may be assigned to *__slots__*. '
'Mappings may\n'
' also be used; however, in the future, special meaning may '
'be\n'
' assigned to the values corresponding to each key.\n'
'* Any non-string *iterable* may be assigned to *__slots__*.\n'
'\n'
'* If a "dictionary" is used to assign *__slots__*, the '
'dictionary keys\n'
' will be used as the slot names. The values of the '
'dictionary can be\n'
' used to provide per-attribute docstrings that will be '
'recognised by\n'
' "inspect.getdoc()" and displayed in the output of '
'"help()".\n'
'\n'
'* "__class__" assignment works only if both classes have the '
'same\n'
@ -11504,9 +11523,9 @@ topics = {'assert': 'The "assert" statement\n'
' >>> from keyword import iskeyword\n'
'\n'
" >>> 'hello'.isidentifier(), iskeyword('hello')\n"
' True, False\n'
' (True, False)\n'
" >>> 'def'.isidentifier(), iskeyword('def')\n"
' True, True\n'
' (True, True)\n'
'\n'
'str.islower()\n'
'\n'
@ -11857,7 +11876,7 @@ topics = {'assert': 'The "assert" statement\n'
" >>> ' 1 2 3 '.split()\n"
" ['1', '2', '3']\n"
'\n'
'str.splitlines([keepends])\n'
'str.splitlines(keepends=False)\n'
'\n'
' Return a list of the lines in the string, breaking at '
'line\n'
@ -12432,13 +12451,18 @@ topics = {'assert': 'The "assert" statement\n'
'The "try" statement specifies exception handlers and/or cleanup code\n'
'for a group of statements:\n'
'\n'
' try_stmt ::= try1_stmt | try2_stmt\n'
' try_stmt ::= try1_stmt | try2_stmt | try3_stmt\n'
' try1_stmt ::= "try" ":" suite\n'
' ("except" [expression ["as" identifier]] ":" '
'suite)+\n'
' ["else" ":" suite]\n'
' ["finally" ":" suite]\n'
' try2_stmt ::= "try" ":" suite\n'
' ("except" "*" expression ["as" identifier] ":" '
'suite)+\n'
' ["else" ":" suite]\n'
' ["finally" ":" suite]\n'
' try3_stmt ::= "try" ":" suite\n'
' "finally" ":" suite\n'
'\n'
'The "except" clause(s) specify one or more exception handlers. When '
@ -12538,6 +12562,53 @@ topics = {'assert': 'The "assert" statement\n'
' >>> print(sys.exc_info())\n'
' (None, None, None)\n'
'\n'
'The "except*" clause(s) are used for handling "ExceptionGroup`s. The\n'
'exception type for matching is interpreted as in the case of\n'
':keyword:`except", but in the case of exception groups we can have\n'
'partial matches when the type matches some of the exceptions in the\n'
'group. This means that multiple except* clauses can execute, each\n'
'handling part of the exception group. Each clause executes once and\n'
'handles an exception group of all matching exceptions. Each '
'exception\n'
'in the group is handled by at most one except* clause, the first '
'that\n'
'matches it.\n'
'\n'
' >>> try:\n'
' ... raise ExceptionGroup("eg",\n'
' ... [ValueError(1), TypeError(2), OSError(3), '
'OSError(4)])\n'
' ... except* TypeError as e:\n'
" ... print(f'caught {type(e)} with nested {e.exceptions}')\n"
' ... except* OSError as e:\n'
" ... print(f'caught {type(e)} with nested {e.exceptions}')\n"
' ...\n'
" caught <class 'ExceptionGroup'> with nested (TypeError(2),)\n"
" caught <class 'ExceptionGroup'> with nested (OSError(3), "
'OSError(4))\n'
' + Exception Group Traceback (most recent call last):\n'
' | File "<stdin>", line 2, in <module>\n'
' | ExceptionGroup: eg\n'
' +-+---------------- 1 ----------------\n'
' | ValueError: 1\n'
' +------------------------------------\n'
' >>>\n'
'\n'
' Any remaining exceptions that were not handled by any except* '
'clause\n'
' are re-raised at the end, combined into an exception group along '
'with\n'
' all exceptions that were raised from within except* clauses.\n'
'\n'
' An except* clause must have a matching type, and this type cannot '
'be a\n'
' subclass of :exc:`BaseExceptionGroup`. It is not possible to mix '
'except\n'
' and except* in the same :keyword:`try`. :keyword:`break`,\n'
' :keyword:`continue` and :keyword:`return` cannot appear in an '
'except*\n'
' clause.\n'
'\n'
'The optional "else" clause is executed if the control flow leaves '
'the\n'
'"try" suite, no exception was raised, and no "return", "continue", '
@ -13814,9 +13885,9 @@ topics = {'assert': 'The "assert" statement\n'
'"dict"\n'
'constructor.\n'
'\n'
'class dict(**kwarg)\n'
'class dict(mapping, **kwarg)\n'
'class dict(iterable, **kwarg)\n'
'class dict(**kwargs)\n'
'class dict(mapping, **kwargs)\n'
'class dict(iterable, **kwargs)\n'
'\n'
' Return a new dictionary initialized from an optional '
'positional\n'
@ -14466,6 +14537,14 @@ topics = {'assert': 'The "assert" statement\n'
'Comparisons in\n'
'the language reference.)\n'
'\n'
'Forward and reversed iterators over mutable sequences access '
'values\n'
'using an index. That index will continue to march forward (or\n'
'backward) even if the underlying sequence is mutated. The '
'iterator\n'
'terminates only when an "IndexError" or a "StopIteration" is\n'
'encountered (or when the index drops below zero).\n'
'\n'
'Notes:\n'
'\n'
'1. While the "in" and "not in" operations are used only for '
@ -14937,7 +15016,8 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' The arguments to the range constructor must be integers '
'(either\n'
' built-in "int" or any object that implements the "__index__"\n'
' built-in "int" or any object that implements the '
'"__index__()"\n'
' special method). If the *step* argument is omitted, it '
'defaults to\n'
' "1". If the *start* argument is omitted, it defaults to "0". '

1177
Misc/NEWS.d/3.11.0a4.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
Use pure Python ``freeze_module`` for all but importlib bootstrap files.
``--with-freeze-module`` :program:`configure` option is no longer needed for
cross builds.

View File

@ -1,2 +0,0 @@
:program:`makesetup` no longer builds extensions that have been marked as
*disabled*. This allows users to disable modules in ``Modules/Setup.local``.

View File

@ -1 +0,0 @@
A new directory ``Tools/wasm`` contains WebAssembly-related helpers like ``config.site`` override for wasm32-emscripten, wasm assets generator to bundle the stdlib, and a README.

View File

@ -1,2 +0,0 @@
Add a --with-pystats configure option to turn on internal statistics
gathering.

View File

@ -1,2 +0,0 @@
Automatically detect or install bootstrap Python runtime when building from
Visual Studio.

View File

@ -1,2 +0,0 @@
Updated OpenSSL to 1.1.1m in Windows builds, macOS installer builds, and CI.
Patch by Kumar Aditya.

View File

@ -1 +0,0 @@
``configure`` no longer sets ``MULTIARCH`` on FreeBSD platforms.

View File

@ -1 +0,0 @@
Fixed a regression in ``configure`` check for :func:`select.epoll`.

View File

@ -1,2 +0,0 @@
Added and fixed ``#ifdef HAVE_FEATURE`` checks for functionality that is not
available on WASI platform.

View File

@ -1,2 +0,0 @@
The ``configure`` script has a new option ``--with-emscripten-target`` to
select browser or node as Emscripten build target.

View File

@ -1,5 +0,0 @@
When Python is built without :option:`--enable-shared`, the ``python``
program is now linked to object files, rather than being linked to the Python
static library (libpython.a), to make sure that all symbols are exported.
Previously, the linker omitted some symbols like the :c:func:`Py_FrozenMain`
function. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
When Python is configured with :option:`--without-static-libpython`, the Python
static library (libpython.a) is no longer built. Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
The :c:func:`PyUnicode_CHECK_INTERNED` macro has been excluded from the limited
C API. It was never usable there, because it used internal structures which are
not available in the limited C API. Patch by Victor Stinner.

View File

@ -1 +0,0 @@
Replaced deprecated usage of :c:func:`PyImport_ImportModuleNoBlock` with :c:func:`PyImport_ImportModule` in stdlib modules. Patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
Document that the *no_block* argument to :c:func:`PyCapsule_Import` is a
no-op now.

View File

@ -1 +0,0 @@
:c:func:`PyBuffer_GetPointer`, :c:func:`PyBuffer_FromContiguous`, :c:func:`PyBuffer_ToContiguous` and :c:func:`PyMemoryView_FromBuffer` now take buffer info by ``const Py_buffer *`` instead of ``Py_buffer *``, as they do not need mutability. :c:func:`PyBuffer_FromContiguous` also now takes the source buffer as ``const void *``, and similarly :c:func:`PyBuffer_GetPointer` takes the strides as ``const Py_ssize_t *``.

View File

@ -1 +0,0 @@
Fix a bug in :c:func:`PyFunction_GetAnnotations` that caused it to return a ``tuple`` instead of a ``dict``.

View File

@ -1,2 +0,0 @@
Added the :c:data:`Py_Version` constant which bears the same value as
:c:macro:`PY_VERSION_HEX`. Patch by Gabriele N. Tornetta.

View File

@ -1 +0,0 @@
Revert changes in ``set.__init__``. Subclass of :class:`set` needs to define a ``__init__()`` method if it defines a ``__new__()`` method with additional keyword parameters.

View File

@ -1 +0,0 @@
Complete the :pep:`654` implementation: add ``except*``.

View File

@ -1,4 +0,0 @@
The main interpreter in _PyRuntimeState.interpreters is now statically
allocated (as part of _PyRuntime). Likewise for the initial thread state of
each interpreter. This means less allocation during runtime init, as well
as better memory locality for these key state objects.

View File

@ -1,3 +0,0 @@
Fix bug where the built-in :func:`compile` function did not always raise a
:exc:`SyntaxError` when passed multiple statements in 'single' mode. Patch by
Weipeng Hong.

View File

@ -1,3 +0,0 @@
Specialize the CALL_FUNCTION instruction for calls to builtin types with a
single argument. Speeds up ``range(x)``, ``list(x)``, and specifically
``type(obj)``.

View File

@ -1 +0,0 @@
Improve compatibility of the :mod:`curses` module with NetBSD curses.

View File

@ -1,2 +0,0 @@
Fix a crash in the :mod:`atexit` module involving functions that unregister
themselves before raising exceptions. Patch by Pablo Galindo.

View File

@ -1 +0,0 @@
Deepfreeze :mod:`runpy`, patch by Kumar Aditya.

View File

@ -1 +0,0 @@
Add :opcode:`POP_JUMP_IF_NOT_NONE` and :opcode:`POP_JUMP_IF_NONE` opcodes to speed up conditional jumps.

View File

@ -1,3 +0,0 @@
Fix a bug where the line numbers given in a traceback when a decorator
application raised an exception were wrong.

View File

@ -1,2 +0,0 @@
Fixes parsing of :file:`._pth` files on startup so that single-character
paths are correctly read.

View File

@ -1 +0,0 @@
Ensure :file:`._pth` files work as intended on platforms other than Windows.

View File

@ -1,2 +0,0 @@
Improve the location of the caret in :exc:`SyntaxError` exceptions emitted
by the symbol table. Patch by Pablo Galindo.

View File

@ -1,2 +0,0 @@
Fix parser error when parsing non-utf8 characters in source files. Patch by
Pablo Galindo.

View File

@ -1 +0,0 @@
The code called from :c:func:`_PyErr_Display` was refactored to improve error handling. It now exits immediately upon an unrecoverable error.

View File

@ -1,2 +0,0 @@
Remove the ``YIELD_FROM`` instruction and replace it with the ``SEND``
instruction which performs the same operation, but without the loop.

View File

@ -1,8 +0,0 @@
Replace the four call bytecode instructions which one pre-call instruction
and two call instructions.
Removes ``CALL_FUNCTION``, ``CALL_FUNCTION_KW``, ``CALL_METHOD`` and
``CALL_METHOD_KW``.
Adds ``CALL_NO_KW`` and ``CALL_KW`` call instructions, and
``PRECALL_METHOD`` prefix for pairing with ``LOAD_METHOD``.

View File

@ -1 +0,0 @@
The interpreter state's representation of handled exceptions (a.k.a exc_info, or _PyErr_StackItem) now has only the ``exc_value`` field, ``exc_type`` and ``exc_traceback`` have been removed as their values can be derived from ``exc_value``.

View File

@ -1 +0,0 @@
Fix bug where :meth:`ExceptionGroup.split` and :meth:`ExceptionGroup.subgroup` did not copy the exception group's ``__note__`` field to the parts.

View File

@ -1,2 +0,0 @@
Add a maximum recursion check to the PEG parser to avoid stack overflow.
Patch by Pablo Galindo

View File

@ -1,2 +0,0 @@
Speed up shifting operation involving integers less than
:c:macro:`PyLong_BASE`. Patch by Xinhang Xu.

View File

@ -1 +0,0 @@
Fix iterator cache mechanism of :class:`OrderedDict`.

View File

@ -1,2 +0,0 @@
Remove :opcode:`POP_EXCEPT_AND_RERAISE` and replace it by an equivalent
sequence of other opcodes.

View File

@ -1 +0,0 @@
:opcode:`PREP_RERAISE_STAR` no longer pushes ``lasti`` to the stack.

View File

@ -1 +0,0 @@
Certain sequence multiplication operations like ``[0] * 1_000`` are now faster due to reference-counting optimizations. Patch by Dennis Sweeney.

View File

@ -1 +0,0 @@
Remove the ``GEN_START`` opcode.

View File

@ -1,3 +0,0 @@
Correct the error message for unclosed parentheses when the tokenizer
doesn't reach the end of the source when the error is reported. Patch by
Pablo Galindo

View File

@ -1 +0,0 @@
Fix the regression of os.path.normpath("A/../../B") not returning expected "../B" but "B".

View File

@ -1,3 +0,0 @@
Add RESUME opcode. This is a logical no-op. It is emitted by the compiler
anywhere a Python function can be entered. It is used by the interpreter to
perform tracing and optimizer checks.

View File

@ -1,5 +0,0 @@
Fix a regression when a type method like ``__init__()`` is modified in a
subinterpreter. Fix a regression in ``_PyUnicode_EqualToASCIIId()`` and type
``update_slot()``. Revert the change which made the Unicode dictionary of
interned strings compatible with subinterpreters: the internal interned
dictionary is shared again by all interpreters. Patch by Victor Stinner.

View File

@ -1,2 +0,0 @@
We always expect the "use_frozen_modules" config to be set, now that
getpath.c was rewritten in pure Python and the logic improved.

View File

@ -1,2 +0,0 @@
Fix the line number of tokenizer errors inside f-strings. Patch by Pablo
Galindo.

View File

@ -1,2 +0,0 @@
Fixed an interpreter crash on bootup with multiple PythonPaths set in
the Windows registry. Patch by Derzsi Dániel.

View File

@ -1,2 +0,0 @@
ASDL declaration of ``FormattedValue`` has changed to reflect ``conversion``
field is not optional.

View File

@ -1,2 +0,0 @@
Remove spurious "call" event when creating a lambda function that was
accidentally introduced in 3.11a4.

View File

@ -1,2 +0,0 @@
Do not set line number of instruction storing doc-string. Fixes regression
introduced in 3.11 alpha.

View File

@ -1,3 +0,0 @@
Fix a crash in the parser when retrieving the error text for multi-line
f-strings expressions that do not start in the first line of the string.
Patch by Pablo Galindo

View File

@ -1 +0,0 @@
Fix memory leak in PyEval_EvalCodeEx.

View File

@ -1,5 +0,0 @@
:c:func:`Py_EndInterpreter` now explicitly untracks all objects currently
tracked by the GC. Previously, if an object was used later by another
interpreter, calling :c:func:`PyObject_GC_UnTrack` on the object crashed if the
previous or the next object of the :c:type:`PyGC_Head` structure became a
dangling pointer. Patch by Victor Stinner.

View File

@ -1 +0,0 @@
Update the documentation for the :func:`globals` function.

View File

@ -1,2 +0,0 @@
Extracted ``importlib.resources`` and ``importlib.resources.abc`` documentation into
separate files.

View File

@ -1 +0,0 @@
State that ``|`` is preferred for readability over ``Union`` in the :mod:`typing` docs.

View File

@ -1 +0,0 @@
Document method :meth:`cmd.Cmd.columnize`.

View File

@ -1,2 +0,0 @@
Replace ``concurrent.futures.TimeoutError`` and ``asyncio.TimeoutError``
with builtin :exc:`TimeoutError`, keep these names as deprecated aliases.

View File

@ -1,3 +0,0 @@
Fetch across rollback no longer raises :exc:`~sqlite3.InterfaceError`. Instead
we leave it to the SQLite library to handle these cases.
Patch by Erlend E. Aasland.

View File

@ -1 +0,0 @@
Added :data:`signal.SIGSTKFLT` on platforms where this signal is defined.

View File

@ -1 +0,0 @@
Added a :meth:`__repr__` method to :class:`multiprocessing.Event` objects, patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
Remove namespace package (PEP 420) support from unittest discovery. It was
introduced in Python 3.4 but has been broken since Python 3.7.

View File

@ -1,6 +0,0 @@
Change how dataclasses disallows mutable default values. It used to
use a list of known types (list, dict, set). Now it disallows
unhashable objects to be defaults. It's using unhashability as a
proxy for mutability. Patch by Eric V. Smith, idea by Raymond
Hettinger.

View File

@ -1,3 +0,0 @@
The empty query string, consisting of no query arguments, is now handled
correctly in ``urllib.parse.parse_qsl``. This caused problems before when
strict parsing was enabled.

View File

@ -1,3 +0,0 @@
:mod:`typing` generic aliases now reveal the class attributes of the
original generic class when passed to ``dir()``. This was the behavior up to
Python 3.6, but was changed in 3.7-3.9.

View File

@ -1 +0,0 @@
Adding :attr:`F_DUP2FD` and :attr:`F_DUP2FD_CLOEXEC` constants from FreeBSD into the fcntl module.

View File

@ -1 +0,0 @@
Ensure that :func:`math.expm1` does not raise on underflow.

View File

@ -1 +0,0 @@
Add :attr:`__all__` to :mod:`inspect`, patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
Add ability to use ``typing.Union`` and ``types.UnionType`` as dispatch
argument to ``functools.singledispatch``. Patch provided by Yurii Karabas.

View File

@ -1,5 +0,0 @@
The ``registry()`` method of :func:`functools.singledispatch` functions
checks now the first argument or the first parameter annotation and raises a
TypeError if it is not supported. Previously unsupported "types" were
ignored (e.g. ``typing.List[int]``) or caused an error at calling time (e.g.
``list[int]``).

View File

@ -1,2 +0,0 @@
Fix help for the :mod:`signal` module. Some functions (e.g. ``signal()`` and
``getsignal()``) were omitted.

View File

@ -1 +0,0 @@
Add allow allow_reuse_port flag in socketserver.

View File

@ -1 +0,0 @@
Functions in the :mod:`traceback` module raise :exc:`TypeError` rather than :exc:`AttributeError` when an exception argument is not of type :exc:`BaseException`.

View File

@ -1 +0,0 @@
:mod:`argparse` raises :exc:`ValueError` with clear message when trying to render usage for an empty mutually-exclusive group. Previously it raised a cryptic :exc:`IndexError`.

View File

@ -1,3 +0,0 @@
Calling :meth:`add_argument_group` on an argument group is deprecated. Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` on a mutually exclusive group is deprecated.
These features were never supported and do not always work correctly. The functions exist on the API by accident through inheritance and will be removed in the future.

View File

@ -1,2 +0,0 @@
Print unexpected successes together with failures and errors in summary in
:class:`unittest.TextTestResult`.

View File

@ -1,3 +0,0 @@
EntryPoint objects are no longer tuples. Recommended means to access is by
attribute ('.name', '.group') or accessor ('.load()'). Access by index is
deprecated and will raise deprecation warning.

View File

@ -1,2 +0,0 @@
Honor spec when generating requirement specs with urls and extras
(importlib_metadata 4.8.3).

View File

@ -1 +0,0 @@
:func:`concurrent.futures.wait` no longer blocks forever when given duplicate Futures. Patch by Kumar Aditya.

View File

@ -1,3 +0,0 @@
Add *include_hidden* parameter to :func:`~glob.glob` and :func:`~glob.iglob` to
match hidden files and directories when using special characters like ``*``,
``**``, ``?`` and ``[]``.

View File

@ -1 +0,0 @@
Moved importlib.resources and its related functionality to a package.

View File

@ -1,2 +0,0 @@
Refactor tests to test traversable API directly. Includes changes from
importlib 5.4.0.

View File

@ -1 +0,0 @@
Added missing error codes to module ``xml.parsers.expat.errors``.

View File

@ -1 +0,0 @@
Deprecate :attr:`webbrowser.MacOSXOSAScript._name` and use ``name`` instead.

View File

@ -1 +0,0 @@
Adding the ``MAP_STACK`` constant for the mmap module.

View File

@ -1 +0,0 @@
Add fast path for ``0 <= k <= n <= 67`` for :func:`math.comb`.

View File

@ -1 +0,0 @@
Adding ``SF_NOCACHE`` sendfile constant for FreeBSD for the posixmodule.

View File

@ -1 +0,0 @@
Reuse ``_winapi`` constants in ``asyncio.windows_events``.

View File

@ -1,2 +0,0 @@
Improve error message when importing :mod:`asyncio.windows_events` on
non-Windows.

View File

@ -1,3 +0,0 @@
Added two new variables to *pyvenv.cfg* which is generated by :mod:`venv`
module: *executable* for the executable and *command* for the command line used
to create the environment.

View File

@ -1,4 +0,0 @@
Optimized the mean, variance, and stdev functions in the statistics module.
If the input is an iterator, it is consumed in a single pass rather than
eating memory by conversion to a list. The single pass algorithm is about
twice as fast as the previous two pass code.

View File

@ -1,4 +0,0 @@
Improve day constants in :mod:`calendar`.
Now all constants (`MONDAY` ... `SUNDAY`) are documented, tested, and added
to ``__all__``.

View File

@ -1 +0,0 @@
Remove special-casing of ``__new__`` in :meth:`enum.Enum.__dir__`.

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