Was ist das übliche Header-Format von Python-Dateien?



Answers

Ich bevorzuge minimale Dateiköpfe, mit denen ich nur meine:

  • Der Hashbang ( #! Zeile), wenn dies ein ausführbares Skript ist
  • Modul Docstring
  • Importe, gruppiert wie beschrieben in der Antwort des Reisenden .

Alles andere ist eine Verschwendung von Zeit, visuellem Raum und ist aktiv irreführend.

Wenn Sie rechtliche Hinweise oder Lizenzinformationen haben, wird eine separate Datei verwendet. Es muss nicht jede Quellcodedatei infiziert werden. Ihr Urheberrecht sollte dabei sein. Die Leute sollten es in Ihrer LICENSE Datei finden können, nicht zufällig Quellcode.

Metadaten wie Autorschaft und Daten werden bereits von Ihrer Quellcodeverwaltung verwaltet. Es ist nicht notwendig, eine weniger detaillierte, fehlerhafte und veraltete Version derselben Information in der Datei selbst hinzuzufügen.

Ich glaube nicht, dass es noch andere Daten gibt, die jeder in seine Quelldateien schreiben muss. Sie haben möglicherweise eine bestimmte Anforderung, dies zu tun, aber solche Dinge gelten definitionsgemäß nur für Sie. Sie haben keinen Platz in "allgemeine Header für alle empfohlen".

Question

Ich habe in einem Dokument über Python-Codierungsrichtlinien das folgende Header-Format für Python-Quelldateien gefunden:

#!/usr/bin/env python

"""Foobar.py: Description of what foobar does."""

__author__      = "Barack Obama"
__copyright__   = "Copyright 2009, Planet Earth"

Ist das das Standardformat von Headern in der Python-Welt? Welche anderen Felder / Informationen kann ich in den Header eintragen? Python-Gurus teilen Ihre Richtlinien für gute Python-Quellkopfzeilen :-)




Siehe auch PEP 263, wenn Sie einen nicht-ASCII-Zeichensatz verwenden

Abstrakt

Dieser PEP schlägt vor, eine Syntax einzuführen, um die Kodierung einer Python-Quelldatei zu deklarieren. Die Codierungsinformation wird dann vom Python-Parser verwendet, um die Datei unter Verwendung der gegebenen Codierung zu interpretieren. Vor allem verbessert dies die Interpretation von Unicode-Literalen im Quellcode und ermöglicht das Schreiben von Unicode-Literalen mit zB UTF-8 direkt in einen Unicode-fähigen Editor.

Problem

In Python 2.1 können Unicode-Literale nur mit der Latin-1-basierten Codierung "Unicode-Escape" geschrieben werden. Dies macht die Programmierumgebung eher unfreundlich für Python-Benutzer, die in Nicht-Latin-1-Sprachumgebungen wie vielen asiatischen Ländern leben und arbeiten. Programmierer können ihre 8-Bit-Strings mit der bevorzugten Codierung schreiben, sind jedoch an die Unicode-Escape-Codierung für Unicode-Literale gebunden.

Vorgeschlagene Lösung

Ich schlage vor, die Python-Quellcode-Kodierung sowohl sichtbar als auch veränderbar auf einer Quelldatei-Basis zu machen, indem ich einen speziellen Kommentar am Anfang der Datei verwende, um die Kodierung zu deklarieren.

Um Python auf diese Kodierungsdeklaration aufmerksam zu machen, sind einige Konzeptänderungen in Bezug auf die Handhabung von Python-Quellcodedaten erforderlich.

Definieren der Codierung

Python wird standardmäßig auf ASCII als Standardcodierung eingestellt, wenn keine anderen Codierungshinweise angegeben werden.

Um eine Quellcodekodierung zu definieren, muss ein magischer Kommentar in die Quelldateien entweder als erste oder zweite Zeile in der Datei eingefügt werden, z.

      # coding=<encoding name>

oder (unter Verwendung von Formaten, die von bekannten Redakteuren erkannt wurden)

      #!/usr/bin/python
      # -*- coding: <encoding name> -*-

oder

      #!/usr/bin/python
      # vim: set fileencoding=<encoding name> :

...




Links