Outil pour faire respecter le code python de style/normes
J'essaie de trouver un outil pour vérifier pour le style de codage en python.
Pour PHP, j'ai vu il y a le Code Sniffer, et un petit script perl utilisé par Drupal. Est-il un tel outil pour le code python?
- Je viens de trouver sur pep8.py mais la page ne se charge pas. Cependant, il est encore dans le cache de Google 74.125.93.132/search?q=cache:-sI5YpbDc9MJ:svn.browsershots.org/... Est-il le seul outil? existe-il des autres?
- C'est en 2018! Ces jours, vous voudrez peut-être jeter un coup d'oeil à Noir
Vous devez vous connecter pour publier un commentaire.
Dans le passé, j'ai surtout l'utilisation PyLint - il peut mettre en évidence lors de l'utilisation d'une variable non définie, lorsque vous importez des choses sans les utiliser et ainsi de suite.
Il peut être un peu verbeux, de se plaindre pour des choses comme des lignes de plus de 80 caractères, la variable ne correspond pas à certains regex, les classes ayant trop peu de public, des méthodes, les méthodes manquantes docs-trings.
Par exemple, pour le script..
PyLint génère les messages suivants:
Elles sont toutes les plaintes valides, mais j'ai tendance à désactiver beaucoup de la convention et de refactoring des messages. Vous pouvez désactiver les messages, soit comme des commentaires dans votre code:
..ou que les arguments de ligne de commande pour le PyLint commande:
Avec les messages ci-dessus désactivé, il génère les messages suivants pour le code ci-dessus:
PyLint génère également un "code de rapport", y compris le nombre de lignes de code/commentaires/docstring/espaces du fichier, le nombre de messages par catégorie, et donne à votre code d'un "score": 10 pas de messages, 0 étant généralement une erreur de syntaxe
Une autre option est PyFlakes, que je trouve un peu moins excessivement bavard (j'ai récemment commencé à l'utiliser à la place de PyLint). En utilisant à nouveau le script ci-dessus, PyFlakes donne les messages suivants:
La dernière option que j'utilise est
pep8.py
, qui comme son nom l'indique applique PEP8. Il est de loin le plus.. pédant script, l'application des choses comme correcte vide-lignes avant/après de fonctions/classes, l'espacement autour de code, correct 4-l'espace de l'indentation et ainsi de suite..En cours d'exécution sur le code ci-dessus, ce produit est le suivant:
Il est principalement applique stylistique des choses comme correcte espaces, il ne fait pas beaucoup d'analyse statique du code comme PyLint ou PyFlakes, donc j'utilise pep8.py en conjonction avec PyLint ou PyFlakes.
pep8.py
a été initialement annoncé sur le python liste de diffusion ici, mais le lien de téléchargement dans ce qui est maintenant mort.. Il y a un github miroir par cburroughs, avec quelques corrections mineures à github.com/cburroughs/pep8.py, ou vous pouvez récupérer la version non modifiée de une ancienne révisionPyChecker est une autre option, bien que je n'ai pas l'utiliser
pylint et pyflakes serait un bon début.
pylint, en particulier, est très configurable, et vous pouvez appliquer un certain nombre de choses avec elle.
Trouvé ce stackoverflow question lors de la recherche pour un pep8 style de l'application de l'outil lors de la reprise d'un existant (ancienne) de projet.
https://github.com/hhatto/autopep8
sera automatiquement convertir l'ensemble du code source à confirmer avec pep8. Essayé sur mon projet de l'héritage et il fonctionne très bien. J'ai donc pensé que je voudrais mettre à jour cette réponse ici dans la.
Theres un script appelé
reindent.py
c'est parfois inclus dans votre système de distribution python qui va parcourir et re-tiret tout votre code à la recommandation 4 espaces d'indentation.Heres une copie de celui-ci dans le cas où vous ne le trouvez pas dans votre distribution: http://www.koders.com/python/fid24D30FCD2CE388C67CB980EF55630D25970CFB96.aspx?s=cdef%3Aparser