CINXE.COM
PEP 360 – Externally Maintained Packages | 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 360 – Externally Maintained Packages | peps.python.org</title> <link rel="shortcut icon" href="../_static/py.png"> <link rel="canonical" href="https://peps.python.org/pep-0360/"> <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 360 – Externally Maintained Packages | peps.python.org'> <meta property="og:description" content="There are many great pieces of Python software developed outside of the Python standard library (a.k.a., the “stdlib”). Sometimes it makes sense to incorporate these externally maintained packages into the stdlib in order to fill a gap in the tools pro..."> <meta property="og:type" content="website"> <meta property="og:url" content="https://peps.python.org/pep-0360/"> <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="There are many great pieces of Python software developed outside of the Python standard library (a.k.a., the “stdlib”). Sometimes it makes sense to incorporate these externally maintained packages into the stdlib in order to fill a gap in the tools pro..."> <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> » </li> <li><a href="../pep-0000/">PEP Index</a> » </li> <li>PEP 360</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 360 – Externally Maintained Packages</h1> <dl class="rfc2822 field-list simple"> <dt class="field-odd">Author<span class="colon">:</span></dt> <dd class="field-odd">Brett Cannon <brett at python.org></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="Normative PEP describing or proposing a change to a Python community process, workflow or governance">Process</abbr></dd> <dt class="field-even">Created<span class="colon">:</span></dt> <dd class="field-even">30-May-2006</dd> <dt class="field-odd">Post-History<span class="colon">:</span></dt> <dd class="field-odd"><p></p></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="#externally-maintained-packages">Externally Maintained Packages</a><ul> <li><a class="reference internal" href="#elementtree">ElementTree</a></li> <li><a class="reference internal" href="#expat-xml-parser">Expat XML parser</a></li> <li><a class="reference internal" href="#optik">Optik</a></li> <li><a class="reference internal" href="#wsgiref">wsgiref</a></li> </ul> </li> <li><a class="reference internal" href="#references">References</a></li> <li><a class="reference internal" href="#copyright">Copyright</a></li> </ul> </details></section> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>No new modules are to be added to this PEP. It has been deemed dangerous to codify external maintenance of any code checked into Python’s code repository. Code contributors should expect Python’s development methodology to be used for any and all code checked into Python’s code repository.</p> </div> <section id="abstract"> <h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2> <p>There are many great pieces of Python software developed outside of the Python standard library (a.k.a., the “stdlib”). Sometimes it makes sense to incorporate these externally maintained packages into the stdlib in order to fill a gap in the tools provided by Python.</p> <p>But by having the packages maintained externally it means Python’s developers do not have direct control over the packages’ evolution and maintenance. Some package developers prefer to have bug reports and patches go through them first instead of being directly applied to Python’s repository.</p> <p>This PEP is meant to record details of packages in the stdlib that are maintained outside of Python’s repository. Specifically, it is meant to keep track of any specific maintenance needs for each package. It should be mentioned that changes needed in order to fix bugs and keep the code running on all of Python’s supported platforms will be done directly in Python’s repository without worrying about going through the contact developer. This is so that Python itself is not held up by a single bug and allows the whole process to scale as needed.</p> <p>It also is meant to allow people to know which version of a package is released with which version of Python.</p> </section> <section id="externally-maintained-packages"> <h2><a class="toc-backref" href="#externally-maintained-packages" role="doc-backlink">Externally Maintained Packages</a></h2> <p>The section title is the name of the package as it is known outside of the Python standard library. The “standard library name” is what the package is named within Python. The “contact person” is the Python developer in charge of maintaining the package. The “synchronisation history” lists what external version of the package was included in each version of Python (if different from the previous Python release).</p> <section id="elementtree"> <h3><a class="toc-backref" href="#elementtree" role="doc-backlink">ElementTree</a></h3> <dl class="field-list simple"> <dt class="field-odd">Web site<span class="colon">:</span></dt> <dd class="field-odd"><a class="reference external" href="http://effbot.org/zone/element-index.htm">http://effbot.org/zone/element-index.htm</a></dd> <dt class="field-even">Standard library name<span class="colon">:</span></dt> <dd class="field-even">xml.etree</dd> <dt class="field-odd">Contact person<span class="colon">:</span></dt> <dd class="field-odd">Fredrik Lundh</dd> </dl> <p>Fredrik has ceded ElementTree maintenance to the core Python development team <a class="footnote-reference brackets" href="#element-tree" id="id1">[1]</a>.</p> </section> <section id="expat-xml-parser"> <h3><a class="toc-backref" href="#expat-xml-parser" role="doc-backlink">Expat XML parser</a></h3> <dl class="field-list simple"> <dt class="field-odd">Web site<span class="colon">:</span></dt> <dd class="field-odd"><a class="reference external" href="http://www.libexpat.org/">http://www.libexpat.org/</a></dd> <dt class="field-even">Standard library name<span class="colon">:</span></dt> <dd class="field-even">N/A (this refers to the parser itself, and not the Python bindings)</dd> <dt class="field-odd">Contact person<span class="colon">:</span></dt> <dd class="field-odd">None</dd> </dl> </section> <section id="optik"> <h3><a class="toc-backref" href="#optik" role="doc-backlink">Optik</a></h3> <dl class="field-list simple"> <dt class="field-odd">Web site<span class="colon">:</span></dt> <dd class="field-odd"><a class="reference external" href="http://optik.sourceforge.net/">http://optik.sourceforge.net/</a></dd> <dt class="field-even">Standard library name<span class="colon">:</span></dt> <dd class="field-even">optparse</dd> <dt class="field-odd">Contact person<span class="colon">:</span></dt> <dd class="field-odd">Greg Ward</dd> </dl> <p>External development seems to have ceased. For new applications, optparse itself has been largely superseded by argparse.</p> </section> <section id="wsgiref"> <h3><a class="toc-backref" href="#wsgiref" role="doc-backlink">wsgiref</a></h3> <dl class="field-list simple"> <dt class="field-odd">Web site<span class="colon">:</span></dt> <dd class="field-odd">None</dd> <dt class="field-even">Standard library name<span class="colon">:</span></dt> <dd class="field-even">wsgiref</dd> <dt class="field-odd">Contact Person<span class="colon">:</span></dt> <dd class="field-odd">Phillip J. Eby</dd> </dl> <p>This module is maintained in the standard library, but significant bug reports and patches should pass through the Web-SIG mailing list <a class="footnote-reference brackets" href="#web-sig" id="id2">[2]</a> for discussion.</p> </section> </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="element-tree" role="doc-footnote"> <dt class="label" id="element-tree">[<a href="#id1">1</a>]</dt> <dd>Fredrik’s handing over of ElementTree (<a class="reference external" href="https://mail.python.org/pipermail/python-dev/2012-February/116389.html">https://mail.python.org/pipermail/python-dev/2012-February/116389.html</a>)</aside> <aside class="footnote brackets" id="web-sig" role="doc-footnote"> <dt class="label" id="web-sig">[<a href="#id2">2</a>]</dt> <dd>Web-SIG mailing list (<a class="reference external" href="https://mail.python.org/mailman/listinfo/web-sig">https://mail.python.org/mailman/listinfo/web-sig</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-0360.rst">https://github.com/python/peps/blob/main/peps/pep-0360.rst</a></p> <p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0360.rst">2023-09-09 17:39:29 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="#externally-maintained-packages">Externally Maintained Packages</a><ul> <li><a class="reference internal" href="#elementtree">ElementTree</a></li> <li><a class="reference internal" href="#expat-xml-parser">Expat XML parser</a></li> <li><a class="reference internal" href="#optik">Optik</a></li> <li><a class="reference internal" href="#wsgiref">wsgiref</a></li> </ul> </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-0360.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>