flake8とは
flake8は以下の3つのライブラリのラッパーです。
インストール
$ pip install flake8
使い方
$ flake8 main.py
ファイルだけでなくフォルダを指定することもできます。
$ flake8 main/
エラーコードについて
Fxxx
: 論理的なエラーの検知(pyflakes)Exxx
/Wxxx
: pep8に準拠しないスタイリングの検知(pycodestyle)Cxxx
: 循環的複雑度が高いコードの検知(mccabe)
参考: Glossary of Terms Used in Flake8 Documentation — flake8 3.7.9 documentation
特定のエラーを無視する
$ flake8 main.py --ignore E402
複数の場合はカンマ区切りで指定します。
$ flake8 main.py --ignore E402, D203
特定のフォルダを除外する
$ flake8 main.py --exclude tests
特定のエラーを特定のファイルのみ除外する
$ flake8 main.py --per-file-ignores test.py:E402
1行あたりの最大文字数を指定する
$ flake8 main.py --max-line-length 100
デフォルトは79
で、超えるとE501
のエラーが発生します。
main.py:4:80: E501 line too long (90 > 79 characters)
循環的複雑度の最大値を指定する
$ flake8 main.py --max-complexity 10
設定ファイル
グローバルに適用させるなら以下の場所に設定を記載します。
~/.config/flake8
ローカル(プロジェクト単位)のみの場合は、そのプロジェクトフォルダに以下のファイルを用意します。
.flake8
または
setup.cfg
設定ファイルの書き方
オプションで指定するのと同じように書くことができます。
[flake8] ignore=E402, D203 exclude=tests max-line-length=100 max-complexity=10
参考: Configuring Flake8 — flake8 3.7.9 documentation
*1:pep8は名前が変わってpycodestyleになりました