Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEP 241 – Metadaten für Python-Softwarepakete

Autor:
A.M. Kuchling <amk at amk.ca>
Discussions-To:
Distutils-SIG Liste
Status:
Abgelöst
Typ:
Standards Track
Thema:
Packaging
Erstellt:
12-Mrz-2001
Post-History:
19-Mrz-2001
Ersetzt-Durch:
314

Inhaltsverzeichnis

Wichtig

Dieses PEP ist ein historisches Dokument. Die aktuelle, kanonische Spezifikation, Kernmetadatenspezifikationen, wird auf der PyPA Specs-Seite gepflegt.

×

Siehe den PyPA-Spezifikations-Update-Prozess, um Änderungen vorzuschlagen.

Einleitung

Dieser PEP beschreibt einen Mechanismus zum Hinzufügen von Metadaten zu Python-Paketen. Er enthält Details zu den Feldnamen, ihrer Semantik und Verwendung.

Einbeziehung von Metadaten in Pakete

Der Distutils ‘sdist’-Befehl wird modifiziert, um die Metadatenfelder aus den Argumenten zu extrahieren und sie in eine Datei im generierten Zipfile oder Tarball zu schreiben. Diese Datei wird PKG-INFO heißen und im Stammverzeichnis der Quellcode-Distribution platziert (wo README, INSTALL und andere Dateien normalerweise liegen).

Entwickler dürfen keine eigene PKG-INFO-Datei bereitstellen. Der „sdist“-Befehl wird, wenn er eine vorhandene PKG-INFO-Datei erkennt, mit einer entsprechenden Fehlermeldung beendet. Dies soll Verwirrung vermeiden, die durch veraltete PKG-INFO- und setup.py-Dateien entstehen kann.

Das PKG-INFO-Dateiformat ist ein einzelner Satz von RFC 822-Headern, die vom rfc822.py-Modul geparst werden können. Die im folgenden Abschnitt aufgeführten Feldnamen werden als Header-Namen verwendet. In diesem einfachen Format gibt es keinen Erweiterungsmechanismus; die Catalog- und Distutils-SIGs werden sich bemühen, ein flexibleres Format für Python 2.2 bereitzustellen.

Felder

Dieser Abschnitt spezifiziert die Namen und die Semantik jedes unterstützten Metadatenfeldes.

Felder, die mit „(mehrfache Verwendung)“ gekennzeichnet sind, dürfen mehrmals in einer einzigen PKG-INFO-Datei angegeben werden. Andere Felder dürfen nur einmal in einer PKG-INFO-Datei vorkommen. Felder, die mit „(optional)“ gekennzeichnet sind, müssen nicht in einer gültigen PKG-INFO-Datei vorhanden sein, alle anderen Felder müssen vorhanden sein.

Metadata-Version

Version des Dateiformats; derzeit ist „1.0“ der einzige zulässige Wert hier.

Beispiel

Metadata-Version: 1.0

Name

Der Name des Pakets.

Beispiel

Name: BeagleVote

Version

Eine Zeichenkette, die die Versionsnummer des Pakets enthält. Dieses Feld sollte von einer der Version-Klassen (StrictVersion oder LooseVersion) im distutils.version-Modul geparst werden können.

Beispiel

Version: 1.0a2

Platform (mehrfache Verwendung)

Eine durch Kommas getrennte Liste von Plattformspezifikationen, die die vom Paket unterstützten Betriebssysteme zusammenfasst. Die wichtigsten unterstützten Plattformen sind unten aufgeführt, aber diese Liste ist notwendigerweise unvollständig.

POSIX, MacOS, Windows, BeOS, Palm OS.

Binäre Distributionen werden das Feld Supported-Platform in ihren Metadaten verwenden, um das Betriebssystem und die CPU anzugeben, für die das Binärpaket kompiliert wurde. Die Semantik von Supported-Platform ist in diesem PEP nicht spezifiziert.

Beispiel

Platform: POSIX, Windows

Zusammenfassung

Eine einzeilige Zusammenfassung dessen, was das Paket tut.

Beispiel

Summary: A module for collecting votes from beagles.

Description (optional)

Eine längere Beschreibung des Pakets, die mehrere Absätze umfassen kann. (Software, die mit Metadaten umgeht, sollte keine maximale Größe für dieses Feld annehmen, obwohl zu hoffen ist, dass die Leute nicht ihr Bedienungshandbuch als lange Beschreibung einfügen.)

Beispiel

