Aller au contenu

Programmation Python/Analyse statique de programmes

Un livre de Wikilivres.

Python offre plusieurs outils d'analyse statique de programmes.

Cet analyseur de code statique vérifie les potentiels erreurs (ex : variable non déclarée) et le formatage du code pour le rendre plus lisible par les humains[1].

Installation :

apt install pylint

Lancement de l'analyse, qui donne une note sur 10 :

pylint $(git ls-files '*.py')

Idem[2].

Installation :

pip install flake8

Lancement :

flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

Utilitaire de formatage du code selon la norme https://peps.python.org/pep-0008/.

Installation :

pip install autopep8

Lancement du reformatage d'un fichier :

autopep8 --in-place --aggressive mon_fichier.py

Lancement du reformatage du dossier courant récursivement :

find . -name '*.py' -exec autopep8 --in-place '{}' \;:

Il s'agit d'un outil avec deux composants :

  • Un plugin de PyCharm pour suggérer des améliorations en cours de frappe.
  • Un scanner en ligne de commande capable de corriger les erreurs lui-même.
pip install sourcery

Puis dans la racine du programme :

sourcery init

Cela crée un .sourcery.yaml permettant d'ajuster la configuration du scanner, par exemple pour ignorer certaines recommandations ou certains fichiers.

Pour scanner :

sourcery review .

Pour scanner et modifier un seul fichier :

sourcery review ./mon_fichier.py --fix