Skip to content

Latest commit

 

History

History
654 lines (461 loc) · 13.3 KB

3.7.0b2.rst

File metadata and controls

654 lines (461 loc) · 13.3 KB

The ssl module now allows users to perform their own IDN en/decoding when using SNI.

Update Valgrind suppression list to account for the rename of Py_ADDRESS_IN_RANG to address_in_range.

Remove the new API added in bpo-31356 (gc.ensure_disabled() context manager).

For namespace packages, ensure that both __file__ and __spec__.origin are set to None.

Make sure __spec__.loader matches __loader__ for namespace packages.

Fix the warning messages for Python/ast_unparse.c. Patch by Stéphane Wirtel

Fix possible crashing in builtin Unicode decoders caused by write out-of-bound errors when using customized decode error handlers.

For dataclasses, disallow inheriting frozen from non-frozen classes, and also disallow inheriting non-frozen from frozen classes. This restriction will be relaxed at a future date.

Fixed tarfile.itn handling of out-of-bounds float values. Patch by Joffrey Fuhrer.

Direct instantiation of SSLSocket and SSLObject objects is now prohibited. The constructors were never documented, tested, or designed as public constructors. Users were suppose to use ssl.wrap_socket() or SSLContext.

Remove the tri-state parameter "hash", and add the boolean "unsafe_hash". If unsafe_hash is True, add a __hash__ function, but if a __hash__ exists, raise TypeError. If unsafe_hash is False, add a __hash__ based on the values of eq= and frozen=. The unsafe_hash=False behavior is the same as the old hash=None behavior. unsafe_hash=False is the default, just as hash=None used to be.

Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3 for future compatibility with OpenSSL 1.1.1.

The ssl module now detects missing NPN support in LibreSSL.

dbm.open() now encodes filename with the filesystem encoding rather than default encoding.

In os.dup2, don't check every call whether the dup3 syscall exists or not.

nt._getfinalpathname, nt._getvolumepathname and nt._getdiskusage now correctly convert from bytes.

Emit a :exc:`DeprecationWarning` when using or importing an ABC directly from :mod:`collections` rather than from :mod:`collections.abc`.

Rewrite confusing message from setup.py upload from "No dist file created in earlier command" to the more helpful "Must create and upload files in one command".

Make sure sys.argv remains as a list when running trace.

_abc module is added. It is a speedup module with C implementations for various functions and methods in abc. Creating an ABC subclass and calling isinstance or issubclass with an ABC subclass are up to 1.5x faster. In addition, this makes Python start-up up to 10% faster. Note that the new implementation hides internal registry and caches, previously accessible via private attributes _abc_registry, _abc_cache, and _abc_negative_cache. There are three debugging helper methods that can be used instead _dump_registry, _abc_registry_clear, and _abc_caches_clear.

Fixed asyncio.Condition issue which silently ignored cancellation after notifying and cancelling a conditional lock. Patch by Bar Harel.

ssl.match_hostname() has been simplified and no longer depends on re and ipaddress module for wildcard and IP addresses. Error reporting for invalid wildcards has been improved.

socket: Remove TCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on older version Windows during run-time.

Fixed refleaks of __init__() methods in various modules. (Contributed by Oren Milman)

Fixed guessing quote and delimiter in csv.Sniffer.sniff() when only the last field is quoted. Patch by Jake Davis.

collections.ChainMap() preserves the order of the underlying mappings.

:func:`fnmatch.translate()` no longer produces patterns which contain set operations. Sets starting with '[' or containing '--', '&&', '~~' or '||' will be interpreted differently in regular expressions in future versions. Currently they emit warnings. fnmatch.translate() now avoids producing patterns containing such sets by accident.

Implement native fast sendfile for Windows proactor event loop.

Fix a rare but potential pre-exec child process deadlock in subprocess on POSIX systems when marking file descriptors inheritable on exec in the child process. This bug appears to have been introduced in 3.4.

The ctypes module used to depend on indirect linking for dlopen. The shared extension is now explicitly linked against libdl on platforms with dl.

Implement asyncio.TimerHandle.when() method.

Use mod_spec.parent when running modules with pdb

Fixed asyncio.Lock() safety issue which allowed acquiring and locking the same lock multiple times, without it being free. Patch by Bar Harel.

Do not include name field in SMTP envelope from address. Patch by Stéphane Wirtel

Add TLSVersion constants and SSLContext.maximum_version / minimum_version attributes. The new API wraps OpenSSL 1.1 https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html feature.

Internal implementation details of ssl module were cleaned up. The SSLSocket has one less layer of indirection. Owner and session information are now handled by the SSLSocket and SSLObject constructor. Channel binding implementation has been simplified.

Fix the error handling in Aifc_read.initfp() when the SSND chunk is not found. Patch by Zackery Spytz.

Add Ttk spinbox widget to :mod:`tkinter.ttk`. Patch by Alan D Moore.

Various functions returning tuple containing IPv6 addresses now omit %scope part since the same information is already encoded in scopeid tuple item. Especially this speeds up :func:`socket.recvfrom` when it receives multicast packet since useless resolving of network interface name is omitted.

The TarFile class now recurses directories in a reproducible way.

The ZipFile class now recurses directories in a reproducible way.

The ssl module function ssl.wrap_socket() has been de-emphasized and deprecated in favor of the more secure and efficient SSLContext.wrap_socket() method.

Clarify docs for -O and -OO. Patch by Terry Reedy.

Add documentation for the contextvars module (PEP 567).

Update link to w3c doc for xml default namespaces.

Update :mod:`test.support` documentation.

Document :meth:`__getattr__` behavior when property :meth:`get` method raises :exc:`AttributeError`.

Modify RE examples in documentation to use raw strings to prevent :exc:`DeprecationWarning` and add text to REGEX HOWTO to highlight the deprecation.

Improve docstrings for pathlib.PurePath subclasses.

Add tests to verify connection with secp ECDH curves.

Fix the python debug build when using COUNT_ALLOCS.

Update Tcl and Tk versions to 8.6.8

Fixed WindowsConsoleIO.write() for writing empty data.

Ensures activate.bat can handle Unicode contents.

Improves handling of denormalized executable path when launching Python.

Use the correct encoding for ipconfig output in the uuid module. Patch by Segev Finer.

Fix :func:`os.readlink` on Windows, which was mistakenly treating the PrintNameOffset field of the reparse data buffer as a number of characters instead of bytes. Patch by Craig Holmquist and SSE4.

Update macOS 10.9+ installer to Tcl/Tk 8.6.8.

Change str to code in pyparse.

Remove unused code in pyparse module.

Add tests for pyparse.

Using the system and place-dependent default encoding for open() is a bad idea for IDLE's system and location-independent files.

Add "encoding=utf-8" to open() in IDLE's test_help_about. GUI test test_file_buttons() only looks at initial ascii-only lines, but failed on systems where open() defaults to 'ascii' because readline() internally reads and decodes far enough ahead to encounter a non-ascii character in CREDITS.txt.

Update configdialog General tab docstring to add new widgets to the widget list.

Fix pygettext not extracting docstrings for functions with type annotated arguments. Patch by Toby Harradine.