skip to navigation
skip to content

Python Wiki

Python Insider Blog

Python 2 or 3?

Help Fund Python

[Python resources in languages other than English]

Non-English Resources

Add an event to this calendar.

Times are shown in UTC/GMT.

Add an event to this calendar.

PEP: 206
Title: Python Advanced Library
Version: 17a68e052d4f
Last-Modified:  2007-06-19 04:20:07 +0000 (Tue, 19 Jun 2007)
Author: A.M. Kuchling <amk at amk.ca>
Status: Withdrawn
Type: Informational
Created: 
Post-History: 

Introduction

 This PEP describes the Python Advanced Library, a collection of high-quality and frequently-used third party extension modules. 

Batteries Included Philosophy

 The Python source distribution has long maintained the philosophy of "batteries included" -- having a rich and versatile standard library which is immediately available, without making the user download separate packages. This gives the Python language a head start in many projects. However, the standard library modules aren't always the best choices for a job. Some library modules were quick hacks (e.g. calendar, commands), some were designed poorly and are now near-impossible to fix (cgi), and some have been rendered obsolete by other, more complete modules (binascii offers the same features as the binhex, uu, base64 modules). This PEP describes a list of third-party modules that make Python more competitive for various application domains, forming the Python Advanced Library. The deliverable is a set of scripts that will retrieve, build, and install the packages for a particular application domain. The Python Package Index now contains enough information to let software automatically find packages and download them, so the time is ripe to implement this. Currently this document doesn't suggest *removing* modules from the standard library that are superseded by a third-party module. That's difficult to do because it entails many backward-compatibility problems, so it's not worth bothering with now. Please suggest additional domains of interest. 

Domain: Web tasks

 XML parsing: ElementTree + SAX. URL retrieval: libcurl? other possibilities? HTML parsing: mxTidy? HTMLParser? Async network I/O: Twisted RDF parser: ??? HTTP serving: ??? HTTP cookie processing: ??? Web framework: A WSGI gateway, perhaps? Paste? Graphics: PIL, Chaco. 

Domain: Scientific Programming

 Numeric: Numeric, SciPy Graphics: PIL, Chaco. 

Domain: Application Development

 GUI toolkit: ??? Graphics: Reportlab for PDF generation. 

Domain: Education

 Graphics: PyGame 

Software covered by the GNU General Public License

 Some of these third-party modules are covered by the GNU General Public License and the GNU Lesser General Public License. Providing a script to download and install such packages, or even assembling all these packages into a single tarball or CD-ROM, shouldn't cause any difficulties with the GPL, under the "mere aggregation" clause of the license. 

Open Issues

 What other application domains are important? Should this just be a set of Ubuntu or Debian packages? Compiling things such as PyGame can be very complicated and may be too difficult to automate. 

Acknowledgements

 The PEP is based on an earlier draft PEP by Moshe Zadka, titled "2.0 Batteries Included."