Skip to content

Latest commit

 

History

History
637 lines (450 loc) · 12.9 KB

3.8.4rc1.rst

File metadata and controls

637 lines (450 loc) · 12.9 KB

The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address).

Disallow CR or LF in email.headerregistry.Address arguments to guard against header injection attacks.

Fix decoding errors with audit when open files with non-ASCII names on non-UTF-8 locale.

Fixes a reference to deallocated stack space during startup when constructing sys.path involving a relative symlink when code was supplied via -c. (discovered via Coverity)

Stefan Behnel reported that cf_feature_version is used even when PyCF_ONLY_AST is not set. This is against the intention and against the documented behavior, so it's been fixed.

Fix refleak in _Py_fopen_obj() when PySys_Audit() fails

Raise :exc:`ValueError` when validating custom AST's where the constants True, False and None are used within a :class:`ast.Name` node.

Fix GIL usage in :c:func:`PyOS_Readline`: lock the GIL to set an exception and pass the Python thread state when checking if there is a pending signal.

Unexpected errors in calling the __iter__ method are no longer masked by TypeError in the :keyword:`in` operator and functions :func:`~operator.contains`, :func:`~operator.indexOf` and :func:`~operator.countOf` of the :mod:`operator` module.

Correctly generate annotations where parentheses are omitted but required (e.g: Type[(str, int, *other))].

Fixed the :mod:`trace` module CLI for Python source files with non-UTF-8 encoding.

Fix default-value signatures of several functions in the :mod:`select` module - by Anthony Sottile.

Fixed reading files with non-ASCII names from ZIP archive directly after writing them.

:func:`pdb.find_function` now correctly determines the source file encoding.

Fix a NULL pointer dereference within the ssl module during a MemoryError in the keylog callback. (discovered by Coverity)

:func:`mimetypes.read_mime_types` function reads the rule file using UTF-8 encoding, not the locale encoding. Patch by Srinivas Reddy Thatiparthy.

:mod:`ensurepip` now disables the use of pip cache when installing the bundled versions of pip and setuptools. Patch by Krzysztof Konopko.

The standard deviation and variance functions in the statistics module were ignoring their mu and xbar arguments.

Stop codeop._maybe_compile, used by code.InteractiveInterpreter (and IDLE). from from emitting each warning three times.

Fix truncate when sending str object with_xxsubinterpreters.channel_send.

Update ensurepip to install pip 20.1.1 and setuptools 47.1.0.

:mod:`webbrowser` now properly finds the default browser in pure Wayland systems by checking the WAYLAND_DISPLAY environment variable. Patch contributed by Jérémy Attali.

:mod:`ctypes` module: If ctypes fails to convert the result of a callback or if a ctypes callback function raises an exception, sys.unraisablehook is now called with an exception set. Previously, the error was logged into stderr by :c:func:`PyErr_Print`.

Fix :mod:`ssl` code to be compatible with OpenSSL 1.1.x builds that use no-deprecated and --api=1.1.0.

:func:`ast.parse` will not parse self documenting expressions in f-strings when passed feature_version is less than (3, 8).

Add h5 file extension as MIME Type application/x-hdf5, as per HDF Group recommendation for HDF5 formatted data files. Patch contributed by Mark Schwab.

:mod:`linecache` could crash with a :exc:`KeyError` when accessed from multiple threads. Fix by Michael Graczyk.

If text content lines are longer than policy.max_line_length, always use a content-encoding to make sure they are wrapped.

The :mod:`ssl` and :mod:`hashlib` modules now actively check that OpenSSL is build with thread support. Python 3.7.0 made thread support mandatory and no longer works safely with a no-thread builds.

ctypes now raises an ArgumentError when a callback is invoked with more than 1024 arguments.

The ssl module now support OpenSSL builds without TLS 1.0 and 1.1 methods.

Add :class:`zipfile.Path` to __all__ in the :mod:`zipfile` module.

Raise TypeError when _generate_next_value_ is defined after members. Patch by Ethan Onstott.

Fixed :class:`multiprocessing.context.get_all_start_methods` to properly return the default method first on macOS.

Fix parsing of invalid mime headers parameters by collapsing whitespace between encoded words in a bare-quote-string.

:exc:`struct.error` is now raised if there is a null character in a :mod:`struct` format string.

AST nodes are now raising :exc:`TypeError` on conflicting keyword arguments. Patch contributed by Rémi Lapeyre.

:func:`~unittest.TestCase.assertWarns` no longer raises a RuntimeException when accessing a module's __warningregistry__ causes importation of a new module, or when a new module is imported in another thread. Patch by Kernc.

Fix cgi.parse_multipart without content_length. Patch by Roger Duran

Fix integer overflow in the :meth:`array.array.index` method on 64-bit Windows for index larger than 2**31.

On Linux, skip tests using multiprocessing if the current user cannot create a file in /dev/shm/ directory. Add the :func:`~test.support.skip_if_broken_multiprocessing_synchronize` function to the :mod:`test.support` module.

Fix use of support.require_{linux|mac|freebsd}_version() decorators as class decorator.

Fix test_copyreg when numpy is installed: test.pickletester now saves/restores warnings filters when importing numpy, to ignore filters installed by numpy.

Disable remote :mod:`imaplib` tests, host cyrus.andrew.cmu.edu is blocking incoming connections.

distutils.tests now saves/restores warnings filters to leave them unchanged. Importing tests imports docutils which imports pkg_resources which adds a warnings filter.

Make test_gdb properly run on HP-UX. Patch by Michael Osipov.

Pin Sphinx version to 2.3.1 in Doc/Makefile.

Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling issue.

Fixed support of non-ASCII names in functions :func:`msilib.OpenDatabase` and :func:`msilib.init_database` and non-ASCII SQL in method :meth:`msilib.Database.OpenView`.

Updates Windows OpenSSL to 1.1.1g

Changes the registered MIME type for .py files on Windows to text/x-python instead of text/plain.

Manually define IO_REPARSE_TAG_APPEXECLINK in case some old Windows SDK doesn't have it.

Include winsock2.h in pytime.c for timeval.

Add IPv6 support to :mod:`asyncio` datagram endpoints in ProactorEventLoop. Change the raised exception for unknown address families to ValueError as it's not coming from Windows API.

Avoid opening Finder window if running installer from the command line. Patch contributed by Rick Heil.

Fix configure error when building on macOS 11. Note that the current Python release was released shortly after the first developer preview of macOS 11 (Big Sur); there are other known issues with building and running on the developer preview. Big Sur is expected to be fully supported in a future bugfix release of Python 3.8.x and with 3.9.0.

fixed an XDG settings issue not allowing macos to open browser in webbrowser.py

Update macOS installer to use SQLite 3.32.2.

Make Open Module open a special module such as os.path.

Make context menu Cut and Copy work again when right-clicking within a selection.

Make test_idle pass when run after import.

Update multissltest helper to test with latest OpenSSL 1.0.2, 1.1.0, 1.1.1, and 3.0.0-alpha.

Fix multissltest tool. OpenSSL has changed download URL for old releases. The multissltest tool now tries to download from current and old download URLs.