Description: This module collects votes from beagles
             in order to determine their electoral wishes.
             Do NOT try to use this module with basset hounds;
             it makes them grumpy.

Keywords (optional)

Eine Liste zusätzlicher Schlüsselwörter, die verwendet werden, um die Suche nach dem Paket in einem größeren Katalog zu unterstützen.

Beispiel

Keywords: dog puppy voting election

Home-page (optional)

Eine Zeichenkette, die die URL für die Homepage des Pakets enthält.

Beispiel

Home-page: http://www.example.com/~cschultz/bvote/

Author (optional)

Eine Zeichenkette, die mindestens den Namen des Autors enthält. Kontaktinformationen können ebenfalls hinzugefügt werden, wobei jede Zeile durch Zeilenumbrüche getrennt wird.

Beispiel

Author: C. Schultz
        Universal Features Syndicate
        Los Angeles, CA

Author-email

Eine Zeichenkette, die die E-Mail-Adresse des Autors enthält. Sie kann einen Namen und eine E-Mail-Adresse in den gültigen Formen für einen RFC 822 ‘From:’-Header enthalten. Sie ist nicht optional, da Katalogsysteme den E-Mail-Teil dieses Feldes als eindeutigen Schlüssel zur Darstellung des Autors verwenden können. Ein Katalog könnte Autoren die Möglichkeit bieten, ihren GPG-Schlüssel, ihre persönliche Homepage und andere zusätzliche Metadaten *über den Autor* zu speichern, und optional die Möglichkeit, mehrere E-Mail-Adressen mit derselben Person zu verknüpfen. Autorbezogene Metadatenfelder werden in diesem PEP nicht behandelt.

Beispiel

Author-email: "C. Schultz" <cschultz@example.com>

Lizenz

Eine Zeichenkette, die aus einer kurzen Liste von Optionen ausgewählt wird und die Lizenz angibt, unter der das Paket steht. Einige Lizenzen führen dazu, dass die Software frei weiterverteilbar ist, sodass Paketierer und Wiederverkäufer automatisch wissen, dass sie die Software frei weiterverteilen dürfen. Andere Lizenzen erfordern eine sorgfältige Prüfung durch einen Menschen, um festzustellen, wie die Software neu verpackt und weiterverkauft werden kann.

Die Auswahlmöglichkeiten sind

Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL, unknown,
nocommercial, nosell, nosource, shareware, other

Definitionen einiger Lizenzen sind

DFSG Die Lizenz entspricht den Debian Free Software Guidelines, verwendet aber keine der anderen hier aufgeführten DFSG-konformen Lizenzen. Weitere Informationen finden Sie unter: http://www.debian.org/social_contract#guidelines
Python Lizenz von Python 1.6 oder höher. Version 1.5.2 und früher unterliegen der MIT-Lizenz.
public domain Software ist gemeinfrei, nicht urheberrechtlich geschützt.
unknown Status ist unbekannt
nocommercial Freie private Nutzung, aber kommerzielle Nutzung nicht gestattet
nosell Freie Nutzung, aber Weiterverkauf gegen Entgelt nach Vereinbarung
nosource Frei weiterverteilbar, aber kein Quellcode
shareware Zahlung wird verlangt, wenn Software genutzt wird
other Allgemeine Kategorie für andere Nicht-DFSG-Lizenzen

Einige dieser Lizenzen können so interpretiert werden, dass die Software frei weiterverteilbar ist. Die Liste der weiterverteilbaren Lizenzen ist

Artistic, BSD, DFSG, GNU GPL, GNU LGPL, "MIT",
Mozilla PL, "public domain", Python, Qt PL, Zope PL,
nosource, shareware

Beachten Sie, dass weiterverteilbar zu sein nicht bedeutet, dass ein Paket als freie Software gilt, wie Beispiele wie „nosource“ und „shareware“ zeigen.

Beispiel

License: MIT

Danksagungen

Viele Änderungen und Überarbeitungen dieses Dokuments wurden von den Lesern der Distutils SIG vorgeschlagen. Insbesondere trug Sean Reifschneider oft tatsächlichen Text zur Aufnahme in diesen PEP bei.

Die Liste der Lizenzen wurde anhand der SourceForge-Lizenzliste und der von Graham Williams kompilierten CTAN-Lizenzliste zusammengestellt; Carey Evans steuerte ebenfalls mehrere nützliche Vorschläge zu dieser Liste bei.


Quelle: https://github.com/python/peps/blob/main/peps/pep-0241.rst

Zuletzt geändert: 2024-10-06 16:27:00 GMT