• # pre-commit

    Posté par . En réponse à la dépêche Python — partie 9 ― formateur de code, analyse statique. Évalué à 3. Dernière modification le 11 juin 2021 à 11:40.

    Merci pour cette dépêche très intéressante.

    Tout cela peut s'interfacer avec pre-commit qui permet de de lancer des actions avant chaque commit git.

    Nous combinons alors black et isort dans des hooks de pre-commit afin de s'assurer que les fichiers soient formatés de manière "standard" avant intégration au dépôt.

    Dans d'autres projets nous intégrons aussi flake8 (via flakehell qui porte bien son nom), mais c'est trop sévère à mon goût et les corrections ne se font pas automatiquement. Ça ajoute une forte friction lors des commits (à en devenir angoissant parfois).

    Config .pre-commit-config.yaml

    repos:
    - repo: https://github.com/pycqa/isort
     rev: 5.6.3
     hooks:
     - id: isort
     name: isort (python)
    - repo: https://github.com/ambv/black
     rev: 20.8b1
     hooks:
     - id: black
     args: ["--line-length", "120"]
     language_version: python3
     exclude: ".*/migrations/.*.py"