Optimized creating bytes and bytearray from byte-like objects and iterables. Speed up to 3 times for short objects. Original patch by Naoki Inada.
Large sections of repeated lines in tracebacks are now abbreviated as "[Previous line repeated {count} more times]" by the builtin traceback rendering. Patch by Emanuel Barry.
Decreased an overhead of parsing keyword arguments in functions implemented with using Argument Clinic.
Now importing already imported modules is up to 2.5 times faster.
Include <wincrypt.h> to help with Min GW building.
On Windows, rename the privately defined REPARSE_DATA_BUFFER structure to avoid conflicting with the definition from Min GW.
Add integer overflow check in bytearray.extend(). Patch by Xiang Zhang.
Don't rely on wrapping for overflow check in PySequence_Tuple(). Patch by Xiang Zhang.
Avoid signed integer overflow in list and tuple operations. Patch by Xiang Zhang.
Standard __import__() no longer look up "__import__" in globals or builtins for importing submodules or "from import". Fixed a crash if raise a warning about unabling to resolve package from __spec__ or __package__.
Respect the PYTHONCASEOK environment variable under Windows.
Make having too many statically nested blocks a SyntaxError instead of SystemError.
Implemented PEP 487 (Simpler customization of class creation). Upon subclassing, the __init_subclass__ classmethod is called on the base class. Descriptors are initialized with __set_name__ after class creation.
Add PEP 519/__fspath__() support to the os and os.path modules. Includes code from Jelle Zijlstra. (See also: bpo-27524)
Add Collections to collections.abc. Patch by Ivan Levkivskyi, docs by Neil Girdhar.
Support "anti-registration" of special methods from various ABCs, like __hash__, __iter__ or __len__. All these (and several more) can be set to None in an implementation class and the behavior will be as if the method is not defined at all. (Previously, this mechanism existed only for __hash__, to make mutable classes unhashable.) Code contributed by Andrew Barnert and Ivan Levkivskyi.
Support keyword arguments to zlib.decompress(). Patch by Xiang Zhang.
Prevent segfault after interpreter re-initialization due to ref count problem introduced in code for Issue #27038 in 3.6.0a3. Patch by Xiang Zhang.
The verbose and rename parameters for collections.namedtuple are now keyword-only.
Add mathematical constant tau to math and cmath. See also PEP 628.
traceback.StackSummary.format now abbreviates large sections of repeated lines as "[Previous line repeated {count} more times]" (this change then further affects other traceback display operations in the module). Patch by Emanuel Barry.
Add to concurrent.futures.thread.ThreadPoolExecutor() the ability to specify a thread name prefix.
Add geometric_mean and harmonic_mean to statistics module.
code.interact now prints an message when exiting.
Add autorange method to timeit.Timer objects.
Correct some memory management errors server_hostname in _ssl.wrap_socket().
unittest.mock.create_autospec() now works properly for subclasses of property() and other data descriptors. Removes the never publicly used, never documented unittest.mock.DescriptorTypes tuple.
Undocumented support of general bytes-like objects as path in compile() and similar functions is now deprecated.
Undocumented support of general bytes-like objects as paths in os functions is now deprecated.
Add _order_ compatibility shim to enum.Enum for Python 2/3 code bases.
Added tzinfo keyword argument to datetime.combine.
In the curses module, raise an error if window.getstr() or window.instr() is passed a negative value.
Fix possible usage of uninitialized memory in operator.methodcaller.
Fix possible Py_DECREF on unowned object in _sre.
Fix possible integer overflow in binascii.b2a_qp.
Fix possible integer overflow in the _csv module for large record lengths.
Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates that the script is in CGI mode.
Remove dead code from the "array" module's slice handling. Patch by Chuck.
Do not assume sched.h defines any SCHED_* constants.
In the "zlib" module, fix handling of large buffers (typically 4 GiB) when compressing and decompressing. Previously, inputs were limited to 4 GiB, and compression and decompression operations did not properly handle results of 4 GiB.
Implemented PEP 495 (Local Time Disambiguation).
Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module.
Expose the EPOLLRDHUP and POLLRDHUP constants in the select module.
Avoid signed int negation overflow in the "audioop" module.
Release GIL in nt._isdir
Fixed unpickling by the persistent ID with protocol 0. Original patch by Alexandre Vassalotti.
Avoid an unintentional reference cycle in email.feedparser.
Fix a segfault when os.fspath() called an __fspath__() method that raised an exception. Patch by Xiang Zhang.
text_textview and test_autocomplete now pass when re-run in the same process. This occurs when test_idle fails when run with the -w option but without -jn. Fix warning from test_config.
Put query response validation error messages in the query box itself instead of in a separate massagebox. Redo tests to match. Add Mac OSX refinements. Original patch by Mark Roseman.
Escape key now closes Query box as cancelled.
IDLE: tab after initial whitespace should tab, not autocomplete. This fixes problem with writing docstrings at least twice indented.
Explicitly return None when there are also non-None returns. In a few cases, reverse a condition and eliminate a return.
IDLE no longer runs buggy code because of its tkinter imports. Users must include the same imports required to run directly in Python.
Add 'IDLE Modern Unix' to the built-in key sets. Make the default key set depend on the platform. Add tests for the changes to the config module.
add line counter and crc to IDLE configHandler test dump.
Skip a test in test_pkgutil as needed that doesn't work when __name__ ==
__main__
. Patch by SilentGhost.
Add test.support.unix_shell as the path to the default shell.
In test_pyexpat, avoid testing an error message detail that changed in Expat 2.2.0.
Prevent assertion error when running test_ast with coverage enabled: ensure code object has a valid first line number. Patch suggested by Ivan Levkivskyi.
Update bundled Tcl/Tk to 8.6.6.
Adds PEP 514 metadata to Windows installer
Adds a shell extension to the launcher so that drag and drop works correctly.
Enables proper Windows styles in python[w].exe manifest.
Suppress spurious build warnings when updating importlib's bootstrap files. Patch by Xiang Zhang
Correct the references to Modules/python.exp, which is required on AIX. The references were accidentally changed in 3.5.0a1.
CPP invocation in configure must use CPPFLAGS. Patch by Chi Hsuan Yen.
The configure script now inserts comments into the makefile to prevent the pgen and _freeze_importlib executables from being cross-compiled.
Set PYTHON_FOR_GEN in configure as the Python program to be used for file generation during the build.
Avoid C++ compilation errors on FreeBSD and OS X. Also update FreedBSD version checks for the original ctype UTF-8 workaround.