+++++++++++ Python News +++++++++++ What's New in Python 3.4.0 Alpha 1? =================================== *Relase date: XX-XXX-2014* Core and Builtins ----------------- - Issue #14783: Improve int() docstring and switch docstrings for str(), range(), and slice() to use multi-line signatures. - Upgrade Unicode data (UCD) to version 6.2. - Issue #15379: Fix passing of non-BMP characters as integers for the charmap decoder (already working as unicode strings). Patch by Serhiy Storchaka. - Issue #15144: Fix possible integer overflow when handling pointers as integer values, by using `Py_uintptr_t` instead of `size_t`. Patch by Serhiy Storchaka. - Issue #15965: Explicitly cast `AT_FDCWD` as (int). Required on Solaris 10 (which defines `AT_FDCWD` as ``0xffd19553``), harmless on other platforms. - Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors. - Issue #15448: Buffered IO now frees the buffer when closed, instead of when deallocating. - Issue #15846: Fix SystemError which happened when using `ast.parse()` in an exception handler on code with syntax errors. - Issue #15897: zipimport.c doesn't check return value of fseek(). Patch by Felipe Cruz. - Issue #15801: Make sure mappings passed to '%' formatting are actually subscriptable. - Issue #15111: __import__ should propagate ImportError when raised as a side-effect of a module triggered from using fromlist. Library ------- - Issue #16176: Properly identify Windows 8 via platform.platform() - Issue #16088: BaseHTTPRequestHandler's send_error method includes a Content-Length header in it's response now. Patch by Antoine Pitrou. - Issue #16114: The subprocess module no longer provides a misleading error message stating that args[0] did not exist when either the cwd or executable keyword arguments specified a path that did not exist. - Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror. - Issue #1492704: shutil.copyfile() raises a distinct SameFileError now if source and destination are the same file. Patch by Atsuo Ishimoto. - Issue #13896: Make shelf instances work with 'with' as context managers. Original patch by Filip Gruszczyński. - Issue #15417: Add support for csh and fish in venv activation scripts. - Issue #16123: IDLE - deprecate running without a subprocess. Patch by Roger Serwy. - Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element element_factory (fixes a regression in SimpleTAL). - Issue #9650: List commonly used format codes in time.strftime and time.strptime docsttings. Original patch by Mike Hoy. - Issue #16034: Fix performance regressions in the new `bz2.BZ2File` implementation. Initial patch by Serhiy Storchaka. - `pty.spawn()` now returns the child process status returned by `os.waitpid()`. - Issue #15756: `subprocess.poll()` now properly handles `errno.ECHILD` to return a returncode of 0 when the child has already exited or cannot be waited on. - Issue #15323: Improve failure message of `Mock.assert_called_once_with()`. - Issue #16064: ``unittest -m`` claims executable is "python", not "python3". - Issue #12376: Pass on parameters in `TextTestResult.__init__()` super call. - Issue #15222: Insert blank line after each message in mbox mailboxes. - Issue #16013: Fix `csv.Reader` parsing issue with ending quote characters. Patch by Serhiy Storchaka. - Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after `datetime.MAXYEAR`. Patch by Cédric Krier. - Issue #16112: platform.architecture does not correctly escape argument to /usr/bin/file. Patch by David Benjamin. - Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML elements 'meta' and 'param'. - Issue #15842: The `SocketIO.{readable,writable,seekable}` methods now raise ValueError when the file-like object is closed. Patch by Alessandro Moura. - Issue #15876: Fix a refleak in the `curses` module: window.encoding. - Issue #15881: Fix `atexit` hook in `multiprocessing`. Original patch by Chris McDonough. - Issue #15841: The readable(), writable() and seekable() methods of `io.BytesIO` and `io.StringIO` objects now raise ValueError when the object has been closed. Patch by Alessandro Moura. - Issue #16126: PyErr_Format format mismatch in _testcapimodule.c. Patch by Serhiy Storchaka. - Issue #15447: Use `subprocess.DEVNULL` in webbrowser, instead of opening `os.devnull` explicitly and leaving it open. - Issue #15509: `webbrowser.UnixBrowser` no longer passes empty arguments to Popen when ``%action`` substitutions produce empty strings. - Issue #12776, issue #11839: Call `argparse` type function (specified by add_argument) only once. Before, the type function was called twice in the case where the default was specified and the argument was given as well. This was especially problematic for the FileType type, as a default file would always be opened, even if a file argument was specified on the command line. - Issue #15906: Fix a regression in argparse caused by the preceding change, when ``action='append'``, ``type='str'`` and ``default=[]``. Extension Modules ----------------- - Issue #16113: Added sha3 module based on the Keccak reference implementation 3.2. The `hashlib` module has four additional hash algorithms: `sha3_224`, `sha3_256`, `sha3_384` and `sha3_512`. As part of the patch some common code was moved from _hashopenssl.c to hashlib.h. Tests ----- - Issue #16115: Add some tests for the executable argument to subprocess.Popen(). Initial patch by Kushal Das. - Issue #15304: Fix warning message when `os.chdir()` fails inside `test.support.temp_cwd()`. Patch by Chris Jerdonek. - Issue #15802: Fix test logic in `TestMaildir.test_create_tmp()`. Patch by Serhiy Storchaka. - Issue #15557: Added a test suite for the webbrowser module, thanks to Anton Barkovsky. Build ----- - Issue #15298: ensure _sysconfigdata is generated in build directory, not source directory. - Issue #15833: Fix a regression in 3.3 that resulted in exceptions being raised if importlib failed to write byte-compiled files. This affected attempts to build Python out-of-tree from a read-only source directory. - Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError after 2801bf875a24 (see #15801). - Issue #16135: Remove OS/2 support. - Issue #15819: Make sure we can build Python out-of-tree from a read-only source directory. (Somewhat related to issue #9860.) Documentation ------------- - Additional comments and some style changes in the concurrent.futures URL retrieval example - Issue #16115: Improve subprocess.Popen() documentation around args, shell, and executable arguments. - Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with great native-speaker help from R. David Murray. - Issue #15533: Clarify docs and add tests for `subprocess.Popen()`'s cwd argument. - Issue #15979: Improve timeit documentation. - Issue #16036: Improve documentation of built-in `int()`'s signature and arguments. - Issue #15935: Clarification of `argparse` docs, re: add_argument() type and default arguments. Patch contributed by Chris Jerdonek. - Issue #11964: Document a change in v3.2 to the behavior of the indent parameter of json encoding operations. Tools/Demos ----------- **(For information about older versions, consult the HISTORY file.)**