From: R David Murray Date: Fri, 19 Aug 2016 01:45:12 +0000 (-0400) Subject: Rewrap long lines in Misc/NEWS. X-Git-Tag: v3.6.0b1~670 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a400fd62a292e43df75ca687c4d350e9a98af44;p=python Rewrap long lines in Misc/NEWS. Also moved news item for #2466 to the correct place. --- 2a400fd62a292e43df75ca687c4d350e9a98af44 diff --cc Misc/NEWS index dc73485b19,37a16d0d0d..bcc808713d --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -14,41 -14,17 +14,45 @@@ Core and Builtin In a brand new thread, raise a RuntimeError since there is no active exception to reraise. Patch written by Xiang Zhang. -- Issue #27419: Standard __import__() no longer look up "__import__" in globals - or builtins for importing submodules or "from import". Fixed handling an - error of non-string package name. +Library +------- -- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. ++- Issue #2466: posixpath.ismount now correctly recognizes mount points which ++ the user does not have permission to access. + -- Issue #27514: Make having too many statically nested blocks a SyntaxError - instead of SystemError. +- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH + for shared libraries. -- Issue #27473: Fixed possible integer overflow in bytes and bytearray - concatenations. Patch by Xiang Zhang. +- Issue #12713: Allowed abbreviation of subcommands by end-users for users of + argparse. + + +What's New in Python 3.6.0 alpha 4 +================================== + +*Release date: 2016-08-15* + +Core and Builtins +----------------- + +- Issue #27704: Optimized creating bytes and bytearray from byte-like objects + and iterables. Speed up to 3 times for short objects. Original patch by + Naoki Inada. + +- Issue #26823: 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. + +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions + implemented with using Argument Clinic. + - - Issue #22557: Now importing already imported modules is up to 2.5 times faster. ++- Issue #22557: Now importing already imported modules is up to 2.5 times ++ faster. + +- Issue #17596: Include to help with Min GW building. + +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER + structure to avoid conflicting with the definition from Min GW. - Issue #27507: Add integer overflow check in bytearray.extend(). Patch by Xiang Zhang. @@@ -76,57 -38,14 +80,55 @@@ Library ------- --- Issue #2466: posixpath.ismount now correctly recognizes mount points which -- the user does not have permission to access. - +- Issue #25958: 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. + +- Issue #16764: Support keyword arguments to zlib.decompress(). Patch by + Xiang Zhang. + +- Issue #27736: 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. + - - Issue #25628: The *verbose* and *rename* parameters for collections.namedtuple - are now keyword-only. ++- Issue #25628: The *verbose* and *rename* parameters for ++ collections.namedtuple are now keyword-only. + +- Issue #12345: Add mathemathical constant tau to math and cmath. See also + PEP 628. + +- Issue #26823: 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. + +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor() + the ability to specify a thread name prefix. + +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module. + +- Issue #27573: code.interact now prints an message when exiting. + +- Issue #6422: Add autorange method to timeit.Timer objects. - - Issue #27773: Correct some memory management errors server_hostname in _ssl.wrap_socket(). + - Issue #27773: Correct some memory management errors server_hostname in + _ssl.wrap_socket(). - Issue #26750: unittest.mock.create_autospec() now works properly for - subclasses of property() and other data descriptors. + subclasses of property() and other data descriptors. Removes the never + publicly used, never documented unittest.mock.DescriptorTypes tuple. + +- Issue #26754: Undocumented support of general bytes-like objects + as path in compile() and similar functions is now deprecated. + +- Issue #26800: Undocumented support of general bytes-like objects + as paths in os functions is now deprecated. + +- Issue #27661: 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. @@@ -319,13 -118,10 +322,13 @@@ Librar when exiting, let the new chained one through. This avoids the PEP 479 bug described in issue25782. - - [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on Linux. - Truncate size to INT_MAX and loop until we collected enough random bytes, - instead of casting a directly Py_ssize_t to int. + - [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on + Linux. Truncate size to INT_MAX and loop until we collected enough random + bytes, instead of casting a directly Py_ssize_t to int. +- Issue #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement. + Initial patch by Alex LordThorsen. + - Issue #26386: Fixed ttk.TreeView selection operations with item id's containing spaces. @@@ -371,12 -146,6 +374,12 @@@ IDL Previously, when IDLE was started from a console or by import, a cascade of warnings was emitted. Patch by Serhiy Storchaka. - - Issue #24137: Run IDLE, test_idle, and htest with tkinter default root disabled. - Fix code and tests that fail with this restriction. - Fix htests to not create a second and redundant root and mainloop. ++- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root ++ disabled. Fix code and tests that fail with this restriction. Fix htests to ++ not create a second and redundant root and mainloop. + +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import. + C API ----- @@@ -411,265 -166,43 +414,266 @@@ Tools/Demo - Issue #27418: Fixed Tools/importbench/importbench.py. -Windows +Documentation +------------- + +- Issue #27285: Update documentation to reflect the deprecation of ``pyvenv`` + and normalize on the term "virtual environment". Patch by Steve Piercy. + +Tests +----- + +- Issue #27027: Added test.support.is_android that is True when this is an + Android build. + + +What's New in Python 3.6.0 alpha 2 +================================== + +*Release date: 2016-06-13* + +Core and Builtins +----------------- + +- Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes. + Patch by Demur Rumed. + +- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1. + Patch by Dave Sawyer. + +- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling + function with generalized unpacking (PEP 448) and conflicting keyword names + could cause undefined behavior. + +- Issue #27140: Added BUILD_CONST_KEY_MAP opcode. + +- Issue #27186: Add support for os.PathLike objects to open() (part of PEP 519). + +- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a + negative number without setting an exception. + +- Issue #26983: 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. + +- Issue #27097: Python interpreter is now about 7% faster due to optimized + instruction decoding. Based on patch by Demur Rumed. + +- Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. + Patch by Demur Rumed. + +- Issue #23275: Allow assigning to an empty target list in round brackets: + () = iterable. + +- Issue #27243: 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. + + +Library ------- -- Issue #27469: Adds a shell extension to the launcher so that drag and drop - works correctly. +- 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. -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest. +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and + functools.partial objects. -Build ------ +- Issue #27294: Improved repr for Tkinter event objects. -- Issue #25825: Correct the references to Modules/python.exp, which is - required on AIX. The references were accidentally changed in 3.5.0a1. +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__. + Patch by Gareth Rees. -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by - Chi Hsuan Yen. +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. - - [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. Reported by Team - Oststrom -- Issue #27641: The configure script now inserts comments into the makefile - to prevent the pgen and _freeze_importlib executables from being cross- - compiled. ++- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. ++ Reported by Team Oststrom. -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be - used for file generation during the build. +- Issue #21386: Implement missing IPv4Address.is_global property. It was + documented since 07a5610bae9d. Initial patch by Roger Luethi. -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. - Also update FreedBSD version checks for the original ctype UTF-8 workaround. +- Issue #27029: Removed deprecated support of universal newlines mode from + ZipFile.open(). +- Issue #27030: 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. -What's New in Python 3.5.2? -=========================== +- Issue #27186: Add os.PathLike support to DirEntry (part of PEP 519). + Initial patch by Jelle Zijlstra. -Release date: 2016-06-26 +- Issue #20900: distutils register command now decodes HTTP responses + correctly. Initial patch by ingrid. -Core and Builtins ------------------ +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional + status (part of PEP 519). Initial patch by Dusty Phillips. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and + os.fsdecode() (part of PEP 519). + +- Issue #27186: 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). + +- Issue #25738: 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. + +- Issue #21313: Fix the "platform" module to tolerate when sys.version + contains truncated build information. + - - [Security] Issue #26839: 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. ++- [Security] Issue #26839: 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. + +- Issue #23883: 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. + +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams + with a predefined zdict. Based on patch by Xiang Zhang. + +- Issue #24291: 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. + +- Issue #21272: Use _sysconfigdata.py to initialize distutils.sysconfig. + +- Issue #19611: :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. + +- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. + +- Issue #26373: 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. + +- Issue #27167: Clarify the subprocess.CalledProcessError error message text + when the child process died due to a signal. + +- Issue #25931: Don't define socketserver.Forking* names on platforms such + as Windows that do not support os.fork(). + +- Issue #21776: distutils.upload now correctly handles HTTPError. + Initial patch by Claudiu Popa. + +- Issue #26526: Replace custom parse tree validation in the parser + module with a simple DFA validator. + +- Issue #27114: Fix SSLContext._load_windows_store_certs fails with + PermissionError + +- Issue #18383: Avoid creating duplicate filters when using filterwarnings + and simplefilter. Based on patch by Alex Shkop. + +- Issue #23026: winreg.QueryValueEx() now return an integer for REG_QWORD type. + +- Issue #26741: subprocess.Popen destructor now emits a ResourceWarning warning + if the child process is still running. + +- Issue #27056: Optimize pickle.load() and pickle.loads(), up to 10% faster + to deserialize a lot of small objects. + +- Issue #21271: New keyword only parameters in reset_mock call. + +IDLE +---- + +- Issue #5124: 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. + +- Issue #24750: Switch all scrollbars in IDLE to ttk versions. + Where needed, minimal tests are added to cover changes. + +- Issue #24759: 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 colorizoer. + +- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed. + +- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx. + +- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory + is a private implementation of test.test_idle and tool for maintainers. + +- Issue #27196: 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 + +- Issue #20567: Revise idle_test/README.txt with advice about avoiding + tk warning messages from tests. Apply advice to several IDLE tests. + +- Issue #24225: Update idlelib/README.txt with new file names + and event handlers. + +- Issue #27156: Remove obsolete code not used by IDLE. Replacements: + 1. help.txt, replaced by help.html, is out-of-date and should not be used. + Its dedicated viewer has be replaced by the html viewer in help.py. + 2. ‘`import idlever; I = idlever.IDLE_VERSION`’ is the same as + ‘`import sys; I = version[:version.index(' ')]`’ + 3. After ‘`ob = stackviewer.VariablesTreeItem(*args)`’, + ‘`ob.keys() == list(ob.object.keys)`’. + 4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk + +- Issue #27117: Make colorizer htest and turtledemo work with dark themes. + Move code for configuring text widget colors to a new function. + +- Issue #24225: 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. + +- Issue #26673: When tk reports font size as 0, change to size 10. + Such fonts on Linux prevented the configuration dialog from opening. + +- Issue #21939: Add test for IDLE's percolator. + Original patch by Saimadhav Heblikar. + +- Issue #21676: Add test for IDLE's replace dialog. + Original patch by Saimadhav Heblikar. + +- Issue #18410: Add test for IDLE's search dialog. + Original patch by Westley Martínez. + +- Issue #21703: Add test for undo delegator. Patch mostly by + Saimadhav Heblikar . + +- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. + +- Issue #23977: Add more asserts to test_delegator. + +Documentation +------------- + +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the + resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik + Nadikuditi. + +- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. + +- Issue #22558: Add remaining doc links to source code for Python-coded modules. + Patch by Yoni Lavi. Tests ----- @@@ -893,12 -321,10 +897,13 @@@ Core and Builtin This allows sys.getsize() to work correctly with their subclasses with __slots__ defined. - - Issue #25709: Fixed problem with in-place string concatenation and utf-8 cache. + - Issue #25709: Fixed problem with in-place string concatenation and utf-8 + cache. -- Issue #27147: Mention PEP 420 in the importlib docs. +- Issue #5319: New Py_FinalizeEx() API allowing Python to set an exit status + of 120 on failure to flush buffered streams. + +- Issue #25485: telnetlib.Telnet is now a context manager. - Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside __getattr__. @@@ -1225,13 -538,8 +1230,13 @@@ Librar - Issue #26560: Avoid potential ValueError in BaseHandler.start_response. Initial patch by Peter Inglesby. +- Issue #26567: Add a new function :c:func:`PyErr_ResourceWarning` function to + pass the destroyed object. Add a *source* attribute to + :class:`warnings.WarningMessage`. Add warnings._showwarnmsg() which uses + tracemalloc to get the traceback where source object was allocated. + - - [Security] Issue #26313: ssl.py _load_windows_store_certs fails if windows cert store - is empty. Patch by Baji. + - [Security] Issue #26313: ssl.py _load_windows_store_certs fails if windows + cert store is empty. Patch by Baji. - Issue #26569: Fix :func:`pyclbr.readmodule` and :func:`pyclbr.readmodule_ex` to support importing packages. @@@ -1259,19 -564,13 +1264,20 @@@ - Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets. -- Issue #15068: Got rid of excessive buffering in the fileinput module. - The bufsize parameter is no longer used. +- Issue #15068: Got rid of excessive buffering in fileinput. + The bufsize parameter is now deprecated and ignored. + +- Issue #19475: Added an optional argument timespec to the datetime + isoformat() method to choose the precision of the time component. - Issue #2202: Fix UnboundLocalError in - AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu Dupuy. + AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu + Dupuy. +- Issue #26167: Minimized overhead in copy.copy() and copy.deepcopy(). + Optimized copying and deepcopying bytearrays, NotImplemented, slices, + short lists, tuples, dicts, sets. + - Issue #25718: Fixed pickling and copying the accumulate() iterator with total is None. @@@ -1307,13 -601,8 +1313,14 @@@ the connected socket) when verify_request() returns false. Patch by Aviv Palivoda. +- Issue #23430: Change the socketserver module to only catch exceptions + raised from a request handler that are derived from Exception (instead of + BaseException). Therefore SystemExit and KeyboardInterrupt no longer + trigger the handle_error() method, and will now to stop a single-threaded + server. + - - [Security] Issue #25939: On Windows open the cert store readonly in ssl.enum_certificates. + - [Security] Issue #25939: On Windows open the cert store readonly in + ssl.enum_certificates. - Issue #25995: os.walk() no longer uses FDs proportional to the tree depth. @@@ -1370,329 -641,90 +1377,330 @@@ - Issue #16620: Fixed AttributeError in msilib.Directory.glob(). -- Issue #26013: Added compatibility with broken protocol 2 pickles created - in old Python 3 versions (3.4.3 and lower). +- Issue #26013: Added compatibility with broken protocol 2 pickles created + in old Python 3 versions (3.4.3 and lower). + +- Issue #26129: Deprecated accepting non-integers in grp.getgrgid(). + +- Issue #25850: Use cross-compilation by default for 64-bit Windows. + +- Issue #25822: Add docstrings to the fields of urllib.parse results. + Patch contributed by Swati Jaiswal. + +- Issue #22642: Convert trace module option parsing mechanism to argparse. + Patch contributed by SilentGhost. + +- Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars + appearing before $() vars. + +- Issue #26069: Remove the deprecated apis in the trace module. + +- Issue #22138: Fix mock.patch behavior when patching descriptors. Restore + original values after patching. Patch contributed by Sean McCully. + +- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode + option if it is safe to do so. + +- Issue #26012: Don't traverse into symlinks for ** pattern in + pathlib.Path.[r]glob(). + +- Issue #24120: Ignore PermissionError when traversing a tree with + pathlib.Path.[r]glob(). Patch by Ulrich Petri. + +- Issue #21815: Accept ] characters in the data portion of imap responses, + in order to handle the flags with square brackets accepted and produced + by servers such as gmail. + +- Issue #25447: fileinput now uses sys.stdin as-is if it does not have a + buffer attribute (restores backward compatibility). + +- Issue #25971: Optimized creating Fractions from floats by 2 times and from + Decimals by 3 times. + +- Issue #25802: Document as deprecated the remaining implementations of + importlib.abc.Loader.load_module(). + +- Issue #25928: Add Decimal.as_integer_ratio(). + +- Issue #25447: Copying the lru_cache() wrapper object now always works, + independently from the type of the wrapped object (by returning the original + object unchanged). + +- Issue #25768: Have the functions in compileall return booleans instead of + ints and add proper documentation and tests for the return values. + +- Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser. + +- Issue #25860: os.fwalk() no longer skips remaining directories when error + occurs. Original patch by Samson Lee. + +- Issue #25914: Fixed and simplified OrderedDict.__sizeof__. + +- Issue #25869: Optimized deepcopying ElementTree; it is now 20 times faster. + +- Issue #25873: Optimized iterating ElementTree. Iterating elements + Element.iter() is now 40% faster, iterating text Element.itertext() + is now up to 2.5 times faster. + +- Issue #25902: Fixed various refcount issues in ElementTree iteration. + +- Issue #22227: The TarFile iterator is reimplemented using generator. + This implementation is simpler that using class. + +- Issue #25638: Optimized ElementTree.iterparse(); it is now 2x faster. + Optimized ElementTree parsing; it is now 10% faster. + +- Issue #25761: Improved detecting errors in broken pickle data. + +- Issue #25717: Restore the previous behaviour of tolerating most fstat() + errors when opening files. This was a regression in 3.5a1, and stopped + anonymous temporary files from working in special cases. + +- Issue #24903: Fix regression in number of arguments compileall accepts when + '-d' is specified. The check on the number of arguments has been dropped + completely as it never worked correctly anyway. + +- Issue #25764: In the subprocess module, preserve any exception caused by + fork() failure when preexec_fn is used. + +- Issue #25771: Tweak the exception message for importlib.util.resolve_name() + when 'package' isn't specified but necessary. + +- Issue #6478: _strptime's regexp cache now is reset after changing timezone + with time.tzset(). + +- Issue #14285: When executing a package with the "python -m package" option, + and package initialization fails, a proper traceback is now reported. The + "runpy" module now lets exceptions from package initialization pass back to + the caller, rather than raising ImportError. + +- Issue #19771: Also in runpy and the "-m" option, omit the irrelevant + message ". . . is a package and cannot be directly executed" if the package + could not even be initialized (e.g. due to a bad ``*.pyc`` file). + +- Issue #25177: Fixed problem with the mean of very small and very large + numbers. As a side effect, statistics.mean and statistics.variance should + be significantly faster. + +- Issue #25718: Fixed copying object with state with boolean value is false. + +- Issue #10131: Fixed deep copying of minidom documents. Based on patch + by Marian Ganisin. + +- Issue #7990: dir() on ElementTree.Element now lists properties: "tag", + "text", "tail" and "attrib". Original patch by Santoso Wijaya. + +- Issue #25725: Fixed a reference leak in pickle.loads() when unpickling + invalid data including tuple instructions. + +- Issue #25663: In the Readline completer, avoid listing duplicate global + names, and search the global namespace before searching builtins. + +- Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error. + +- Issue #23914: Fixed SystemError raised by unpickler on broken pickle data. + +- Issue #25691: Fixed crash on deleting ElementTree.Element attributes. + +- Issue #25624: ZipFile now always writes a ZIP_STORED header for directory + entries. Patch by Dingyuan Wang. + +- Issue #25626: Change three zlib functions to accept sizes that fit in + Py_ssize_t, but internally cap those sizes to UINT_MAX. This resolves a + regression in 3.5 where GzipFile.read() failed to read chunks larger than 2 + or 4 GiB. The change affects the zlib.Decompress.decompress() max_length + parameter, the zlib.decompress() bufsize parameter, and the + zlib.Decompress.flush() length parameter. + +- Issue #25583: Avoid incorrect errors raised by os.makedirs(exist_ok=True) + when the OS gives priority to errors such as EACCES over EEXIST. + +- Issue #25593: Change semantics of EventLoop.stop() in asyncio. + +- Issue #6973: When we know a subprocess.Popen process has died, do + not allow the send_signal(), terminate(), or kill() methods to do + anything as they could potentially signal a different process. + +- Issue #23883: Added missing APIs to __all__ to match the documented APIs + for the following modules: calendar, csv, enum, fileinput, ftplib, logging, + optparse, tarfile, threading and wave. Also added a + test.support.check__all__() helper. Patches by Jacek Kołodziej, Mauro + S. M. Rodrigues and Joel Taddei. + +- Issue #25590: In the Readline completer, only call getattr() once per + attribute. Also complete names of attributes such as properties and slots + which are listed by dir() but not yet created on an instance. + +- Issue #25498: Fix a crash when garbage-collecting ctypes objects created + by wrapping a memoryview. This was a regression made in 3.5a1. Based + on patch by Eryksun. + +- Issue #25584: Added "escape" to the __all__ list in the glob module. + +- Issue #25584: Fixed recursive glob() with patterns starting with '\*\*'. + +- Issue #25446: Fix regression in smtplib's AUTH LOGIN support. + +- Issue #18010: Fix the pydoc web server's module search function to handle + exceptions from importing packages. + +- Issue #25554: Got rid of circular references in regular expression parsing. + +- Issue #18973: Command-line interface of the calendar module now uses argparse + instead of optparse. + +- Issue #25510: fileinput.FileInput.readline() now returns b'' instead of '' + at the end if the FileInput was opened with binary mode. + Patch by Ryosuke Ito. + +- Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties. + Original patch by John Mark Vandenberg. + +- Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4. + +- Issue #21827: Fixed textwrap.dedent() for the case when largest common + whitespace is a substring of smallest leading whitespace. + Based on patch by Robert Li. + +- Issue #25447: The lru_cache() wrapper objects now can be copied and pickled + (by returning the original object unchanged). + +- Issue #25390: typing: Don't crash on Union[str, Pattern]. + +- Issue #25441: asyncio: Raise error from drain() when socket is closed. + +- Issue #25410: Cleaned up and fixed minor bugs in C implementation of + OrderedDict. + +- Issue #25411: Improved Unicode support in SMTPHandler through better use of + the email package. Thanks to user simon04 for the patch. + +- Move the imp module from a PendingDeprecationWarning to DeprecationWarning. + +- Issue #25407: Remove mentions of the formatter module being removed in + Python 3.6. + +- Issue #25406: Fixed a bug in C implementation of OrderedDict.move_to_end() + that caused segmentation fault or hang in iterating after moving several + items to the start of ordered dict. + +- Issue #25382: pickletools.dis() now outputs implicit memo index for the + MEMOIZE opcode. + +- Issue #25357: Add an optional newline paramer to binascii.b2a_base64(). + base64.b64encode() uses it to avoid a memory copy. + +- Issue #24164: Objects that need calling ``__new__`` with keyword arguments, + can now be pickled using pickle protocols older than protocol version 4. + +- Issue #25364: zipfile now works in threads disabled builds. + +- Issue #25328: smtpd's SMTPChannel now correctly raises a ValueError if both + decode_data and enable_SMTPUTF8 are set to true. + +- Issue #16099: RobotFileParser now supports Crawl-delay and Request-rate + extensions. Patch by Nikolay Bogoychev. + +- Issue #25316: distutils raises OSError instead of DistutilsPlatformError + when MSVC is not installed. + +- Issue #25380: Fixed protocol for the STACK_GLOBAL opcode in + pickletools.opcodes. + +- Issue #23972: Updates asyncio datagram create method allowing reuseport + and reuseaddr socket options to be set prior to binding the socket. + Mirroring the existing asyncio create_server method the reuseaddr option + for datagram sockets defaults to True if the O/S is 'posix' (except if the + platform is Cygwin). Patch by Chris Laws. + +- Issue #25304: Add asyncio.run_coroutine_threadsafe(). This lets you + submit a coroutine to a loop from another thread, returning a + concurrent.futures.Future. By Vincent Michel. + +- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the + first question mark (?) rather than the last. Patch from Xiang Zhang. -- Issue #25850: Use cross-compilation by default for 64-bit Windows. +- Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the + query part of the URL as if it were a path. Patch from Xiang Zhang. -- Issue #17633: Improve zipimport's support for namespace packages. +- Issue #25287: Don't add crypt.METHOD_CRYPT to crypt.methods if it's not + supported. Check if it is supported, it may not be supported on OpenBSD for + example. -- Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars - appearing before $() vars. +- Issue #23600: Default implementation of tzinfo.fromutc() was returning + wrong results in some cases. -- Issue #22138: Fix mock.patch behavior when patching descriptors. Restore - original values after patching. Patch contributed by Sean McCully. +- Issue #25203: Failed readline.set_completer_delims() no longer left the + module in inconsistent state. -- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode - option if it is safe to do so. +- Issue #25011: rlcompleter now omits private and special attribute names unless + the prefix starts with underscores. - - Issue #25209: rlcompleter now can add a space or a colon after completed keyword. -- Issue #26012: Don't traverse into symlinks for ** pattern in - pathlib.Path.[r]glob(). ++- Issue #25209: rlcompleter now can add a space or a colon after completed ++ keyword. -- Issue #24120: Ignore PermissionError when traversing a tree with - pathlib.Path.[r]glob(). Patch by Ulrich Petri. +- Issue #22241: timezone.utc name is now plain 'UTC', not 'UTC-00:00'. -- Issue #25447: fileinput now uses sys.stdin as-is if it does not have a - buffer attribute (restores backward compatibility). +- Issue #23517: fromtimestamp() and utcfromtimestamp() methods of + datetime.datetime now round microseconds to nearest with ties going to + nearest even integer (ROUND_HALF_EVEN), as round(float), instead of rounding + towards -Infinity (ROUND_FLOOR). -- Issue #25447: Copying the lru_cache() wrapper object now always works, - independedly from the type of the wrapped object (by returning the original - object unchanged). +- Issue #23552: Timeit now warns when there is substantial (4x) variance + between best and worst times. Patch from Serhiy Storchaka. -- Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser. +- Issue #24633: site-packages/README -> README.txt. -- Issue #25860: os.fwalk() no longer skips remaining directories when error - occurs. Original patch by Samson Lee. +- Issue #24879: help() and pydoc can now list named tuple fields in the + order they were defined rather than alphabetically. The ordering is + determined by the _fields attribute if present. -- Issue #25914: Fixed and simplified OrderedDict.__sizeof__. +- Issue #24874: Improve speed of itertools.cycle() and make its + pickle more compact. -- Issue #25902: Fixed various refcount issues in ElementTree iteration. +- Fix crash in itertools.cycle.__setstate__() when the first argument wasn't + a list. -- Issue #25717: Restore the previous behaviour of tolerating most fstat() - errors when opening files. This was a regression in 3.5a1, and stopped - anonymous temporary files from working in special cases. +- Issue #20059: urllib.parse raises ValueError on all invalid ports. + Patch by Martin Panter. -- Issue #24903: Fix regression in number of arguments compileall accepts when - '-d' is specified. The check on the number of arguments has been dropped - completely as it never worked correctly anyway. +- Issue #24360: Improve __repr__ of argparse.Namespace() for invalid + identifiers. Patch by Matthias Bussonnier. -- Issue #25764: In the subprocess module, preserve any exception caused by - fork() failure when preexec_fn is used. +- Issue #23426: run_setup was broken in distutils. + Patch from Alexander Belopolsky. -- Issue #6478: _strptime's regexp cache now is reset after changing timezone - with time.tzset(). +- Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond. -- Issue #14285: When executing a package with the "python -m package" option, - and package initialization fails, a proper traceback is now reported. The - "runpy" module now lets exceptions from package initialization pass back to - the caller, rather than raising ImportError. +- Issue #2091: open() accepted a 'U' mode string containing '+', but 'U' can + only be used with 'r'. Patch from Jeff Balogh and John O'Connor. -- Issue #19771: Also in runpy and the "-m" option, omit the irrelevant - message ". . . is a package and cannot be directly executed" if the package - could not even be initialized (e.g. due to a bad ``*.pyc`` file). +- Issue #8585: improved tests for zipimporter2. Patch from Mark Lawrence. -- Issue #25177: Fixed problem with the mean of very small and very large - numbers. As a side effect, statistics.mean and statistics.variance should - be significantly faster. +- Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. + Patch from Nicola Palumbo and Laurent De Buyst. -- Issue #25718: Fixed copying object with state with boolean value is false. +- Issue #24426: Fast searching optimization in regular expressions now works + for patterns that starts with capturing groups. Fast searching optimization + now can't be disabled at compile time. -- Issue #10131: Fixed deep copying of minidom documents. Based on patch - by Marian Ganisin. +- Issue #23661: unittest.mock side_effects can now be exceptions again. This + was a regression vs Python 3.4. Patch from Ignacio Rossi -- Issue #25725: Fixed a reference leak in pickle.loads() when unpickling - invalid data including tuple instructions. +- Issue #13248: Remove deprecated inspect.getmoduleinfo function. -- Issue #25663: In the Readline completer, avoid listing duplicate global - names, and search the global namespace before searching builtins. +- Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer(). -- Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error. +- Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating + ssl.SSLContext. -- Issue #23914: Fixed SystemError raised by unpickler on broken pickle data. +- Issue #25569: Fix memory leak in SSLSocket.getpeercert(). -- Issue #25691: Fixed crash on deleting ElementTree.Element attributes. +- Issue #25471: Sockets returned from accept() shouldn't appear to be + nonblocking. -- Issue #25624: ZipFile now always writes a ZIP_STORED header for directory - entries. Patch by Dingyuan Wang. +- Issue #25319: When threading.Event is reinitialized, the underlying condition + should use a regular lock rather than a recursive lock. - Skip getaddrinfo if host is already resolved. Patch by A. Jesse Jiryu Davis.