
What's New in Python 2.7
************************

Author:
   A.M. Kuchling (amk at amk.ca)

Release:
   3.0.1

Date:
   February 14, 2009

This article explains the new features in Python 2.7. No release
schedule has been decided yet for 2.7.


Other Language Changes
======================

Some smaller changes made to the core Python language are:

* List of changes to be written here.


Optimizations
-------------

To be written.


New, Improved, and Deprecated Modules
=====================================

As in every release, Python's standard library received a number of
enhancements and bug fixes.  Here's a partial list of the most notable
changes, sorted alphabetically by module name. Consult the
``Misc/NEWS`` file in the source tree for a more complete list of
changes, or look through the Subversion logs for all the details.

* A new function in the ``subprocess`` module, ``check_output()``,
  runs a command with a specified set of arguments and returns the
  command's output as a string if the command runs without error, or
  raises a ``CalledProcessError`` exception otherwise.

     >>> subprocess.check_output(['df', '-h', '.'])
     'Filesystem     Size   Used  Avail Capacity  Mounted on\n
     /dev/disk0s2    52G    49G   3.0G    94%    /\n'

     >>> subprocess.check_output(['df', '-h', '/bogus'])
       ...
     subprocess.CalledProcessError: Command '['df', '-h', '/bogus']' returned non-zero exit status 1

  (Contributed by Gregory P. Smith.)


ttk: Themed Widgets for Tk
--------------------------

Tcl/Tk 8.5 includes a set of themed widgets that re-implement basic Tk
widgets but have a more customizable appearance and can therefore more
closely resemble the native platform's widgets.  This widget set was
originally called Tile, but was renamed to Ttk (for "themed Tk") on
being added to Tcl/Tck release 8.5.

XXX write a brief discussion and an example here.

The ``ttk`` module was written by Guilherme Polo and added in issue
2983.  An alternate version called ``Tile.py``, written by Martin
Franklin and maintained by Kevin Walzer, was proposed for inclusion in
issue 2618, but the authors argued that Guilherme Polo's work was more
comprehensive.


Build and C API Changes
=======================

Changes to Python's build process and to the C API include:

* If you use the ``.gdbinit`` file provided with Python, the "pyo"
  macro in the 2.7 version will now work when the thread being
  debugged doesn't hold the GIL; the macro will now acquire it before
  printing. (Contributed by haypo XXX; issue 3632.)


Port-Specific Changes: Windows
------------------------------

* The ``msvcrt`` module now contains some constants from the
  ``crtassem.h`` header file: ``CRT_ASSEMBLY_VERSION``,
  ``VC_ASSEMBLY_PUBLICKEYTOKEN``, and
  ``LIBRARIES_ASSEMBLY_NAME_PREFIX``. (Added by Martin von Loewis (XXX
  check); issue 4365.)


Port-Specific Changes: Mac OS X
-------------------------------


Porting to Python 2.7
=====================

This section lists previously described changes and other bugfixes
that may require changes to your code:

To be written.


Acknowledgements
================

The author would like to thank the following people for offering
suggestions, corrections and assistance with various drafts of this
article: no one yet.
