Je suis tombé sur le format d'en-tête suivant pour les fichiers source Python dans un document sur les directives de codage Python:
#!/usr/bin/env python
"""Foobar.py: Description of what foobar does."""
__author__ = "Barack Obama"
__copyright__ = "Copyright 2009, Planet Earth"
Est-ce le format standard des en-têtes dans le monde Python? Quels autres champs / informations puis-je mettre dans l'en-tête? Les gourous de Python partagent vos directives pour de bons en-têtes de source Python :-)
Réponses:
Toutes ses métadonnées pour le
Foobar
module.Le premier est celui
docstring
du module, qui est déjà expliqué dans la réponse de Peter .Ici , vous avez plus d' informations, la liste
__author__
,__authors__
,__contact__
,__copyright__
,__license__
,__deprecated__
,__date__
et__version__
métadonnées reconnues.la source
__version__
doit suivre directement la docstring principale, avec une ligne vierge avant et après. En outre, il est préférable de définir votre jeu de caractères immédiatement sous le shebang -# -*- coding: utf-8 -*-
Je privilégie fortement les en-têtes de fichiers minimaux, ce qui signifie simplement:
#!
ligne) s'il s'agit d'un script exécutablec'est à dire. trois groupes d'importations, avec une seule ligne blanche entre eux. Au sein de chaque groupe, les importations sont triées. Le dernier groupe, les importations de source locale, peut être soit des importations absolues comme indiqué, soit des importations relatives explicites.
Tout le reste est une perte de temps, d'espace visuel et est activement trompeur.
Si vous avez des clauses de non-responsabilité ou des informations de licence, elles sont enregistrées dans un fichier distinct. Il n'a pas besoin d'infecter tous les fichiers de code source. Votre droit d'auteur devrait en faire partie. Les gens devraient pouvoir le trouver dans votre
LICENSE
fichier, pas dans un code source aléatoire.Les métadonnées telles que la paternité et les dates sont déjà conservées par votre contrôle de source. Il n'est pas nécessaire d'ajouter une version moins détaillée, erronée et obsolète des mêmes informations dans le fichier lui-même.
Je ne pense pas qu'il y ait d'autres données que tout le monde doive mettre dans tous leurs fichiers source. Vous pouvez avoir une exigence particulière à cet égard, mais ces choses ne s'appliquent, par définition, qu'à vous. Ils n'ont pas leur place dans les «en-têtes généraux recommandés pour tout le monde».
la source
__version__
métadonnées, cependant, et je pense que c'est bien d'avoir, car ils devraient être accessibles aux programmes et à vérifier rapidement dans l'interpréteur interactif. La paternité et les informations légales appartiennent cependant à un fichier différent. Sauf si vous avez un cas d'utilisation pourif 'Rob' in __author__:
Les réponses ci-dessus sont vraiment complètes, mais si vous voulez un en-tête rapide et sale à copier-coller, utilisez ceci:
Pourquoi c'est un bon:
Voir aussi: https://www.python.org/dev/peps/pep-0263/
Si vous écrivez simplement une classe dans chaque fichier, vous n'avez même pas besoin de la documentation (elle irait à l'intérieur du doc de classe).
la source
Voir également PEP 263 si vous utilisez un jeu de caractères non ascii
la source