Python 2.6 finalised, Python 3.0 soon?
The Python language's developers have released Python 2.6 final, the stepping stone Python 2.x release to allow developers to use some Python 3.0 features and be warned where they are using functionality that changes or disappears in the soon to be released Python 3.0.
The development of Python 2.6 has been happening in parallel with Python 3.0, to ensure that 2.6 is as useful as possible for the future migration of Python code to 3.0. A switch,
-3 has been added to the Python command line which activates warnings from the interpreter for any code constructs that will be invalidated in 3.0. A number of 3.0 features have been backported to Python 2.6 and included by default. Other 3.0 features can be imported using Python's "from future" directives allowing Python 3.0 compatible code to be written but these features will break Python 2.x code as they change the semantics of operations such as
map and others. The "from future" mechanism does allow developers to selectively migrate their code towards 3.0, rather than having to do a massive refactoring.
One language change in 2.6 is the
with statement, which appeared in Python 2.5 as a "future import". In 2.6,
with is enabled by default and supported by a new
contextlib module. The
with statement is an alternative to
try...finally construct and is designed to automatically clean up resources. Python 3.0 has a new
format function and this has been backported to 2.6 making richer output formatting possible.
A number of new modules have been added to Python 2.6. A
plistlib module allows for access to .plist format files as found on Mac OS X, on any platform. A
multiprocessing module has been added which allows Python programs to run mutiple concurrent processes, rather than threads, and coordinate those processes with queues, pipes, locks and semaphores, potentially allowing Python to exploit multicore CPUs more effectively.
Python 2.6 sees a change to the documentation system used; previously, the documetation was produced in LaTeX for high quality printing. Python's developers have worked on a new system, Sphinx which generates HTML, Windows HTML Help, LaTeX and printable PDF output. Sphinx supports automatic indexing and can automatically highlight Python code in the documentation which is now written with reStructuredText markup.