🎨
よく使うPythonのフォーマッターとリンターの設定
それぞれがどういう意味かなどは世の中に多くのソースがありますので、この記事では割愛し、開発者向けに設定方法などをまとめようと思います。
Flake8
インストール方法
-
pip
を使う場合
pip install flake8
-
poetry
を使う場合
poetry add -D flake8
オプション
よく使う設定項目のみ記載します。
オプション | 内容 |
---|---|
ignore | 特定のエラーを無視する(※1) |
max-line-length | ワンライナーの文字数制限。デフォルトは79文字 |
exclude | 特定のフォルダをチェック対象外にする |
(※1)例えばF401はimport hoge
とあるのにhoge
が使われていない時に出るエラーコードです
オプションの設定方法例
.flake8
を使う場合
ファイルを作成し以下のように記載
[flake8]
ignore = F401, F402
max-line-length = 120
exclude = "hoge"
pyproject.toml
を使う場合
これは少し注意が必要なのですが、flake8はpyproject.tomlに対応しておりません。
そのためラッパーのpyproject-flake8を使う必要があります
poetry add -D pyproject-flake8
pyproject.tomlには以下のように記載します。
[tool.flake8]
max-line-length = 120
実行方法はflake8
をpflake8
に変えるだけです。
Black
言わずとしれたフォーマッターです。
インストールはflake8
をblack
に書き換えれば問題ありません。
またpyproject.tomlに設定を書く際に例としては以下のようになります。
[tool.black]
target-version = ['py310']
line-length = 120
- target-version
- この例だと
python3.10
の構文で使用するコードに対応してフォーマットするように指示するという意味になります
- この例だと
- line-length
- 1行の最大文字数の制限です
isort
[tool.isort]
line_length = 120
multi_line_output = 3
include_trailing_comma = true
ensure_newline_before_comments = true
use_parentheses = true
オプション | 内容 |
---|---|
line_length | 1行の文字数。blackに合わせましょう |
multi_line_output | 複数行になる場合のType指定 |
include_trailing_comma | 末尾にカンマを含めるか(blackに合わせるとtrue) |
ensure_newline_before_comments | コメント前の改行を許可 |
use_parentheses | 改行する場合にバックスラッシュではなく、カッコを使用 |
multi_line_outputの設定は0-11まであります。以下が参考になります。
VScodeで自動フォーマット
いつも開発時は保存時に勝手にフォーマットしてくれるようにしています。
black
と isort
を適用する場合は以下の拡張機能を入れてください。
その後、settings.json
に以下のように記載するだけです。
{
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
Discussion