Skip to content

Latest commit

 

History

History
792 lines (557 loc) · 14.4 KB

3.6.0a2.rst

File metadata and controls

792 lines (557 loc) · 14.4 KB

Update expat to 2.1.1, fixes :cve:`2015-1283`.

Fix TLS stripping vulnerability in smtplib, :cve:`2016-0772`. Reported by Team Oststrom.

On Linux, :func:`os.urandom` now calls getrandom() with GRND_NONBLOCK to fall back on reading /dev/urandom if the urandom entropy pool is not initialized yet. Patch written by Colm Buckley.

Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes. Patch by Demur Rumed.

Raise NotSupportedError if sqlite3 is older than 3.3.1. Patch by Dave Sawyer.

Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling function with generalized unpacking (PEP 448) and conflicting keyword names could cause undefined behavior.

Added BUILD_CONST_KEY_MAP opcode.

Add support for os.PathLike objects to open() (part of PEP 519).

Fixed SystemError if a custom opener (for open()) returns a negative number without setting an exception.

float() now always return an instance of exact float. The deprecation warning is emitted if __float__ returns an instance of a strict subclass of float. In a future versions of Python this can be an error.

Python interpreter is now about 7% faster due to optimized instruction decoding. Based on patch by Demur Rumed.

Python interpreter now uses 16-bit wordcode instead of bytecode. Patch by Demur Rumed.

Allow assigning to an empty target list in round brackets: () = iterable.

Update the __aiter__ protocol: instead of returning an awaitable that resolves to an asynchronous iterator, the asynchronous iterator should be returned directly. Doing the former will trigger a PendingDeprecationWarning.

Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants exposed on the API which are not implemented on GNU/Hurd. They would not work at runtime anyway.

Generated names for Tkinter widgets are now more meaningful and recognizable.

Fixed crashes in repr of recursive ElementTree.Element and functools.partial objects.

Improved repr for Tkinter event objects.

Improve exception message of IPv{4,6}Network.__getitem__. Patch by Gareth Rees.

Implement missing IPv4Address.is_global property. It was documented since 07a5610bae9d. Initial patch by Roger Luethi.

Removed deprecated support of universal newlines mode from ZipFile.open().

Unknown escapes consisting of '\' and an ASCII letter in regular expressions now are errors. The re.LOCALE flag now can be used only with bytes patterns.

Add os.PathLike support to DirEntry (part of PEP 519). Initial patch by Jelle Zijlstra.

distutils register command now decodes HTTP responses correctly. Initial patch by ingrid.

Add os.PathLike support to pathlib, removing its provisional status (part of PEP 519). Initial patch by Dusty Phillips.

Add support for os.PathLike objects to os.fsencode() and os.fsdecode() (part of PEP 519).

Introduce os.PathLike and os.fspath() (part of PEP 519).

A new version of typing.py provides several new classes and features: @overload outside stubs, Reversible, DefaultDict, Text, ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug fixes (note that some of the new features are not yet implemented in mypy or other static analyzers). Also classes for PEP 492 (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact they made it into 3.5.1 but were never mentioned).

Stop http.server.BaseHTTPRequestHandler.send_error() from sending a message body for 205 Reset Content. Also, don't send Content header fields in responses that don't have a body. Patch by Susumu Koshiba.

Fix the "platform" module to tolerate when sys.version contains truncated build information.

Added missing APIs to __all__ to match the documented APIs for the following modules: cgi, mailbox, mimetypes, plistlib and smtpd. Patches by Jacek Kołodziej.

In the zlib module, allow decompressing raw Deflate streams with a predefined zdict. Based on patch by Xiang Zhang.

Fix wsgiref.simple_server.WSGIRequestHandler to completely write data to the client. Previously it could do partial writes and truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout doing partial writes, but this is deprecated.

Use _sysconfigdata.py to initialize distutils.sysconfig.

:mod:`inspect` now reports the implicit .0 parameters generated by the compiler for comprehension and generator expression scopes as if they were positional-only parameters called implicit0. Patch by Jelle Zijlstra.

Add __all__ to :mod:`string`. Patch by Emanuel Barry.

