Sweetohm

Michel Casabianca


Pour valider automatiquement avec Pylint les sources Python modifiés à chaque commit, il suffit d’ajouter un hook Git.

Il faut ajouter le script shell pre-commit suivant dans le répertoire .git/hooks du projet :

#!/bin/sh
#
# Pre commit hooks

set -e

DIR=`dirname $0`

${DIR}/pylint

Ce script est appelé par Git avant chaque commit. Il appelle le script qui va réaliser la validation Pylint, appelé fort judicieusement pylint, qui se présente comme suit :

#!/bin/sh
#
# Pre commit hook to check Python code with Pylint

set -e

ROOT=`dirname $0`/../..

. ${ROOT}/venv/bin/activate

files=`git diff --name-only --cached | grep "\.py$" | xargs ls -d 2> /dev/null` || true

if [ ! -z "$files" ];
then
	pylint --rcfile=${ROOT}/.pylintrc ${files}
fi

À noter que Pylint est appelé avec le fichier de configuration .pylintrc se trouvant à la racine du projet. Il est grandement recommandé de configurer Pylint avec un tel fichier que l’on pourra générer avec la commande pylint --generate-rcfile > .pylintrc.

Ce script active aussi le virtualenv du projet se trouvant dans le répertoire venv à la racine.

Les sources des scripts de cet article sont disponibles dans cette archive.

Enjoy!