Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

Python - Utiliser un lint et un formateur pour python

Date de publication 22 juil. 2020
Nous allons voir comment configurer votre éditeur de code Visual Studio Code (VSCode) pour suivre les conventions de code en python PEP8 .

Dans tous mes projets j'utilise tox qui permet d'automatiser le processus de formatage et l'intégrer à ma CI gitlab.

Pour le formatage de python j'utilise flake8, car avec tox pylint ne permet d'utiliser la configuration de ce fichier pour VSCode.
J'installe la librairie en local afin de l'utiliser sur tous mes projets
Dans ma configuration VSCode je mets cela
Et dans ma configuration tox.ini de mon projet
Les informations du lint s'affiche dans l'onglet "Problems", il ne vous reste plus qu'à (tout) corriger.
Mais faire cela à la main peut-être fastidieux, dans ce cas l'outil suivant peut vous aider.


Autopep8 est un formateur qui permet de modifier vos fichiers avec option --in-place (contrairement à un linter qui vous donne uniquement des informations) selon la syntaxe de la PEP8.
J'utilise autopep8 car VSCode me fait un reformatage de mon fichier à la sauvegarde quand il est sauvegardé.
Il est présent dans mon fichier de configuration tox mais je préfère lancer les corrections dans mon environnement de dev plutôt qu'après (CI), les modifications automatiques pourraient avoir un impact sur l’exécution du code.

Il y a un outil hyper intéressant que le précédent ne couvre pas, c'est la suppression des packages importés mais non utilisés.
Autoflake est un script permettant notamment de supprimer les imports automatiquement avec options --remove-all-unused-imports.
Ce nettoyage peut être lancé avec la commande tox -e autoflake
Mais je préfère le lancer en automatique à la sauvegarde de vos fichiers, pour cela il faut installer une extension VSCode SaveAndRunReg


Il ne vous reste plus qu'à coder, et vous le ferez bien avec ces outils !
blog comments powered by Disqus