+++++++++++
Python News
+++++++++++
What's New in Python 3.10.6 final?
==================================
*Release date: 2022-08-01*
Security
--------
- gh-issue-87389: :mod:`http.server`: Fix an open redirection vulnerability
in the HTTP server when an URI path starts with ``//``. Vulnerability
discovered, and initial fix proposed, by Hamza Avvan.
- gh-issue-92888: Fix ``memoryview`` use after free when accessing the
backing buffer in certain cases.
Core and Builtins
-----------------
- gh-issue-95355: ``_PyPegen_Parser_New`` now properly detects token memory
allocation errors. Patch by Honglin Zhu.
- gh-issue-94938: Fix error detection in some builtin functions when keyword
argument name is an instance of a str subclass with overloaded ``__eq__``
and ``__hash__``. Previously it could cause SystemError or other undesired
behavior.
- gh-issue-94949: :func:`ast.parse` will no longer parse parenthesized
context managers when passed ``feature_version`` less than ``(3, 9)``.
Patch by Shantanu Jain.
- gh-issue-94947: :func:`ast.parse` will no longer parse assignment
expressions when passed ``feature_version`` less than ``(3, 8)``. Patch by
Shantanu Jain.
- gh-issue-94869: Fix the column offsets for some expressions in multi-line
f-strings :mod:`ast` nodes. Patch by Pablo Galindo.
- gh-issue-91153: Fix an issue where a :class:`bytearray` item assignment
could crash if it's resized by the new value's :meth:`__index__` method.
- gh-issue-94329: Compile and run code with unpacking of extremely large
sequences (1000s of elements). Such code failed to compile. It now
compiles and runs correctly.
- gh-issue-94360: Fixed a tokenizer crash when reading encoded files with
syntax errors from ``stdin`` with non utf-8 encoded text. Patch by Pablo
Galindo
- gh-issue-94192: Fix error for dictionary literals with invalid expression
as value.
- gh-issue-93964: Strengthened compiler overflow checks to prevent crashes
when compiling very large source files.
- gh-issue-93671: Fix some exponential backtrace case happening with deeply
nested sequence patterns in match statements. Patch by Pablo Galindo
- gh-issue-93021: Fix the :attr:`__text_signature__` for :meth:`__get__`
methods implemented in C. Patch by Jelle Zijlstra.
- gh-issue-92930: Fixed a crash in ``_pickle.c`` from mutating collections
during ``__reduce__`` or ``persistent_id``.
- gh-issue-92914: Always round the allocated size for lists up to the
nearest even number.
- gh-issue-92858: Improve error message for some suites with syntax error
before ':'
Library
-------
- gh-issue-95339: Update bundled pip to 22.2.1.
- gh-issue-95045: Fix GC crash when deallocating ``_lsprof.Profiler`` by
untracking it before calling any callbacks. Patch by Kumar Aditya.
- gh-issue-95087: Fix IndexError in parsing invalid date in the :mod:`email`
module.
- gh-issue-95199: Upgrade bundled setuptools to 63.2.0.
- gh-issue-95194: Upgrade bundled pip to 22.2.
- gh-issue-93899: Fix check for existence of :data:`os.EFD_CLOEXEC`,
:data:`os.EFD_NONBLOCK` and :data:`os.EFD_SEMAPHORE` flags on older kernel
versions where these flags are not present. Patch by Kumar Aditya.
- gh-issue-95166: Fix :meth:`concurrent.futures.Executor.map` to cancel the
currently waiting on future on an error - e.g. TimeoutError or
KeyboardInterrupt.
- gh-issue-93157: Fix :mod:`fileinput` module didn't support ``errors``
option when ``inplace`` is true.
- gh-issue-94821: Fix binding of unix socket to empty address on Linux to
use an available address from the abstract namespace, instead of "\0".
- gh-issue-94736: Fix crash when deallocating an instance of a subclass of
``_multiprocessing.SemLock``. Patch by Kumar Aditya.
- gh-issue-94637: :meth:`SSLContext.set_default_verify_paths` now releases
the GIL around ``SSL_CTX_set_default_verify_paths`` call. The function
call performs I/O and CPU intensive work.
- gh-issue-94510: Re-entrant calls to :func:`sys.setprofile` and
:func:`sys.settrace` now raise :exc:`RuntimeError`. Patch by Pablo
Galindo.
- gh-issue-92336: Fix bug where :meth:`linecache.getline` fails on bad files
with :exc:`UnicodeDecodeError` or :exc:`SyntaxError`. It now returns an
empty string as per the documentation.
- gh-issue-89988: Fix memory leak in :class:`pickle.Pickler` when looking up
:attr:`dispatch_table`. Patch by Kumar Aditya.
- gh-issue-94254: Fixed types of :mod:`struct` module to be immutable. Patch
by Kumar Aditya.
- gh-issue-94245: Fix pickling and copying of ``typing.Tuple[()]``.
- gh-issue-94207: Made :class:`_struct.Struct` GC-tracked in order to fix a
reference leak in the :mod:`_struct` module.
- gh-issue-94101: Manual instantiation of :class:`ssl.SSLSession` objects is
no longer allowed as it lead to misconfigured instances that crashed the
interpreter when attributes where accessed on them.
- gh-issue-84753: :func:`inspect.iscoroutinefunction`,
:func:`inspect.isgeneratorfunction`, and
:func:`inspect.isasyncgenfunction` now properly return ``True`` for
duck-typed function-like objects like instances of
:class:`unittest.mock.AsyncMock`.
This makes :func:`inspect.iscoroutinefunction` consistent with the
behavior of :func:`asyncio.iscoroutinefunction`. Patch by Mehdi ABAAKOUK.
- gh-issue-83499: Fix double closing of file description in :mod:`tempfile`.
- gh-issue-79512: Fixed names and ``__module__`` value of :mod:`weakref`
classes :class:`~weakref.ReferenceType`, :class:`~weakref.ProxyType`,
:class:`~weakref.CallableProxyType`. It makes them pickleable.
- gh-issue-90494: :func:`copy.copy` and :func:`copy.deepcopy` now always
raise a TypeError if ``__reduce__()`` returns a tuple with length 6
instead of silently ignore the 6th item or produce incorrect result.
- gh-issue-90549: Fix a multiprocessing bug where a global named resource
(such as a semaphore) could leak when a child process is spawned (as
opposed to forked).
- gh-issue-79579: :mod:`sqlite3` now correctly detects DML queries with
leading comments. Patch by Erlend E. Aasland.
- gh-issue-93421: Update :data:`sqlite3.Cursor.rowcount` when a DML
statement has run to completion. This fixes the row count for SQL queries
like ``UPDATE ... RETURNING``. Patch by Erlend E. Aasland.
- gh-issue-91810: Suppress writing an XML declaration in open files in
``ElementTree.write()`` with ``encoding='unicode'`` and
``xml_declaration=None``.
- gh-issue-93353: Fix the :func:`importlib.resources.as_file` context
manager to remove the temporary file if destroyed late during Python
finalization: keep a local reference to the :func:`os.remove` function.
Patch by Victor Stinner.
- gh-issue-83658: Make :class:`multiprocessing.Pool` raise an exception if
``maxtasksperchild`` is not ``None`` or a positive int.
- gh-issue-74696: :func:`shutil.make_archive` no longer temporarily changes
the current working directory during creation of standard ``.zip`` or tar
archives.
- gh-issue-91577: Move imports in :class:`~multiprocessing.SharedMemory`
methods to module level so that they can be executed late in python
finalization.
- bpo-47231: Fixed an issue with inconsistent trailing slashes in tarfile
longname directories.
- bpo-46755: In :class:`QueueHandler`, clear ``stack_info`` from
:class:`LogRecord` to prevent stack trace from being written twice.
- bpo-46053: Fix OSS audio support on NetBSD.
- bpo-46197: Fix :mod:`ensurepip` environment isolation for subprocess
running ``pip``.
- bpo-45924: Fix :mod:`asyncio` incorrect traceback when future's exception
is raised multiple times. Patch by Kumar Aditya.
- bpo-34828: :meth:`sqlite3.Connection.iterdump` now handles databases that
use ``AUTOINCREMENT`` in one or mo