概要
git commit時にflake8を実行してコードをチェックをする。
最低限のチェックだけする内容です。
バージョン情報
- pre-commit==2.13.0
- flake8 3.8.3
pre-commitのインストール
pip install pre-commit
.pre-commit-config.yamlの記述
プロジェクトのルートに .pre-commit-config.yaml ファイルを作成して下記のような内容を記述。
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.0.1 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-added-large-files - repo: https://gitlab.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 exclude: tests
flake8以外に trailing-whitespace(行の末尾の空白を除去), end-of-file-fixer(行末の改行を除去), check-added-large-files(大きいファイルをチェック default=500KB)などを入れています。
flake8の設定ではexclude: testsでtestsディレクトリ配下はチェック対象から外しています。
反映
下記コマンドで .git/hook 配下に設定を反映します。
pre-commit install
flake8の設定
.flake8ファイルに好みの設定を書いておきます。
[flake8] ignore=E402,W503 max-line-length=120 max-complexity=10
commitして確認
適当に怒られそうなコードを書く。
import time def foo(): i = 10 return 1 + 1
commitしてみる。
git add foo.py git commit foo.py
結果
foo.py:11:1: F401 'time' imported but unused foo.py:3:1: E302 expected 2 blank lines, found 1 foo.py:4:5: F841 local variable 'i' is assigned to but never used
ちゃんとチェックしてくれた。
改定履歴
Author: Masato Watanabe, Date: 2021-06-25, 記事投稿