La PEP 8 (Style guide for Python Code) de Python est un ensemble de conventions permettant d’écrire du beau code Python. flake8 est un des outils mis à disposition par la communauté pour aider à valider son code Python au regard de la PEP 8.

Cet article fait partie fait partie d’une série d’articles présentant quelques bonnes pratiques qui vous permettront d’avoir un environnement de développement Python aux petits oignons :

Installation de flake8

flake8 permet de valider son code Python au regard des conventions de codage PEP 8 (Style guide for Python Code) et de pyflakes (détection d’erreurs).

# Créons un projet dédié
mkproject test-flake8
(test-flake8) cdproject

# Installation de flake8
(test-flake8) pip install flake8

Valider son code Python avec flake8

Une fois installé, flake8 peut être invoqué sur un module Python ou un dossier complet.

Créons un petit module Python (mytest.py) comportant quelques erreurs :

mytest.py
1
2
3
4
5
6
7
8
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import mylib  # noqa (i.e ignore cette erreur)

def foo( bar):
    print 'foo {}'.format(bar)

et invoquons flake8 :

(test-flake8) flake8 mytest.py
mytest.py:4:1: F401 'os' imported but unused
mytest.py:7:1: E302 expected 2 blank lines, found 1
mytest.py:7:9: E201 whitespace after '('
mytest.py:8:31: W292 no newline at end of file

Ceci dit, tous les éditeurs de code Python dignes de ce nom intègrent ou permettent d’intégrer via un plugin le support de flake8… donc aucune excuse pour ne pas produire du beau code Python !

Jetez également un coup d’oeil à isort qui permet de trier dans l’ordre alphabétique les imports d’un module Python et de les organiser par section (les imports Future, puis ceux de la librairie standard, …).