[Python-checkins] python/nondist/peps pep-0000.txt, 1.329, 1.330 pep-0206.txt, 1.12, 1.13
akuchling@users.sourceforge.net
akuchling at users.sourceforge.net
Mon Jun 27 22:32:47 CEST 2005
Update of /cvsroot/python/python/nondist/peps
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17543
Modified Files:
pep-0000.txt pep-0206.txt
Log Message:
Take over PEP 206, renaming it to 'Python Advanced Library'
Index: pep-0000.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/pep-0000.txt,v
retrieving revision 1.329
retrieving revision 1.330
diff -u -d -r1.329 -r1.330
--- pep-0000.txt 26 Jun 2005 14:10:44 -0000 1.329
+++ pep-0000.txt 27 Jun 2005 20:31:42 -0000 1.330
@@ -67,7 +67,7 @@
Open PEPs (under consideration)
- I 206 2.0 Batteries Included Zadka
+ I 206 Python Advanced Library Kuchling
S 209 Adding Multidimensional Arrays Barrett, Oliphant
S 228 Reworking Python's Numeric Model Zadka, GvR
S 237 Unifying Long Integers and Integers Zadka, GvR
@@ -248,7 +248,7 @@
SF 203 Augmented Assignments Wouters
SR 204 Range Literals Wouters
S 205 Weak References Drake
- I 206 2.0 Batteries Included Zadka
+ I 206 Python Advanced Library Kuchling
SF 207 Rich Comparisons GvR, Ascher
SF 208 Reworking the Coercion Model Schemenauer, Lemburg
S 209 Adding Multidimensional Arrays Barrett, Oliphant
Index: pep-0206.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/pep-0206.txt,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- pep-0206.txt 23 Jan 2001 11:33:04 -0000 1.12
+++ pep-0206.txt 27 Jun 2005 20:31:59 -0000 1.13
@@ -1,133 +1,109 @@
PEP: 206
-Title: 2.0 Batteries Included
+Title: Python Advanced Library
Version: $Revision$
-Author: moshez at zadka.site.co.il (Moshe Zadka)
-Python-Version: 2.0
+Author: A.M. Kuchling <amk at amk.ca>
Status: Draft
Introduction
- This PEP describes the `batteries included' proposal for Python
- 2.0, the fat distribution containing commonly used third party
- extension modules. This PEP tracks the status and ownership of
- this proposal, slated for introduction in Python 2.0. It contains
- a description of the proposal and outlines how to support it.
-
+ 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 always maintained the philosophy of
- "batteries included" -- having a rich and versatile standard
+ 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 Python standard library
- often relies on important Open Source libraries which might be
- unavailable on many computers, so that the user has to separately
- download and compile those. Some examples are the zlib
- compression library, and the gmp number manipulation library.
+ start in many projects.
- The original coinage of the term "batteries included" can be found
- here:
+ 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.
- http://www.uk.research.att.com/~fms/ipc7/tr-1998-9.html
+ 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.
-The Proposed Solution
- The proposed solution is to maintain an alternate form of distribution,
- nicknamed the "sumo" interpreter. It will be structured as a core
- interpreter + extra useful libraries. In addition, the build procedure
- will be changed to build those libraries by default, and build the Python
- modules which rely on them linked against those libraries. Individual
- users will still be able to link the Python modules against already
- installed libraries, or disable them completely.
+Domain: Web tasks
- Additionally, some Open Source third-party Python modules will
- also be distributed in the "sumo" distribution. The
- difference between those and external libraries is that the former
- are distributed in order to make the Python distribution self
- contained, and the latter are added so there will be new
- functionality in out-of-the-box Python.
+ XML parsing: ElementTree + SAX.
-Python Advanced Library
+ URL retrieval: libcurl? other possibilities?
- Since it is decided that the additions to the interpreter will live
- in a seperate directory, they can even be distributed seperately,
- as an additional library. This is called the "Python Advanced Library",
- or PAL. This will also solve the problem of an advanced library module
- failing -- the core interpreter will still be built, tested and installed.
- Since the compilation of the other modules be helped by Python scripts,
- it is quite possible that it will even install as many modules as it
- can.
+ HTML parsing: mxTidy? HTMLParser?
-Suggested Libraries and Modules
+ Async network I/O: Twisted
- Here is the tentative list of libraries which are proposed to be
- dealt with in this manner, and where they can be downloaded:
+ RDF parser: ???
- zlib -- http://www.info-zip.org/pub/infozip/zlib/zlib.tar.gz
- expat -- ftp://ftp.jclark.com/pub/xml/expat.zip
- Tcl -- http://dev.scriptics.com:80/download/tcl/tcl8_3/tcl8.3.1.tar.gz
- Tk -- http://dev.scriptics.com:80/download/tcl/tcl8_3/tk8.3.1.tar.gz
- PIL -- http://www.pythonware.com/downloads/Imaging-1.1.tar.gz
- libjpeg -- ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
- ncurses -- ftp://dickey.his.com/ncurses/ncurses.tar.gz
+ HTTP serving: ???
- TBD, the following:
+ HTTP cookie processing: ???
- NumPy -- http://download.sourceforge.net/numpy/Numerical-15.3.tgz
- Pmw -- ftp://ftp.dscpl.com.au/pub/pmw/Pmw.0.8.4.tar.gz
- BLT -- ftp://ftp.tcltk.com/aa004735/pub/blt/BLT2.4u.tar.gz
- piddle -- http://download.sourceforge.net/piddle/piddle-1.0b7.tgz
+ Web framework: A WSGI gateway, perhaps? Paste?
+ Graphics: PIL, Chaco.
-Connection to Distutils
- Since Python 2.0 comes with a new mechanism of distributing Python
- modules, called ``distutils'', we should be able to use it. Specificially,
- since distutils has the capability or building Python modules in an
- automatic fashion, it is hoped that some of the work will consist in
- creating a new directory with the source, and having the ``super-make''
- run "./setup --install" in those directories. This should at least take
- care of PIL, NumPy and Pmw. In addition, it is hoped that this mechanism
- will be easy enough to add other Python modules as user requests direct
- us.
-
-Software covered by the GNU General Public License
+Domain: Scientific Programming
- While many Python modules rely on software distributed under the
- GNU General Public License and the GNU Lesser General Public
- License, no such sources are proposed here to be added to the
- sumo interpreter. Currently, the Python interpreter is
- distributed under a closed-source-friendly license, which means
- that it is possible to include it in a closed source product.
- Making redistributers worry about which parts they need to remove
- to make closed-source redistribution legal might cost more then
- the benefits.
+ Numeric: Numeric, SciPy
-How It Is Implemented
+ Graphics: PIL, Chaco.
- Sumo-Python is basically be a set of scripts, which download
- a Python source tarball, and source tarballs for all the modules.
- Then it unpacks everything, modifies Setup.in (or whatever mechanism
- will be in place by Python 2.1, and puts in a little
- shell script which builds everything. Then it will repack it
- into the huge tarball which will be a sumo-python-version.tar.gz,
- which users can then download and install.
- Inside the tarball, running the script
+Domain: Application Development
- build-everything [--prefix ...]
+ GUI toolkit: ???
- Will compile and install a sumo interpreter into specified prefix.
+ 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
- ESR also mentioned libpng, but I don't know of a Python module
- that uses it.
+ What other application domains are important?
- How to make PAL as easy to build as the whole Sumo Python?
+ 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."
Local Variables:
More information about the Python-checkins
mailing list