BioErrorLog Tech Blog

試行錯誤の記録

flake8で特定ルールのみ指定してチェックする | Python

--selectオプションで指定できます。

はじめに

flake8を使っていて、特定ルール/エラーコードのみ指定してチェックを実行したくなりました。

--helpマニュアルをぱっと眺めて見逃してしまったので、備忘録を残します。

flake8で特定ルールのみ指定する

やり方

# 例
flake8 --select=F811,E202

--selectオプションに対して、コンマ区切りでエラーコードを渡すことで指定できます。

エラーコード指定は前方一致で適用されるので、例えば--select=Fとした場合はFから始まるエラー全てが、--select=F8として場合はF8から始まるエラー全てが指定されます。

# マニュアル抜粋
$ flake8 --help                                    
usage: flake8 [options] file file ...

positional arguments:
  filename

options:
<中略>
  --select errors       Comma-separated list of error codes to enable. For example, ``--select=E4,E51,W234``. (Default: E,F,W,C90)

実行例

# エラー単体指定
$ flake8 --select=F811     
./app/backend/approaches/readretrieveread.py:9:1: F811 redefinition of unused 'AzureOpenAI' from line 5

# エラー複数指定
$ flake8 --select=F811,E202
./app/backend/approaches/readdecomposeask.py:39:126: E202 whitespace before ']'
./app/backend/approaches/readretrieveread.py:9:1: F811 redefinition of unused 'AzureOpenAI' from line 5
./scripts/prepdocs.py:289:70: E202 whitespace before '}'

# エラー前方一致指定
$ flake8 --select=F5 
./app/backend/langchainadapters.py:21:22: F541 f-string is missing placeholders
./app/backend/langchainadapters.py:39:22: F541 f-string is missing placeholders
./scripts/prepdocs.py:301:11: F541 f-string is missing placeholders

おわりに

以上、ちょっとした備忘録でした。

前方一致で指定できる、というのは少し面白いですね。

どなたかの参考になれば幸いです。

[関連記事]

www.bioerrorlog.work

www.bioerrorlog.work

参考

flake8 · PyPI

Full Listing of Options and Their Descriptions — flake8 6.0.0 documentation

Error / Violation Codes — flake8 6.0.0 documentation