Restify PEP 206 (#144)
This commit is contained in:
parent
daebe20410
commit
a6f1efa5ff
128
pep-0206.txt
128
pep-0206.txt
|
@ -5,112 +5,124 @@ Last-Modified: $Date$
|
|||
Author: A.M. Kuchling <amk@amk.ca>
|
||||
Status: Withdrawn
|
||||
Type: Informational
|
||||
Content-Type: text/x-rst
|
||||
Created:
|
||||
Post-History:
|
||||
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This PEP describes the Python Advanced Library, a collection of
|
||||
high-quality and frequently-used third party extension modules.
|
||||
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
|
||||
Please suggest additional domains of interest.
|
||||
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.
|
||||
XML parsing: ElementTree + SAX.
|
||||
|
||||
URL retrieval: libcurl? other possibilities?
|
||||
URL retrieval: libcurl? other possibilities?
|
||||
|
||||
HTML parsing: mxTidy? HTMLParser?
|
||||
HTML parsing: mxTidy? HTMLParser?
|
||||
|
||||
Async network I/O: Twisted
|
||||
Async network I/O: Twisted
|
||||
|
||||
RDF parser: ???
|
||||
RDF parser: ???
|
||||
|
||||
HTTP serving: ???
|
||||
HTTP serving: ???
|
||||
|
||||
HTTP cookie processing: ???
|
||||
HTTP cookie processing: ???
|
||||
|
||||
Web framework: A WSGI gateway, perhaps? Paste?
|
||||
Web framework: A WSGI gateway, perhaps? Paste?
|
||||
|
||||
Graphics: PIL, Chaco.
|
||||
Graphics: PIL, Chaco.
|
||||
|
||||
|
||||
Domain: Scientific Programming
|
||||
==============================
|
||||
|
||||
Numeric: Numeric, SciPy
|
||||
Numeric: Numeric, SciPy
|
||||
|
||||
Graphics: PIL, Chaco.
|
||||
Graphics: PIL, Chaco.
|
||||
|
||||
|
||||
Domain: Application Development
|
||||
===============================
|
||||
|
||||
GUI toolkit: ???
|
||||
GUI toolkit: ???
|
||||
|
||||
Graphics: Reportlab for PDF generation.
|
||||
Graphics: Reportlab for PDF generation.
|
||||
|
||||
|
||||
Domain: Education
|
||||
=================
|
||||
|
||||
Graphics: PyGame
|
||||
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.
|
||||
|
||||
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?
|
||||
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.
|
||||
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."
|
||||
================
|
||||
|
||||
The PEP is based on an earlier draft PEP by Moshe Zadka, titled
|
||||
"2.0 Batteries Included."
|
||||
|
||||
|
||||
Local Variables:
|
||||
mode: indented-text
|
||||
indent-tabs-mode: nil
|
||||
End:
|
||||
..
|
||||
Local Variables:
|
||||
mode: indented-text
|
||||
indent-tabs-mode: nil
|
||||
End:
|
||||
|
|
Loading…
Reference in New Issue