RELEASED Python 2.3 (final)
Barry A. Warsaw
Tue, 29 Jul 2003 20:02:26 -0400
On behalf of the Python development team and the Python community, I'm
happy to announce the release of Python 2.3 (final).
Nineteen months in the making, Python 2.3 represents a commitment to
stability and improved performance, with a minimum of new language
features. Countless bugs and memory leaks have been fixed, many new
and updated modules have been added, and the new type/class system
introduced in Python 2.2 has been significantly improved. Python 2.3
can be up to 30% faster than Python 2.2.
For more information on Python 2.3, including download links for
various platforms, release notes, and known issues, please see:
Highlights of this new release include:
- A brand new version of IDLE, the Python IDE, from the IDLEfork
project at SourceForge.
- Many new and improved library modules including: sets, heapq,
datetime, textwrap, optparse, logging, bsddb, bz2, tarfile,
ossaudiodev, itertools, platform, csv, timeit, shelve,
DocXMLRPCServer, imaplib, imp, trace, and a new random number
generator based on the highly acclaimed Mersenne Twister algorithm
(with a period of 2**19937-1). Some obsolete modules have been
- New and improved built-ins including:
o enumerate(): an iterator yielding (index, item) pairs
o sum(): a new function to sum a sequence of numbers
o basestring: an abstract base string type for str and unicode
o bool: a proper type with instances True and False
o compile(), eval(), exec: fully support Unicode, and allow input
not ending in a newline
o range(): support for long arguments (magnitude > sys.maxint)
o dict(): new constructor signatures
o filter(): returns Unicode when the input is Unicode
o int() can now return long
o isinstance(), super(): Now support instances whose type() is not
equal to their __class__. super() no longer ignores data
descriptors, except for __class__.
o raw_input(): can now return Unicode objects
o slice(), buffer(): are now types rather than functions
- Many new doctest extensions, allowing them to be run by unittest.
- Extended slices, e.g. "hello"[::-1] returns "olleh".
- Universal newlines mode for reading files (converts \r, \n and \r\n
all into \n).
- Source code encoding declarations. (PEP 263)
- Import from zip files. (PEP 273 and PEP 302)
- FutureWarning issued for "unsigned" operations on ints. (PEP 237)
- Faster list.sort() is now stable.
- Unicode filenames on Windows. (PEP 227)
- Karatsuba long multiplication (running time O(N**1.58) instead of
- pickle, cPickle, and copy support a new pickling protocol for more
efficient pickling of (especially) new-style class instances.
- The socket module now supports optional timeouts on all operations.
- ssl support has been incorporated into the Windows installer.
- Many improvements to Tkinter.
Python 2.3 contains many other improvements, including the adoption of
many Python Enhancement Proposals (PEPs). For details see:
Python 2.3 Release Manager
(and the PythonLabs team: Tim, Fred, Jeremy, and Guido)