falke8とは?
Pythonのコードチェッカーツール(ライブラリ)です。
flake8を使うことで、Pythonコードの問題点を簡単に、そして効率的に見つけることができます。
例えば、pep8に準拠していないcodeやunused codeなどがあった場合、flake8によるチェックを行うことで、「どのファイルの」「何行目が」「どのような違反を犯しているか」を示してくれます。
project rootで実行すれば、そのprojectにpep違反を犯しているファイルがあるかどうかを一目でチェックすることができます。
なお、flake8自体は下記ライブラリのラッパーだそうです。
- PyFlakes(pyflakes : コードのエラーチェック)
- pycodestyle(pycodestyle : PEP8に準拠しているかチェック)
- Ned Batchelder’s McCabe script(mccabe : 循環的複雑度のチェック)
flake8の導入
flake8の導入は簡単です。
pipでinstallすればOKです。
以下のコマンドを実行しましょう。
pip install flake8
flake8によるチェック実行
flake8の実行はコマンドを実行するだけです。
以下のコマンドを実行すると、実行したディレクトリの配下を再帰的にチェックしてくれます。
$ flake8
なお、ファイルパスを指定することで、特定のファイルのみをチェックすることもできます。
$ flake8 <対象ファイルへのパス>
--ignore
このオプションをつけることで、特定のerrorを無視します。
$ flake8 --ignore E402
複数のerrorを指定するときは、','で渡しましょう。
$ flake8 main.py --ignore E402 E403
--exclude
このオプションをつけることで、特定のフォルダをチェック対象外にします。
$ flake8 --exclude tests
--per-file-ignores
このオプションをつけることで、特定のファイルのみ特定のerrorを無視します。
$ flake8 --per-file-ignores sample.py:E402
--max-line-length
このオプションをつけることで、1行あたりの最大文字数を指定する
$ flake8 --max-line-length 100
pep8では1行の長さを79文字以下にすることを推奨しています。
flake8ではこのチェックも行なっているのですが、可読性のためにこの制約が邪魔になる時もあるでしょう。
そのような時は、このオプションをつけることで1行あたりの最大文字数を変更できます。
--statistics
このオプションをつけることで、最後に統計情報を出すことができます。
$ flake8 --statistics
flake8の警告一覧
まとめ
flake8を使うことで、python codeの質を担保できます。
導入、使用が簡単なので、使いやすいのも嬉しいですね。