Open8
Ruff
- Pythonのリンター&フォーマッター
- リンター(
flake8
、pycodestyle
など)がひとまとめにできる - フォーマッター(
black
)もひとまとめにできる(v0.13から) - 設定を
pyproject.toml
にまとめられる!
$ pipx install ruff
-
pipx
でインストールできた - Homebrewでもインストールできそう
$ uv tool install ruff
-
uv tool
でインストールできた
$ ruff check .
なにも設定せずに、とりあえずruff check .
してみてもOK
$ ruff check . --select ALL
--select ALL
して、すべてのリンターオプションで確認してみてもよい
$ ruff check . --select D
docstring
に対するリンターだけど有効にして確認できたりする
$ ruff check . --fix
自動修正できるところは、修正してくれる
リンターの設定を確認
$ ruff check --show-settings
Resolved settings for: "docs/conf.py"
Settings path: "pyproject.toml"
# General Settings
cache_dir = ".ruff_cache"
fix = false
fix_only = false
output_format = full
show_fixes = false
unsafe_fixes = hint
# File Resolver Settings
...
# Linter Settings
...
# Linter Plugins
...
# Formatter Settings
...
# Analyze Settings
...
-
--show-settings
オプションで、現在のリンター設定がドバーと表示される - セクションが設けられているので、それを目安に設定を探して、確認するとよさそう
リンターの対象ファイルを確認
$ ruff check --show-files
....py
....ipynb
-
--show-files
で対象ファイルを確認できる -
.gitignore
で除外したファイルなどは、デフォルトで除外されるっぽい
リンターの結果を集計
$ ruff check --statistics
35 F821 [ ] undefined-name
23 F401 [*] unused-import
8 F841 [*] unused-variable
-
--statics
オプションで、リンターのエラーコードごとに集計できる-
[*]
付は自動修正できるというマーク?
-
-
ruff check
だけだとドバーと表示されてしまい、どのエラーが問題か(寄与が大きいか)がすぐにわからない -
ruff
を導入するときの初手で実行し、対応の方針を検討するのがよさそう
ルールの詳細を確認
$ ruff rule F821
$ ruff rule F401
$ ruff rule F841
-
rule
コマンドで、指摘されたルールの詳細を確認できる- ルールの理由
- どうしてこの書き方はいけないのか
- 書き換えのサンプルコード
- オプションの設定方法
- リファレンス
- ルールに対応するかどうか、適用するかどうか、検討しやすい