CINXE.COM

PEP 320 – Python 2.4 Release Schedule | peps.python.org

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="color-scheme" content="light dark"> <title>PEP 320 – Python 2.4 Release Schedule | peps.python.org</title> <link rel="shortcut icon" href="../_static/py.png"> <link rel="canonical" href="https://peps.python.org/pep-0320/"> <link rel="stylesheet" href="../_static/style.css" type="text/css"> <link rel="stylesheet" href="../_static/mq.css" type="text/css"> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" media="(prefers-color-scheme: light)" id="pyg-light"> <link rel="stylesheet" href="../_static/pygments_dark.css" type="text/css" media="(prefers-color-scheme: dark)" id="pyg-dark"> <link rel="alternate" type="application/rss+xml" title="Latest PEPs" href="https://peps.python.org/peps.rss"> <meta property="og:title" content='PEP 320 – Python 2.4 Release Schedule | peps.python.org'> <meta property="og:description" content="This document describes the development and release schedule for Python 2.4. The schedule primarily concerns itself with PEP-sized items. Small features may be added up to and including the first beta release. Bugs may be fixed until the final release."> <meta property="og:type" content="website"> <meta property="og:url" content="https://peps.python.org/pep-0320/"> <meta property="og:site_name" content="Python Enhancement Proposals (PEPs)"> <meta property="og:image" content="https://peps.python.org/_static/og-image.png"> <meta property="og:image:alt" content="Python PEPs"> <meta property="og:image:width" content="200"> <meta property="og:image:height" content="200"> <meta name="description" content="This document describes the development and release schedule for Python 2.4. The schedule primarily concerns itself with PEP-sized items. Small features may be added up to and including the first beta release. Bugs may be fixed until the final release."> <meta name="theme-color" content="#3776ab"> </head> <body> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-sun-half" viewBox="0 0 24 24" pointer-events="all"> <title>Following system colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="9"></circle> <path d="M12 3v18m0-12l4.65-4.65M12 14.3l7.37-7.37M12 19.6l8.85-8.85"></path> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24" pointer-events="all"> <title>Selected dark colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24" pointer-events="all"> <title>Selected light colour scheme</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> </svg> <script> document.documentElement.dataset.colour_scheme = localStorage.getItem("colour_scheme") || "auto" </script> <section id="pep-page-section"> <header> <h1>Python Enhancement Proposals</h1> <ul class="breadcrumbs"> <li><a href="https://www.python.org/" title="The Python Programming Language">Python</a> &raquo; </li> <li><a href="../pep-0000/">PEP Index</a> &raquo; </li> <li>PEP 320</li> </ul> <button id="colour-scheme-cycler" onClick="setColourScheme(nextColourScheme())"> <svg aria-hidden="true" class="colour-scheme-icon-when-auto"><use href="#svg-sun-half"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg aria-hidden="true" class="colour-scheme-icon-when-light"><use href="#svg-sun"></use></svg> <span class="visually-hidden">Toggle light / dark / auto colour theme</span> </button> </header> <article> <section id="pep-content"> <h1 class="page-title">PEP 320 – Python 2.4 Release Schedule</h1> <dl class="rfc2822 field-list simple"> <dt class="field-odd">Author<span class="colon">:</span></dt> <dd class="field-odd">Barry Warsaw, Raymond Hettinger, Anthony Baxter</dd> <dt class="field-even">Status<span class="colon">:</span></dt> <dd class="field-even"><abbr title="Accepted and implementation complete, or no longer active">Final</abbr></dd> <dt class="field-odd">Type<span class="colon">:</span></dt> <dd class="field-odd"><abbr title="Non-normative PEP containing background, guidelines or other information relevant to the Python ecosystem">Informational</abbr></dd> <dt class="field-even">Topic<span class="colon">:</span></dt> <dd class="field-even"><a class="reference external" href="../topic/release/">Release</a></dd> <dt class="field-odd">Created<span class="colon">:</span></dt> <dd class="field-odd">29-Jul-2003</dd> <dt class="field-even">Python-Version<span class="colon">:</span></dt> <dd class="field-even">2.4</dd> <dt class="field-odd">Post-History<span class="colon">:</span></dt> <dd class="field-odd">01-Dec-2004</dd> </dl> <hr class="docutils" /> <section id="contents"> <details><summary>Table of Contents</summary><ul class="simple"> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#release-manager">Release Manager</a></li> <li><a class="reference internal" href="#release-schedule">Release Schedule</a></li> <li><a class="reference internal" href="#completed-features-for-2-4">Completed features for 2.4</a></li> <li><a class="reference internal" href="#deferred-until-2-5">Deferred until 2.5</a></li> <li><a class="reference internal" href="#ongoing-tasks">Ongoing tasks</a></li> <li><a class="reference internal" href="#open-issues">Open issues</a></li> <li><a class="reference internal" href="#carryover-features-from-python-2-3">Carryover features from Python 2.3</a></li> <li><a class="reference internal" href="#references">References</a></li> <li><a class="reference internal" href="#copyright">Copyright</a></li> </ul> </details></section> <section id="abstract"> <h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2> <p>This document describes the development and release schedule for Python 2.4. The schedule primarily concerns itself with PEP-sized items. Small features may be added up to and including the first beta release. Bugs may be fixed until the final release.</p> <p>There will be at least two alpha releases, two beta releases, and one release candidate. The release date was 30th November, 2004.</p> </section> <section id="release-manager"> <h2><a class="toc-backref" href="#release-manager" role="doc-backlink">Release Manager</a></h2> <p>Anthony Baxter</p> <p>Martin von Lowis is building the Windows installers, Fred the doc packages, Sean the RPMs.</p> </section> <section id="release-schedule"> <h2><a class="toc-backref" href="#release-schedule" role="doc-backlink">Release Schedule</a></h2> <ul class="simple"> <li>July 9: alpha 1 [completed]</li> <li>August 5/6: alpha 2 [completed]</li> <li>Sept 3: alpha 3 [completed]</li> <li>October 15: beta 1 [completed]</li> <li>November 3: beta 2 [completed]</li> <li>November 18: release candidate 1 [completed]</li> <li>November 30: final [completed]</li> </ul> </section> <section id="completed-features-for-2-4"> <h2><a class="toc-backref" href="#completed-features-for-2-4" role="doc-backlink">Completed features for 2.4</a></h2> <ul class="simple"> <li><a class="pep reference internal" href="../pep-0218/" title="PEP 218 – Adding a Built-In Set Object Type">PEP 218</a> Builtin Set Objects.</li> <li><a class="pep reference internal" href="../pep-0289/" title="PEP 289 – Generator Expressions">PEP 289</a> Generator expressions.</li> <li><a class="pep reference internal" href="../pep-0292/" title="PEP 292 – Simpler String Substitutions">PEP 292</a> Simpler String Substitutions to be implemented as a module.</li> <li><a class="pep reference internal" href="../pep-0318/" title="PEP 318 – Decorators for Functions and Methods">PEP 318</a>: Function/method decorator syntax, using &#64;syntax</li> <li><a class="pep reference internal" href="../pep-0322/" title="PEP 322 – Reverse Iteration">PEP 322</a> Reverse Iteration.</li> <li><a class="pep reference internal" href="../pep-0327/" title="PEP 327 – Decimal Data Type">PEP 327</a>: A Decimal package for fixed precision arithmetic.</li> <li><a class="pep reference internal" href="../pep-0328/" title="PEP 328 – Imports: Multi-Line and Absolute/Relative">PEP 328</a>: Multi-line Imports</li> <li>Encapsulate the decorate-sort-undecorate pattern in a keyword for <code class="docutils literal notranslate"><span class="pre">list.sort()</span></code>.</li> <li>Added a builtin called <code class="docutils literal notranslate"><span class="pre">sorted()</span></code> which may be used in expressions.</li> <li>The <code class="docutils literal notranslate"><span class="pre">itertools</span></code> module has two new functions, <code class="docutils literal notranslate"><span class="pre">tee()</span></code> and <code class="docutils literal notranslate"><span class="pre">groupby()</span></code>.</li> <li>Add a <code class="docutils literal notranslate"><span class="pre">collections</span></code> module with a <code class="docutils literal notranslate"><span class="pre">deque()</span></code> object.</li> <li>Add two statistical/reduction functions, <code class="docutils literal notranslate"><span class="pre">nlargest()</span></code> and <code class="docutils literal notranslate"><span class="pre">nsmallest()</span></code> to the <code class="docutils literal notranslate"><span class="pre">heapq</span></code> module.</li> <li>Python’s windows installer now uses MSI</li> </ul> </section> <section id="deferred-until-2-5"> <h2><a class="toc-backref" href="#deferred-until-2-5" role="doc-backlink">Deferred until 2.5</a></h2> <ul class="simple"> <li>Deprecate and/or remove the modules listed in <a class="pep reference internal" href="../pep-0004/" title="PEP 4 – Deprecation of Standard Modules">PEP 4</a> (<code class="docutils literal notranslate"><span class="pre">posixfile</span></code>, <code class="docutils literal notranslate"><span class="pre">gopherlib</span></code>, <code class="docutils literal notranslate"><span class="pre">pre</span></code>, <code class="docutils literal notranslate"><span class="pre">others</span></code>)</li> <li>Remove support for platforms as described in <a class="pep reference internal" href="../pep-0011/" title="PEP 11 – CPython platform support">PEP 11</a>.</li> <li>Finish implementing the Distutils <code class="docutils literal notranslate"><span class="pre">bdist_dpkg</span></code> command. (AMK)</li> <li>Add support for reading shadow passwords <a class="footnote-reference brackets" href="#id8" id="id1">[1]</a></li> <li>It would be nice if the built-in SSL socket type could be used for non-blocking SSL I/O. Currently packages such as Twisted which implement async servers using SSL have to require third-party packages such as pyopenssl.</li> <li>AST-based compiler: this branch was not completed in time for 2.4, but will land on the trunk some time after 2.4 final is out, for inclusion in 2.5.</li> <li>reST is going to be used a lot in Zope3. Maybe it could become a standard library module? (Since reST’s author thinks it’s too instable, I’m inclined not to do this.)</li> </ul> </section> <section id="ongoing-tasks"> <h2><a class="toc-backref" href="#ongoing-tasks" role="doc-backlink">Ongoing tasks</a></h2> <p>The following are ongoing TO-DO items which we should attempt to work on without hoping for completion by any particular date.</p> <ul class="simple"> <li>Documentation: complete the distribution and installation manuals.</li> <li>Documentation: complete the documentation for new-style classes.</li> <li>Look over the <code class="docutils literal notranslate"><span class="pre">Demos/</span></code> directory and update where required (Andrew Kuchling has done a lot of this)</li> <li>New tests.</li> <li>Fix doc bugs on SF.</li> <li>Remove use of deprecated features in the core.</li> <li>Document deprecated features appropriately.</li> <li>Mark deprecated C APIs with <code class="docutils literal notranslate"><span class="pre">Py_DEPRECATED</span></code>.</li> <li>Deprecate modules which are unmaintained, or perhaps make a new category for modules ‘Unmaintained’</li> <li>In general, lots of cleanup so it is easier to move forward.</li> </ul> </section> <section id="open-issues"> <h2><a class="toc-backref" href="#open-issues" role="doc-backlink">Open issues</a></h2> <p>None at this time.</p> </section> <section id="carryover-features-from-python-2-3"> <h2><a class="toc-backref" href="#carryover-features-from-python-2-3" role="doc-backlink">Carryover features from Python 2.3</a></h2> <ul> <li>The import lock could use some redesign. <a class="footnote-reference brackets" href="#id9" id="id2">[2]</a></li> <li>A nicer API to open text files, replacing the ugly (in some people’s eyes) “U” mode flag. There’s a proposal out there to have a new built-in type <code class="docutils literal notranslate"><span class="pre">textfile(filename,</span> <span class="pre">mode,</span> <span class="pre">encoding)</span></code>. (Shouldn’t it have a <em>bufsize</em> argument too?)</li> <li>New widgets for Tkinter???<p>Has anyone gotten the time for this? <em>Are</em> there any new widgets in Tk 8.4? Note that we’ve got better Tix support already (though not on Windows yet).</p> </li> <li><a class="pep reference internal" href="../pep-0304/" title="PEP 304 – Controlling Generation of Bytecode Files">PEP 304</a> (Controlling Generation of Bytecode Files by Montanaro) seems to have lost steam.</li> <li>For a class defined inside another class, the <code class="docutils literal notranslate"><span class="pre">__name__</span></code> should be “outer.inner”, and pickling should work. (<a class="footnote-reference brackets" href="#id10" id="id3">[3]</a>. I’m no longer certain this is easy or even right.)</li> <li>Decide on a clearer deprecation policy (especially for modules) and act on it. For a start, see this message from Neal Norwitz <a class="footnote-reference brackets" href="#id11" id="id4">[4]</a>. There seems insufficient interest in moving this further in an organized fashion, and it’s not particularly important.</li> <li>Provide alternatives for common uses of the <code class="docutils literal notranslate"><span class="pre">types</span></code> module; Skip Montanaro has posted a proto-PEP for this idea <a class="footnote-reference brackets" href="#id12" id="id5">[5]</a>. There hasn’t been any progress on this, AFAICT.</li> <li>Use pending deprecation for the <code class="docutils literal notranslate"><span class="pre">types</span></code> and <code class="docutils literal notranslate"><span class="pre">string</span></code> modules. This requires providing alternatives for the parts that aren’t covered yet (e.g. <code class="docutils literal notranslate"><span class="pre">string.whitespace</span></code> and <code class="docutils literal notranslate"><span class="pre">types.TracebackType</span></code>). It seems we can’t get consensus on this.</li> <li><a class="pep reference internal" href="../pep-0262/" title="PEP 262 – A Database of Installed Python Packages">PEP 262</a> Database of Installed Python Packages (Kuchling)<p>This turns out to be useful for Jack Jansen’s Python installer, so the database is worth implementing. Code will go in sandbox/pep262.</p> </li> <li><a class="pep reference internal" href="../pep-0269/" title="PEP 269 – Pgen Module for Python">PEP 269</a> Pgen Module for Python (Riehl)<p>(Some necessary changes are in; the <code class="docutils literal notranslate"><span class="pre">pgen</span></code> module itself needs to mature more.)</p> </li> <li><a class="pep reference internal" href="../pep-0266/" title="PEP 266 – Optimizing Global Variable/Attribute Access">PEP 266</a> Optimizing Global Variable/Attribute Access (Montanaro)<p><a class="pep reference internal" href="../pep-0267/" title="PEP 267 – Optimized Access to Module Namespaces">PEP 267</a> Optimized Access to Module Namespaces (Hylton)</p> <p><a class="pep reference internal" href="../pep-0280/" title="PEP 280 – Optimizing access to globals">PEP 280</a> Optimizing access to globals (van Rossum)</p> <p>These are basically three friendly competing proposals. Jeremy has made a little progress with a new compiler, but it’s going slowly and the compiler is only the first step. Maybe we’ll be able to refactor the compiler in this release. I’m tempted to say we won’t hold our breath.</p> </li> <li>Lazily tracking tuples? <a class="footnote-reference brackets" href="#id13" id="id6">[6]</a> <a class="footnote-reference brackets" href="#id14" id="id7">[7]</a> Not much enthusiasm I believe.</li> <li><a class="pep reference internal" href="../pep-0286/" title="PEP 286 – Enhanced Argument Tuples">PEP 286</a> Enhanced Argument Tuples (von Loewis)<p>I haven’t had the time to review this thoroughly. It seems a deep optimization hack (also makes better correctness guarantees though).</p> </li> <li>Make ‘<code class="docutils literal notranslate"><span class="pre">as</span></code>’ a keyword. It has been a pseudo-keyword long enough. Too much effort to bother.</li> </ul> </section> <section id="references"> <h2><a class="toc-backref" href="#references" role="doc-backlink">References</a></h2> <aside class="footnote-list brackets"> <aside class="footnote brackets" id="id8" role="doc-footnote"> <dt class="label" id="id8">[<a href="#id1">1</a>]</dt> <dd>Shadow Password Support Module <a class="reference external" href="https://bugs.python.org/issue579435">https://bugs.python.org/issue579435</a></aside> <aside class="footnote brackets" id="id9" role="doc-footnote"> <dt class="label" id="id9">[<a href="#id2">2</a>]</dt> <dd>PyErr_Warn may cause import deadlock <a class="reference external" href="https://bugs.python.org/issue683658">https://bugs.python.org/issue683658</a></aside> <aside class="footnote brackets" id="id10" role="doc-footnote"> <dt class="label" id="id10">[<a href="#id3">3</a>]</dt> <dd>Nested class __name__ <a class="reference external" href="https://bugs.python.org/issue633930">https://bugs.python.org/issue633930</a></aside> <aside class="footnote brackets" id="id11" role="doc-footnote"> <dt class="label" id="id11">[<a href="#id4">4</a>]</dt> <dd>Neal Norwitz, random vs whrandom <a class="reference external" href="https://mail.python.org/pipermail/python-dev/2002-April/023165.html">https://mail.python.org/pipermail/python-dev/2002-April/023165.html</a></aside> <aside class="footnote brackets" id="id12" role="doc-footnote"> <dt class="label" id="id12">[<a href="#id5">5</a>]</dt> <dd>Skip Montanaro, python/dist/src/Lib types.py,1.26,1.27 <a class="reference external" href="https://mail.python.org/pipermail/python-dev/2002-May/024346.html">https://mail.python.org/pipermail/python-dev/2002-May/024346.html</a></aside> <aside class="footnote brackets" id="id13" role="doc-footnote"> <dt class="label" id="id13">[<a href="#id6">6</a>]</dt> <dd>Daniel Dunbar, Lazily GC tracking tuples <a class="reference external" href="https://mail.python.org/pipermail/python-dev/2002-May/023926.html">https://mail.python.org/pipermail/python-dev/2002-May/023926.html</a></aside> <aside class="footnote brackets" id="id14" role="doc-footnote"> <dt class="label" id="id14">[<a href="#id7">7</a>]</dt> <dd>GC: untrack simple objects <a class="reference external" href="https://bugs.python.org/issue558745">https://bugs.python.org/issue558745</a></aside> </aside> </section> <section id="copyright"> <h2><a class="toc-backref" href="#copyright" role="doc-backlink">Copyright</a></h2> <p>This document has been placed in the public domain.</p> </section> </section> <hr class="docutils" /> <p>Source: <a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0320.rst">https://github.com/python/peps/blob/main/peps/pep-0320.rst</a></p> <p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0320.rst">2025-02-01 08:59:27 GMT</a></p> </article> <nav id="pep-sidebar"> <h2>Contents</h2> <ul> <li><a class="reference internal" href="#abstract">Abstract</a></li> <li><a class="reference internal" href="#release-manager">Release Manager</a></li> <li><a class="reference internal" href="#release-schedule">Release Schedule</a></li> <li><a class="reference internal" href="#completed-features-for-2-4">Completed features for 2.4</a></li> <li><a class="reference internal" href="#deferred-until-2-5">Deferred until 2.5</a></li> <li><a class="reference internal" href="#ongoing-tasks">Ongoing tasks</a></li> <li><a class="reference internal" href="#open-issues">Open issues</a></li> <li><a class="reference internal" href="#carryover-features-from-python-2-3">Carryover features from Python 2.3</a></li> <li><a class="reference internal" href="#references">References</a></li> <li><a class="reference internal" href="#copyright">Copyright</a></li> </ul> <br> <a id="source" href="https://github.com/python/peps/blob/main/peps/pep-0320.rst">Page Source (GitHub)</a> </nav> </section> <script src="../_static/colour_scheme.js"></script> <script src="../_static/wrap_tables.js"></script> <script src="../_static/sticky_banner.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10