PEP 206 – Python Advanced Library
- Autor:
- A.M. Kuchling <amk at amk.ca>
- Status:
- Zurückgezogen
- Typ:
- Informational
- Erstellt:
- 14-Jul-2000
- Post-History:
Einleitung
Dieses PEP beschreibt die Python Advanced Library, eine Sammlung von hochwertigen und häufig verwendeten Drittanbieter-Erweiterungsmodulen.
Philosophie der „Batteries Included“
Die Python-Quellcode-Distribution hat seit langem die Philosophie „Batteries Included“ (Batterien inklusive) gepflegt – sie verfügt über eine reichhaltige und vielseitige Standardbibliothek, die sofort verfügbar ist, ohne dass der Benutzer separate Pakete herunterladen muss. Dies verschafft der Python-Sprache in vielen Projekten einen Vorsprung.
Die Module der Standardbibliothek sind jedoch nicht immer die beste Wahl für eine Aufgabe. Einige Bibliotheksmodule waren schnelle Hacks (z.B. calendar, commands), einige wurden schlecht konzipiert und sind jetzt nahezu unmöglich zu reparieren (cgi), und einige sind durch andere, vollständigere Module obsolet geworden (binascii bietet dieselben Funktionen wie die Module binhex, uu und base64). Dieses PEP beschreibt eine Liste von Drittanbieter-Modulen, die Python für verschiedene Anwendungsdomänen wettbewerbsfähiger machen und die Python Advanced Library bilden.
Das Ergebnis ist eine Reihe von Skripten, die die Pakete für eine bestimmte Anwendungsdomäne abrufen, erstellen und installieren. Das Python Package Index enthält nun genügend Informationen, um Software automatisch Pakete finden und herunterladen zu lassen, sodass die Zeit reif ist, dies zu implementieren.
Derzeit schlägt dieses Dokument nicht vor, Module aus der Standardbibliothek zu *entfernen*, die durch ein Drittanbieter-Modul ersetzt wurden. Das ist schwierig zu tun, da es viele Probleme mit der Abwärtskompatibilität mit sich bringt, daher lohnt es sich jetzt nicht, sich damit zu befassen.
Bitte schlagen Sie zusätzliche interessante Domänen vor.
Domäne: Web-Aufgaben
XML-Parsing: ElementTree + SAX.
URL-Abruf: libcurl? andere Möglichkeiten?
HTML-Parsing: mxTidy? HTMLParser?
Asynchrone Netzwerk-I/O: Twisted
RDF-Parser: ???
HTTP-Bereitstellung: ???
HTTP-Cookie-Verarbeitung: ???
Web-Framework: Ein WSGI-Gateway, vielleicht? Paste?
Grafik: PIL, Chaco.
Domäne: Wissenschaftliches Programmieren
Numerik: Numeric, SciPy
Grafik: PIL, Chaco.
Domäne: Anwendungsentwicklung
GUI-Toolkit: ???
Grafik: Reportlab zur PDF-Generierung.
Domäne: Bildung
Grafik: PyGame
Software unter der GNU General Public License
Einige dieser Drittanbieter-Module fallen unter die GNU General Public License und die GNU Lesser General Public License. Die Bereitstellung eines Skripts zum Herunterladen und Installieren solcher Pakete oder sogar das Zusammenfassen all dieser Pakete in einem einzigen Tarball oder einer CD-ROM sollte keine Schwierigkeiten mit der GPL unter der Klausel der „bloßen Aggregation“ der Lizenz verursachen.
Offene Fragen
Welche anderen Anwendungsdomänen sind wichtig?
Sollte dies nur eine Reihe von Ubuntu- oder Debian-Paketen sein? Das Kompilieren von Dingen wie PyGame kann sehr kompliziert sein und zu schwierig zu automatisieren sein.
Danksagungen
Das PEP basiert auf einem früheren Entwurf eines PEP von Moshe Zadka mit dem Titel „2.0 Batteries Included“.
Quelle: https://github.com/python/peps/blob/main/peps/pep-0206.rst
Zuletzt geändert: 2024-04-14 13:35:25 GMT