Latest Pre-release in branch 1.6
1.6a2
Released 11 Apr 2000
(26 years ago)
SoftwarePython
Version1.6
Status
End of life
Latest release1.6a2
11 Apr 2000
(26 years ago)
End of life30 Sep 2000
(Ended 25 years ago)
Source codehttps://github.com/python/cpython/tree/v1.6a2
Python 1.6 ReleasesView full list

What Is New in Python 1.6

Python 1.6 was released on September, 2000 -- one of the final releases from the CNRI (Corporation for National Research Initiatives) era, just before BeOpen Python Labs and then the Python Software Foundation took stewardship of the project. Python 1.6 is largely a transitional release, coinciding with the formation of the new development team that would produce Python 2.0 two months later. Many features in 1.6 were simultaneously available in 2.0.

Category Change Notes
Standard Library Unicode support improvements -- early Unicode string handling Precursor to formal Unicode in 2.0
Standard Library String methods added directly to str type (e.g., str.join(), str.split()) Previously string functions were in the string module only
Standard Library Improved re module (SRE engine by Secret Labs) Replaced the older pcre engine
Standard Library urllib2 module for more flexible HTTP handling Supported custom handlers and openers
License CNRI license -- GPL-incompatible; resolved in 2.0 with PSF license Historical context

Key Additions in Python 1.6

String Methods on the str Type

Before Python 1.6, string operations were performed via the standalone string module: string.split(s, ","), string.upper(s), etc. Python 1.6 added these as methods directly on the str type, making the object-oriented style possible: s.split(","), s.upper().

# Old style (still worked for backward compat)
import string
words = string.split("hello world", " ")
upper = string.upper("hello")

# New style (Python 1.6+)
words = "hello world".split(" ")
upper = "hello".upper()

The old string module functions were kept for backward compatibility but were considered deprecated from this point forward.

New Regular Expression Engine (SRE)

The Secret Labs Regular Expression (SRE) engine replaced the earlier PCRE-based engine and the regex module. SRE is what the modern re module is still based on -- it grew from the work Fredrik Lundh did for Python 1.6 and was shipped in that release. It brought better Unicode support and a cleaner, more complete API.

Historical Context: End of the CNRI Era

Python 1.6 is historically notable because it was the last release CNRI had contractual responsibility for. The transition to BeOpen and then to the PSF resolved a license incompatibility with the GPL that had existed since early Python versions. Python 2.0 was released simultaneously and superseded 1.6 almost immediately.

FAQ

Why was Python 1.6 released so close to Python 2.0?
CNRI had contractual obligations to release a final version under their stewardship. Python 1.6 fulfilled that requirement. BeOpen simultaneously prepared Python 2.0, which included all of 1.6's changes plus significant new features. Python 1.6 was never the recommended version -- 2.0 immediately superseded it.

Were str methods available before Python 1.6?
No. Before 1.6, string manipulation required using the string module functions: string.split(s), string.lower(s), etc. The old string module functions became wrappers around the new methods after 1.6 and were deprecated over the following releases.

Is any Python 1.6 code still in use?
Essentially no. Python 1.6 is a historical curiosity. It is not installable from any modern package manager and has no security patches. No production system should be running Python 1.x.

What was the CNRI license issue?
CNRI's Python license contained clauses that were interpreted as incompatible with the GNU GPL. This meant CPython could not be bundled with GPL software. The FSF and Guido van Rossum negotiated a fix that was applied in Python 2.0 and backported into a 1.6.1 release with the corrected license.

What was the SRE regular expression engine?
SRE (Secret Labs Regular Expression) was written by Fredrik Lundh. It brought a cleaner architecture, better Unicode support, and eliminated the dependency on the external PCRE library. The SRE engine is still the foundation of CPython's re module today, having been incrementally improved over subsequent releases.

Releases In Branch 1.6

VersionRelease date
1.6a211 Apr 2000
(26 years ago)
1.6a131 Mar 2000
(26 years ago)