Cet article est le troisième jour du calendrier de l'Avent DSL.
Le contenu revient à essayer de vérifier automatiquement si le code Python est conforme à PEP8 chaque fois que vous poussez vers le référentiel à l'aide de la fonction travis-ci. J'avais l'impression qu'aucun article japonais n'essayait de faire quelque chose comme ça auparavant, alors j'ai décidé de l'écrire cette fois. ** Veuillez noter qu'il s'agit d'une vérification automatique de pycodestyle et ne rejette pas automatiquement le push ou la fusion. ** **
Sakura Knowledge est facile à comprendre. En gros, ce qui suit peut être facilement exécuté avec le service d'exécution de test automatique lié à GitHub.
C'est pratique.
Il existe une convention de code Python appelée PEP8, et c'est une bibliothèque qui vérifie si le code est conforme à cette convention. Je pense que d'autres articles seront utiles pour une discussion détaillée sur les résultats de sortie de PEP8 et pycodestyle.
La procédure est également décrite dans la page tutoriel travis-ci.
.travis.yml
en tant que racine dans le référentiel.Voici un bref résumé.
.travis.yml
Décrivez le type de traitement à effectuer dans le contenu de .travis.yml
.
Cette fois, je veux vérifier le code avec pycodestyle du package python, il ressemble donc à ce qui suit
.tavis.yml
language: python3
cache: pip
sudo: false
install:
- pip install pycodestyle
script:
- pycodestyle .
sample code Vérifiez avec le code simple ci-dessous pour voir comment cela fonctionne.
helloworld.py
print("hello",end="") # hello
print("world") # world
Au fait, dans ce code, Ligne 1: Il n'y a pas d'espace après le ",". 2ème ligne: Il n'y a qu'un espace avant le "#" dans le texte du commentaire (correctement deux). Non conforme à PEP8, veuillez donc le détecter automatiquement.
Après avoir terminé divers paramètres, essayez de pousser vers github. Ensuite, le journal suivant a été sorti dans le journal travis-ci. (Extrait)
log
$ pycodestyle .
./helloworld.py:1:14: E231 missing whitespace after ','
./helloworld.py:2:15: E261 at least two spaces before inline comment
The command "pycodestyle ." exited with 1.
store build cache
Done. Your build exited with 1.
Lorsque vous appuyez sur, la vérification pycodestyle démarre. S'il est attrapé, il sera renvoyé avec le code d'état 1, il semble donc que la construction a échoué. Après tout, il semble que deux points ne soient pas conformes à PEP8. corriger.
Corrigez la partie coincée et appuyez à nouveau
helloworld.py
print("hello", end="") # hello
print("world") # world
log
$ pycodestyle .
The command "pycodestyle ." exited with 0.
Oui! On dirait que c'est un beau code.
Il est maintenant automatiquement vérifié chaque fois que le code Python est mis à jour à l'aide de travis-ci et pycodestyle. Si vous souhaitez le réparer automatiquement, l'utilisation d'un module tel que autopep8 peut faciliter la maintenance du code. Lors du développement par vous-même, vous ne vous souciez peut-être pas beaucoup de la propreté du code, mais en réalité, vous ne pouvez pas le dire, donc je pense que vous devriez vous en soucier (Boomerang).
Connaissance Sakura page du tutoriel travis-ci
Recommended Posts