Skip to content

Latest commit

 

History

History
761 lines (539 loc) · 16.1 KB

3.9.8.rst

File metadata and controls

761 lines (539 loc) · 16.1 KB

Fixed a crash in issubclass() from infinite recursion when searching pathological __bases__ tuples.

Fix parser crash when reporting errors involving invalid continuation characters. Patch by Pablo Galindo.

Fix reference leak from descr_check. Patch by Dong-hee Na.

Fix deepcopying of :class:`types.GenericAlias` objects.

Release the GIL while performing isatty system calls on arbitrary file descriptors. In particular, this affects :func:`os.isatty`, :func:`os.device_encoding` and :class:`io.TextIOWrapper`. By extension, :func:`io.open` in text mode is also affected. This change solves a deadlock in :func:`os.isatty`. Patch by Vincent Michel in :issue:`44219`.

Added fallback to extension modules with '.sl' suffix on HP-UX

Extensions that indicate they use global state (by setting m_size to -1) can again be used in multiple interpreters. This reverts to behavior of Python 3.8.

Fix issue where Protocol.__init__ raises RecursionError when it's called directly or via super(). Patch provided by Yurii Karabas.

When the interpreter renders an exception, its name now has a complete qualname. Previously only the class name was concatenated to the module name, which sometimes resulted in an incorrect full name being displayed.

(This issue impacted only the C code exception rendering, the :mod:`traceback` module was using qualname already).

Fix bug in Python 3.9 that meant functools.singledispatchmethod failed to properly wrap the attributes of the target method. Patch by Alex Waygood.

Fix caching of multi-value :data:`typing.Literal`. Literal[True, 2] is no longer equal to Literal[1, 2].

Fix typing.Signature string representation for generic builtin types.

:meth:`sqlite3.connect` now correctly raises :exc:`MemoryError` if the underlying SQLite API signals memory error. Patch by Erlend E. Aasland.

Fix bug in :class:`functools.singledispatchmethod` that caused it to fail when attempting to register a :func:`classmethod` or :func:`staticmethod` using type annotations. Patch contributed by Alex Waygood.

Add references to :mod:`zoneinfo` in the :mod:`datetime` documentation, mostly replacing outdated references to dateutil.tz. Change by Paul Ganssle.

Fix incremental decoder and stream reader in the "raw-unicode-escape" codec. Previously they failed if the escape sequence was split.

Fix incremental decoder and stream reader in the "unicode-escape" codec. Previously they failed if the escape sequence was split.

Fixed :func:`email.utils.parsedate_tz` crashing with :exc:`UnboundLocalError` on certain invalid input instead of returning None. Patch by Ben Hoyt.

Fix bug in the :mod:`doctest` module that caused it to fail if a docstring included an example with a classmethod property. Patch by Alex Waygood.

Make :func:`inspect.getmodule` catch FileNotFoundError raised by :'func:inspect.getabsfile, and return None to indicate that the module could not be determined.

Prevent use-after-free in asyncio. Make sure the cached running loop holder gets cleared on dealloc to prevent use-after-free in get_running_loop

Make :mod:`xmlrpc.client` more robust to C runtimes where the underlying C strftime function results in a ValueError when testing for year formatting options.

Fix clang rpath issue in :mod:`distutils`. The UnixCCompiler now uses correct clang option to add a runtime library directory (rpath) to a shared library.

Improve error message of :class:`csv.Dialect` when initializing. Patch by Vajrasky Kok and Dong-hee Na.

Update bundled pip to 21.2.4 and setuptools to 58.1.0

On Unix, if the sem_clockwait() function is available in the C library (glibc 2.30 and newer), the :meth:`threading.Lock.acquire` method now uses the monotonic clock (:data:`time.CLOCK_MONOTONIC`) for the timeout, rather than using the system clock (:data:`time.CLOCK_REALTIME`), to not be affected by system clock changes. Patch by Victor Stinner.

Fixed :class:`http.client.HTTPConnection` to work properly in OSs that don't support the TCP_NODELAY socket option.

Fix the :func:`threading._shutdown` function when the :mod:`threading` module was imported first from a thread different than the main thread: no longer log an error at Python exit.

Fix a race condition in the :meth:`Thread.join() <threading.Thread.join>` method of the :mod:`threading` module. If the function is interrupted by a signal and the signal handler raises an exception, make sure that the thread remains in a consistent state to prevent a deadlock. Patch by Victor Stinner.

Fix :meth:`unittest.IsolatedAsyncioTestCase.debug`: it runs now asynchronous methods and callbacks.

:meth:`unittest.TestCase.debug` raises now a :class:`unittest.SkipTest` if the class or the test method are decorated with the skipping decorator.

