Python 3.3.0 released
The latest version of the Python language, Python 3.3.0, has arrived. This is the first major version to have language changes since the language moratorium expired, and as such brings new syntax to the language in the form of “yield from” which allows developers to delegate work to a sub-generator (PEP 380). The changes also bring back the Python 2 style Unicode literal syntax for strings, which will make more code from Python 2 valid in Python 3 (PEP 393).
Library changes in 3.3 include the addition of a new faulthandler module that allows dumping of tracebacks to be explicitly triggered on faults, timeouts or signals, and a new ipaddress module for creating and manipulating IPv4 and IPv6 objects. Mock objects are now supported when unit testing, and Python virtual environments (PEP 405), inspired by virtualenv, are now supported by Python’s core and should allow for multiple configurations of Python to be simply configured for easier deployment.
Other changes include improvements to namespace packaging (PEP 420), a new memory view implementation to improve reliability, a new Python launcher for Windows (PEP 397, documentation) and qualified name support for functions and classes for easier management of nested classes (PEP 3155). There is also a C accelerator for faster decimal arithmetic. Hash randomisation, introduced earlier in the year in bugfix releases of Python to improve security, has now been turned on by default.
Full details of all the changes are available in “What’s New In Python 3.3“. Python 3.3.0 is available to download as source code (bz, xz or gzipped), or as a Windows x86 or x86-64 MSI Installer or Mac OS X installer for 10.6 or later and 32-bit i386/PPC for 10.5 or later. Python 3.3.0 is released under the Python Software Foundation licence.