cpython / Misc / NEWS

+++++++++++
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 #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 #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 readonly source
  directory.  (Somewhat related to Issue #9860.)

Documentation
-------------

- 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.)**
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.