## Contents

- 1 PEP 218: A Standard Set Datatype
- 2 PEP 255: Simple Generators
- 3 PEP 263: Source Code Encodings
- 4 PEP 273: Importing Modules from Zip Archives
- 5 PEP 277: Unicode file name support for Windows NT
- 6 PEP 278: Universal Newline Support
- 7 PEP 279: enumerate()
- 8 PEP 282: The logging Package
- 9 PEP 285: A Boolean Type
- 10 PEP 293: Codec Error Handling Callbacks
- 11 PEP 301: Package Index and Metadata for Distutils
- 12 PEP 302: New Import Hooks
- 13 PEP 305: Comma-separated Files
- 14 PEP 307: Pickle Enhancements
- 15 Extended Slices
- 16 Other Language Changes
  - 16.1 String Changes
  - 16.2 Optimizations
- 17 New, Improved, and Deprecated Modules
  - 17.1 Date/Time Type
  - 17.2 The optparse Module
- 18 Pymalloc: A Specialized Object Allocator
- 19 Build and C API Changes
  - 19.1 Port-Specific Changes
- 20 Other Changes and Fixes
- 21 Porting to Python 2.3
- 22 Acknowledgements
- About this document ...

This article explains the new features in Python 2.3. Python 2.3 was released on July 29, 2003.

The main themes for Python 2.3 are polishing some of the features added in 2.2, adding various small but useful enhancements to the core language, and expanding the standard library. The new object model introduced in the previous version has benefited from 18 months of bugfixes and from optimization efforts that have improved the performance of new-style classes. A few new built-in functions have been added such as `sum()` and `enumerate()`. The `in` operator can now be used for substring searches (e.g. `"ab" in "abc"` returns `True`).

Some of the many new library features include Boolean, set, heap, and date/time data types, the ability to import modules from ZIP-format archives, metadata support for the long-awaited Python catalog, an updated version of IDLE, and modules for logging messages, wrapping text, parsing CSV files, processing command-line options, using BerkeleyDB databases... the list of new and enhanced modules is lengthy.

This article doesn't attempt to provide a complete specification of the new features, but instead provides a convenient overview. For full details, you should refer to the documentation for Python 2.3, such as the Python Library Reference and the Python Reference Manual. If you want to understand the complete implementation and design rationale, refer to the PEP for a particular new feature.