@@ -5,112 +5,124 @@ Last-Modified: $Date$
5
5
Author: A.M. Kuchling <amk@amk.ca>
6
6
Status: Withdrawn
7
7
Type: Informational
8
+ Content-Type: text/x-rst
8
9
Created:
9
10
Post-History:
10
11
11
12
12
13
Introduction
14
+ ============
15
+
16
+ This PEP describes the Python Advanced Library, a collection of
17
+ high-quality and frequently-used third party extension modules.
13
18
14
- This PEP describes the Python Advanced Library, a collection of
15
- high-quality and frequently-used third party extension modules.
16
19
17
20
Batteries Included Philosophy
21
+ =============================
22
+
23
+ The Python source distribution has long maintained the philosophy
24
+ of "batteries included" -- having a rich and versatile standard
25
+ library which is immediately available, without making the user
26
+ download separate packages. This gives the Python language a head
27
+ start in many projects.
28
+
29
+ However, the standard library modules aren't always the best
30
+ choices for a job. Some library modules were quick hacks
31
+ (e.g. calendar, commands), some were designed poorly and are now
32
+ near-impossible to fix (cgi), and some have been rendered obsolete
33
+ by other, more complete modules (binascii offers the same features
34
+ as the binhex, uu, base64 modules). This PEP describes a list of
35
+ third-party modules that make Python more competitive for various
36
+ application domains, forming the Python Advanced Library.
37
+
38
+ The deliverable is a set of scripts that will retrieve, build, and
39
+ install the packages for a particular application domain. The
40
+ Python Package Index now contains enough information to let
41
+ software automatically find packages and download them, so the
42
+ time is ripe to implement this.
18
43
19
- The Python source distribution has long maintained the philosophy
20
- of "batteries included" -- having a rich and versatile standard
21
- library which is immediately available, without making the user
22
- download separate packages. This gives the Python language a head
23
- start in many projects.
24
-
25
- However, the standard library modules aren't always the best
26
- choices for a job. Some library modules were quick hacks
27
- (e.g. calendar, commands), some were designed poorly and are now
28
- near-impossible to fix (cgi), and some have been rendered obsolete
29
- by other, more complete modules (binascii offers the same features
30
- as the binhex, uu, base64 modules). This PEP describes a list of
31
- third-party modules that make Python more competitive for various
32
- application domains, forming the Python Advanced Library.
33
-
34
- The deliverable is a set of scripts that will retrieve, build, and
35
- install the packages for a particular application domain. The
36
- Python Package Index now contains enough information to let
37
- software automatically find packages and download them, so the
38
- time is ripe to implement this.
39
-
40
- Currently this document doesn't suggest *removing* modules from
41
- the standard library that are superseded by a third-party module.
42
- That's difficult to do because it entails many backward-compatibility
43
- problems, so it's not worth bothering with now.
44
-
45
- Please suggest additional domains of interest.
44
+ Currently this document doesn't suggest *removing* modules from
45
+ the standard library that are superseded by a third-party module.
46
+ That's difficult to do because it entails many backward-compatibility
47
+ problems, so it's not worth bothering with now.
48
+
49
+ Please suggest additional domains of interest.
46
50
47
51
48
52
Domain: Web tasks
53
+ =================
49
54
50
- XML parsing: ElementTree + SAX.
55
+ XML parsing: ElementTree + SAX.
51
56
52
- URL retrieval: libcurl? other possibilities?
57
+ URL retrieval: libcurl? other possibilities?
53
58
54
- HTML parsing: mxTidy? HTMLParser?
59
+ HTML parsing: mxTidy? HTMLParser?
55
60
56
- Async network I/O: Twisted
61
+ Async network I/O: Twisted
57
62
58
- RDF parser: ???
63
+ RDF parser: ???
59
64
60
- HTTP serving: ???
65
+ HTTP serving: ???
61
66
62
- HTTP cookie processing: ???
67
+ HTTP cookie processing: ???
63
68
64
- Web framework: A WSGI gateway, perhaps? Paste?
69
+ Web framework: A WSGI gateway, perhaps? Paste?
65
70
66
- Graphics: PIL, Chaco.
71
+ Graphics: PIL, Chaco.
67
72
68
73
69
74
Domain: Scientific Programming
75
+ ==============================
70
76
71
- Numeric: Numeric, SciPy
77
+ Numeric: Numeric, SciPy
72
78
73
- Graphics: PIL, Chaco.
79
+ Graphics: PIL, Chaco.
74
80
75
81
76
82
Domain: Application Development
83
+ ===============================
77
84
78
- GUI toolkit: ???
85
+ GUI toolkit: ???
79
86
80
- Graphics: Reportlab for PDF generation.
87
+ Graphics: Reportlab for PDF generation.
81
88
82
89
83
90
Domain: Education
91
+ =================
84
92
85
- Graphics: PyGame
93
+ Graphics: PyGame
86
94
87
95
88
96
Software covered by the GNU General Public License
97
+ ==================================================
98
+
99
+ Some of these third-party modules are covered by the GNU General
100
+ Public License and the GNU Lesser General Public License.
101
+ Providing a script to download and install such packages, or even
102
+ assembling all these packages into a single tarball or CD-ROM,
103
+ shouldn't cause any difficulties with the GPL, under the "mere
104
+ aggregation" clause of the license.
89
105
90
- Some of these third-party modules are covered by the GNU General
91
- Public License and the GNU Lesser General Public License.
92
- Providing a script to download and install such packages, or even
93
- assembling all these packages into a single tarball or CD-ROM,
94
- shouldn't cause any difficulties with the GPL, under the "mere
95
- aggregation" clause of the license.
96
-
97
106
98
107
Open Issues
108
+ ===========
99
109
100
- What other application domains are important?
110
+ What other application domains are important?
101
111
102
- Should this just be a set of Ubuntu or Debian packages? Compiling
103
- things such as PyGame can be very complicated and may be too
104
- difficult to automate.
112
+ Should this just be a set of Ubuntu or Debian packages? Compiling
113
+ things such as PyGame can be very complicated and may be too
114
+ difficult to automate.
105
115
106
116
107
117
Acknowledgements
108
-
109
- The PEP is based on an earlier draft PEP by Moshe Zadka, titled
110
- "2.0 Batteries Included."
118
+ ================
119
+
120
+ The PEP is based on an earlier draft PEP by Moshe Zadka, titled
121
+ "2.0 Batteries Included."
111
122
112
123
113
- Local Variables:
114
- mode: indented-text
115
- indent-tabs-mode: nil
116
- End:
124
+ ..
125
+ Local Variables:
126
+ mode: indented-text
127
+ indent-tabs-mode: nil
128
+ End:
0 commit comments