Donnez à votre base de code un nettoyage de printemps avec cet outil de ligne de commande facile à utiliser.
Un outil de linting est une ressource précieuse qui peut vous aider à détecter les erreurs et les incohérences dans votre code.
Flake8 est l'un des outils de linting les plus populaires pour Python. Il identifie les erreurs de syntaxe et de formatage dans votre code, ainsi que d'autres problèmes tels que les importations inutilisées. Il est très flexible car, même s'il a des règles par défaut, vous pouvez les modifier ou les ajouter pour répondre à vos besoins.
Vous pouvez également configurer Flake8 pour qu'il s'exécute lorsque vous enregistrez des mises à jour de votre code à l'aide de VS Code. Toutes ces fonctionnalités en font un outil précieux à avoir lors de l'écriture de programmes Python.
Installation de Flake8
Suivez les étapes ci-dessous pour installer Flake8 sur votre environnement de développement. Vous devrez peut-être installer Pip sur votre machine d'abord.
- Exécutez la commande ci-dessous dans votre terminal pour installer Flake8 :
pip installer flake8
- Vérifiez que Flake8 est installé en exécutant la commande suivante :
flocon8 --version
- Si Flake8 est installé correctement, vous devriez voir une sortie semblable à la suivante :
4.0.1 (McCabe: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPython 3.9.13sur
Linux
Une fois que vous avez installé Flake8 avec succès, vous pouvez commencer à l'utiliser.
Utiliser Flake8 pour analyser le code Python
Pour comprendre comment utiliser Flake8, commencez par le code suivant. Il a quelques erreurs intentionnelles. Copiez-le dans un fichier appelé salutation.py.
définitivementsalutation(nom):
imprimer("Bonjour, " + nom)
salutation("Alice")
salutation("Bob")
Exécuter Flake8 sur un seul fichier
La syntaxe pour exécuter Flake8 sur un seul fichier est la suivante.
flake8 chemin/vers/fichier.py
Dans cet exemple, accédez au répertoire contenant le fichier greting.py et exécutez la commande suivante.
flake8 salutation.py
Flake8 devrait renvoyer le message suivant indiquant qu'il y a eu une erreur d'indentation.
salutation.py:5:1: E999Erreur d'indentation: inattenduretrait
Cette sortie indique que la ligne 5 est inutilement en retrait. Pour corriger cette erreur d'indentation, vous devez supprimer l'espace au début de cette ligne.
définitivementsalutation(nom):
imprimer("Bonjour, " + nom)
salutation("Alice")
salutation("Bob")
Désormais, lorsque vous exécutez Flake8, vous recevez les avertissements suivants.
salutation.py:4:1: E305attendu 2 blanclignesaprèsclasseoufonctiondéfinition, trouvé 1
salutation.py:5:16: W292Nonnouvelle ligneàfindedéposer
Cette sortie indique les problèmes suivants :
- À la ligne 4, il devrait y avoir deux lignes vides après la définition de la fonction d'accueil, mais il n'y en a qu'une.
- À la ligne 5, il devrait y avoir une nouvelle ligne à la fin du fichier.
Une fois ces problèmes résolus, flake8 ne devrait renvoyer aucun message.
Jusqu'à présent, nous n'avons analysé qu'un seul fichier, mais dans la plupart des cas, vous souhaiterez analyser plusieurs fichiers.
Exécuter Flake8 sur plusieurs fichiers
Dites que vous avez un autre appelé test_greeting.py qui contient le code suivant :
depuis salutation importer salutation
définitivementtest_greet():
affirmer salutation("Alice") == "Bonjour Alice !"
Pour analyser ces deux fichiers, exécutez la commande suivante.
flake8 salutation.py test_salutation.py
Cette méthode fonctionne, mais si vous avez plus de deux fichiers, la saisie des noms de fichiers peut être fatigante et source d'erreurs.
Il est plus efficace d'utiliser la commande suivante pour analyser tous les fichiers du répertoire courant :
flocon8 .
Comprendre les erreurs et les avertissements de Flake8
Flake8 signale deux types de problèmes :
- Erreurs: une erreur indique un problème de syntaxe ou de structure qui empêche votre code de s'exécuter comme l'erreur d'indentation de l'exemple greeting.py.
- Avertissements: un avertissement indique un problème potentiel ou une violation des directives de style PEP 8, comme l'avertissement "pas de saut de ligne à la fin du fichier" de l'exemple greeting.py.
Voici quelques-unes des erreurs et avertissements courants :
- E101: l'indentation contient des espaces et des tabulations mixtes.
- E302: attendu 2 lignes vides, trouvé 0.
- E999 IndentationError: retrait inattendu.
- W291: espace blanc à la fin.
- E501: ligne trop longue (maximum 79 caractères).
- F401: module importé mais non utilisé.
Lorsque vous exécutez Flake8, il affichera un message tel que celui affiché ci-dessus et le numéro de ligne, ainsi que l'emplacement du code auquel le message fait référence. Cela vous aide à savoir exactement où votre code présente des problèmes, ce qui vous fait gagner du temps de débogage.
Configuration de Flake8
Pour certains projets, les règles de Flake8 peuvent être trop rigides. Dans ces cas, Flake8 vous permet de le configurer et d'adapter son comportement à vos besoins.
Vous pouvez fournir des options de configuration telles que :
- Ignorer des erreurs ou des avertissements spécifiques.
- Réglage de la longueur de ligne maximale.
- Spécifier des règles supplémentaires.
Pour illustrer, créez un fichier de configuration nommé setup.cfg. Vous pouvez également ajouter les options de configuration à un fichier nommé tox.ini ou .flake8.
Dans ce fichier, commencez par créer une section flake8 comme suit :
[flake8]
Ajoutez ensuite les options que vous souhaitez configurer :
[flake8]
longueur de ligne max = 100
ignorer = F401
Dans cet exemple, max-line-length = 100 indique à Flake8 d'émettre des avertissements pour toute ligne de vos fichiers de code source qui dépasse 100 caractères. ignore = F401 indique à Flake8 d'ignorer les erreurs liées aux importations inutilisées.
Vous n'avez pas besoin d'ajouter ces options à un fichier de configuration car vous pouvez appeler les spécifier sur la ligne de commande comme ceci :
flocon8 --ignore E203 --max-line-length 100
L'utilisation d'un fichier de configuration est la meilleure approche car vous n'avez pas besoin de spécifier les mêmes options à chaque fois que vous utilisez flake8.
Utilisation de Flake8 dans le code VS
Si vous utilisez VS Code pour écrire votre application Python, vous pouvez utiliser l'extension flake8 pour pelucher vos fichiers Python au fur et à mesure que vous tapez.
Tout d'abord, vous devez installer l'extension flake8 à partir du marché VS Code. Ensuite, pour le configurer, ouvrez les paramètres de VS Code, puis recherchez "python.linting.flake8Enabled" et activez le linting avec flake8.
Vous devriez maintenant voir les erreurs et les avertissements mis en évidence dans votre code avec une ligne sinueuse au fur et à mesure que vous l'écrivez. Passer la souris sur le texte en surbrillance affichera un message expliquant le problème et suggérant des solutions possibles.
Autre IDE Python tels que Pycharm ont également des extensions Flake8 que vous pouvez configurer pour simplifier le processus de peluchage.
Pourquoi utiliser un linter?
Lorsque vous écrivez du code, vous pouvez introduire des erreurs et des incohérences qui entraînent l'échec de votre application ou des problèmes de performances. Un linter comme Flake8 vous permet de détecter certains de ces problèmes à l'avance, vous aidant à écrire un code plus propre. L'intégrer dans votre workflow de développement est très important.
Vous pouvez le faire en l'utilisant dans votre éditeur de texte ou IDE et en l'intégrant dans votre pipeline d'intégration pour vérifier automatiquement la présence d'erreurs et d'avertissements dans votre code avant de le fusionner avec votre branche principale.