Vérifier automatiquement les scripts Python avec GitHub + Travis-CI + pycodestyle

Contrôle automatique avec travis-ci + pycodestyle

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. ** **

Qu'est-ce que travis-ci?

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.

Qu'est-ce que le pycodestyle

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.

Essayez d'utiliser

Procédure d'installation

La procédure est également décrite dans la page tutoriel travis-ci.

  1. Accédez à Travis-ci.com et connectez-vous avec GitHub à Register Account
  2. Appuyez sur le bouton Activer et enregistrez le référentiel pour lequel vous souhaitez utiliser la fonction.
  3. Placez .travis.yml en tant que racine dans le référentiel.
  4. Push vers le référentiel distant
  5. Vérifiez le résultat avec travis-ci

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.

Contrôle de fonctionnement

Avant correction

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)

スクリーンショット 2019-12-02 18.12.20.png

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.

modifié

Corrigez la partie coincée et appuyez à nouveau

helloworld.py


print("hello", end="")  # hello
print("world")  # world

スクリーンショット 2019-12-02 18.14.13.png

log


$ pycodestyle .
The command "pycodestyle ." exited with 0.

Oui! On dirait que c'est un beau code.

Résumé

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).

référence

Connaissance Sakura page du tutoriel travis-ci

Recommended Posts

Vérifier automatiquement les scripts Python avec GitHub + Travis-CI + pycodestyle
Vérification de domaine avec Python
Vérifier la version avec python
Vérifiez la couverture de python avec pytest-cov
Utilisez des scripts personnalisés Python avec StackStorm
Créer automatiquement la documentation Python avec Sphinx
Vérifier les modules installés à partir du script Python
[Python] Vérification simple du type d'argument avec la classe de données
Vérifier l'existence du fichier avec python
Vérifiez les cours des actions avec Slackbot en utilisant Python
Distribution totale automatique du deck JCG avec Python
[Python] Utiliser automatiquement le navigateur avec Selenium
J'utilise tox et Python 3.3 avec Travis-CI
Pyinstaller transforme les scripts Python en .exes qui peuvent être exécutés sous Windows
Rechercher et télécharger automatiquement des vidéos YouTube avec Python
Lire les données avec python / netCDF> nc.variables [] / Vérifier la taille des données
Vérifiez la date du devoir de drapeau avec Python
Formater automatiquement le code Python en code compatible PEP8 avec Emacs
Essayez de générer automatiquement des documents Python avec Sphinx
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
vérification de la grammaire python
gevent avec travis-ci
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Télécharger en tant que données ouvertes à l'aide de l'API CKAN en Python et lier automatiquement avec les actions Github
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Collez automatiquement des images dans des matériaux Powerpo avec python + α
Utilisez Cursur qui se ferme automatiquement avec sqlite3 en Python
Entrez facilement des textes d'apprentissage Azure LUIS avec des scripts Python
Traduisez automatiquement DeepL en anglais avec Python et Selenium