subprocess.Popen.communicate now correctly ignores BrokenPipeError when the child process dies before .communicate() is called in more/all circumstances.

signal, socket, and ssl module IntEnum constant name lookups now return a consistent name for values having multiple names. Ex: signal.Signals(6) now refers to itself as signal.SIGALRM rather than flipping between that and signal.SIGIOT based on the interpreter's hash randomization seed.

Clarify the subprocess.CalledProcessError error message text when the child process died due to a signal.

Don't define socketserver.Forking* names on platforms such as Windows that do not support os.fork().

distutils.upload now correctly handles HTTPError. Initial patch by Claudiu Popa.

Replace custom parse tree validation in the parser module with a simple DFA validator.

Fix SSLContext._load_windows_store_certs fails with PermissionError

Avoid creating duplicate filters when using filterwarnings and simplefilter. Based on patch by Alex Shkop.

winreg.QueryValueEx() now return an integer for REG_QWORD type.

subprocess.Popen destructor now emits a ResourceWarning warning if the child process is still running.

Optimize pickle.load() and pickle.loads(), up to 10% faster to deserialize a lot of small objects.

New keyword only parameters in reset_mock call.

Paste with text selected now replaces the selection on X11. This matches how paste works on Windows, Mac, most modern Linux apps, and ttk widgets. Original patch by Serhiy Storchaka.

Switch all scrollbars in IDLE to ttk versions. Where needed, minimal tests are added to cover changes.

IDLE requires tk 8.5 and availability ttk widgets. Delete now unneeded tk version tests and code for older versions. Add test for IDLE syntax colorizer.

idlelib.macosx.isXyzTk functions initialize as needed.

move Aqua unbinding code, which enable context menus, to macosx.

Make clear in idlelib.idle_test.__init__ that the directory is a private implementation of test.test_idle and tool for maintainers.

Stop 'ThemeChanged' warnings when running IDLE tests. These persisted after other warnings were suppressed in #20567. Apply Serhiy Storchaka's update_idletasks solution to four test files. Record this additional advice in idle_test/README.txt

Revise idle_test/README.txt with advice about avoiding tk warning messages from tests. Apply advice to several IDLE tests.

Update idlelib/README.txt with new file names and event handlers.

Remove obsolete code not used by IDLE.

Make colorizer htest and turtledemo work with dark themes. Move code for configuring text widget colors to a new function.

Rename many idlelib/*.py and idle_test/test_*.py files. Edit files to replace old names with new names when the old name referred to the module rather than the class it contained. See the issue and IDLE section in What's New in 3.6 for more.

When tk reports font size as 0, change to size 10. Such fonts on Linux prevented the configuration dialog from opening.

Add test for IDLE's percolator. Original patch by Saimadhav Heblikar.

Add test for IDLE's replace dialog. Original patch by Saimadhav Heblikar.

Add test for IDLE's search dialog. Original patch by Westley Martínez.

Add test for undo delegator. Patch mostly by Saimadhav Heblikar .

Add ConfigDialog.remove_var_callbacks to stop memory leaks.

Add more asserts to test_delegator.

Change the default PYTHONDOCS URL to "https:", and fix the resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik Nadikuditi.

Document the new PEP 448 unpacking syntax of 3.5.

Add remaining doc links to source code for Python-coded modules. Patch by Yoni Lavi.

regrtest now uses subprocesses when the -j1 command line option is used: each test file runs in a fresh child process. Before, the -j1 option was ignored.

Tools/buildbot/test.bat script now uses -j1 by default to run each test file in fresh child process.

The py.exe launcher now defaults to Python 3. The Windows launcher py.exe no longer prefers an installed Python 2 version over Python 3 by default when used interactively.

Remove unused and outdated icons. (See also: python/pythondotorg#945)

Fix the cross-compiling pgen rule for in-tree builds. Patch by Xavier de Gaye.

Update OS X 10.5+ 32-bit-only installer to build and link with OpenSSL 1.0.2h.

Add the PyOS_FSPath() function (part of PEP 519).

PyArg_ParseTupleAndKeywords() now supports positional-only parameters.

Argument Clinic now supports positional-only and keyword parameters in the same function.