Ruff のおすすめ設定
Python プロジェクトではしばらく Ruff を利用していて、こういう風に設定するのが良いなと思ってきたので、それを残します。参考になれば嬉しいです。
Ruff は Rustで書かれた、非常に高速なPythonのリンターとコードフォーマッターです。
サイトはこちら: https://docs.astral.sh/ruff/
結論
pyproject.toml に以下を記述します。 pyproject.toml に書いておけば、VS Code の Ruff 拡張機能や、CLI などツールの利用形態を問わず、設定が参照できるので良いです (ruff.toml でも可)。
戦略
- lint
- 全部載せから不要なものを減らしていくスタイル
- select に ALL を指定
- 不要なルールがあれば ignore に追加する
- format
- Ruff の公式ドキュメントに載っていた、例をほぼそのままパクる
- Black っぽい挙動になるような設定にする
[tool.ruff]
# あなたの環境次第
line-length = 128 # お好み
target-version = "py312" # プロジェクトで利用している最小バージョンを指定(ドキュメントに書いてあります
[tool.ruff.lint]
# 不要なルールを ignore に追加する
ignore = [
"D100",
"D104",
"D400",
"D415",
"D203",
"D213",
"COM812",
"ISC001",
"ANN201",
"S101",
"T201",
]
select = ["ALL"]
[tool.ruff.format]
# Like Black, use double quotes for strings.
quote-style = "double"
# Like Black, indent with spaces, rather than tabs.
indent-style = "space"
# Like Black, respect magic trailing commas.
skip-magic-trailing-comma = false
# Like Black, automatically detect the appropriate line ending.
line-ending = "auto"
# Enable auto-formatting of code examples in docstrings. Markdown,
# reStructuredText code/literal blocks and doctests are all supported.
#
# This is currently disabled by default, but it is planned for this
# to be opt-out in the future.
docstring-code-format = true
# Set the line length limit used when formatting code snippets in
# docstrings.
#
# This only has an effect when the `docstring-code-format` setting is
# enabled.
docstring-code-line-length = "dynamic"
以上終わりです。 Ruff の公式ドキュメントを読みつつ色々試してみて、自分たちに合った設定を見つけていきましょう。