Fix an issue where argparse would not preserve values in a provided namespace when using a subparser with defaults.

Fixed a regression in :func:`~shutil.copyfile`, :func:`~shutil.copy`, :func:`~shutil.copy2` raising :exc:`FileNotFoundError` when source is a directory, which should raise :exc:`IsADirectoryError`

Fix stack buffer overflow in parsing J1939 network address.

Fix the tempfile._infer_return_type function so that the dir argument of the :mod:`tempfile` functions accepts an object implementing the os.PathLike protocol.

Patch by Kyungmin Lee.

When tracing a tkinter variable used by a ttk OptionMenu, callbacks are no longer made twice.

Calling :func:`mimetypes.guess_all_extensions` with strict=False no longer affects the result of the following call with strict=True. Also, mutating the returned list no longer affects the global state.

:func:`typing.get_type_hints` now works with :data:`~typing.Final` wrapped in :class:`~typing.ForwardRef`.

Remove deprecation warnings about the loop argument in :mod:`asyncio` incorrectly emitted in cases when the user does not pass the loop argument.

Fix issue when dataclasses that inherit from typing.Protocol subclasses have wrong __init__. Patch provided by Yurii Karabas.

Fixed an error raised in :mod:`argparse` help display when help for an option is set to 1+ blank spaces or when choices arg is an empty container.

Fix a potential deadlock at shutdown of forked children when using :mod:`concurrent.futures` module

Fix integer overflow in pickling and copying the range iterator.

tarfile.open raises :exc:`~tarfile.ReadError` when a zlib error occurs during file extraction.

Fix an edge case of :class:`ExitStack` and :class:`AsyncExitStack` exception chaining. They will now match with block behavior when __context__ is explicitly set to None when the exception is in flight.

Improve documentation for :func:`functools.singledispatch` and :class:`functools.singledispatchmethod`.

Amend the docs on GenericAlias objects to clarify that non-container classes can also implement __class_getitem__. Patch contributed by Alex Waygood.

Add a new "relevant PEPs" section to the top of the documentation for the typing module. Patch by Alex Waygood.

Add level argument to multiprocessing.log_to_stderr function docs.

Mention in the documentation of :ref:`Built-in Exceptions <bltin-exceptions>` that inheriting from multiple exception types in a single subclass is not recommended due to possible memory layout incompatibility.

Add note about PEP 585 in :mod:`collections.abc`.

Add protocol description to the :class:`importlib.abc.Traversable` documentation.

Add Programming FAQ entry explaining that int literal attribute access requires either a space after or parentheses around the literal.

Remove extra documentation listing methods in difflib. It was rendering twice in pydoc and was outdated in some places.

Add tests for :func:`dis.distb`

Add subtests for all pickle protocols in test_zoneinfo.

:mod:`test.libregrtest` now raises the soft resource limit for the maximum number of file descriptors when the default is too low for our test suite as was often the case on macOS.

Fix :func:`test.support.import_helper.import_fresh_module`.

Add a test case for empty :class:`typing.NamedTuple`.

Cover case when invalid markers type is supplied to c_make_encoder.

Fix UserWarning: resource_tracker warning in _test_multiprocessing._TestSharedMemory.test_shared_memory_cleaned_after_process_termination

Fix test_readline.test_nonascii(): sometimes, the newline character is not written at the end, so don't expect it in the output. Patch by Victor Stinner.

Fixes infinite loop on :func:`unittest.mock.seal` of mocks created by :func:`~unittest.create_autospec`.

Fixes that test classes decorated with @hashlib_helper.requires_hashdigest were skipped all the time.

setup.py now uses values from configure script to build the _uuid extension module. Configure now detects util-linux's libuuid, too.

Modules/Setup now use PY_CFLAGS_NODIST instead of PY_CFLAGS to compile shared modules.

Update :data:`sys.version` to use main as fallback information. Patch by Jeong YunWon.

Prevent internal configure error when running configure with recent versions of non-Apple clang. Patch by David Bohman.

Avoid building with the Windows 11 SDK previews automatically. This may be overridden by setting the DefaultWindowsSDKVersion environment variable before building.

venv now warns when the created environment may need to be accessed at a different path, due to redirections, links or junctions. It also now correctly installs or upgrades components when the alternate path is required.

Avoid tkinter file dialog failure on macOS 12 Monterey when using the Tk 8.6.11 provided by python.org macOS installers. Patch by Marc Culler of the Tk project.

On Windows, change exit/quit message to suggest Ctrl-D, which works, instead of <Ctrl-Z Return>, which does not work in IDLE.

:meth:`BufferedReader.peek` no longer raises :exc:`ValueError` when the entire file has already been buffered.

Remove crypt.h include from the public Python.h header.