Veltioblog

Ruff のおすすめ設定

Python プロジェクトではしばらく Ruff を利用していて、こういう風に設定するのが良いなと思ってきたので、それを残します。参考になれば嬉しいです。


Ruff は Rustで書かれた、非常に高速なPythonのリンターとコードフォーマッターです。

サイトはこちら: https://docs.astral.sh/ruff/

結論

pyproject.toml に以下を記述します。 pyproject.toml に書いておけば、VS Code の Ruff 拡張機能や、CLI などツールの利用形態を問わず、設定が参照できるので良いです (ruff.toml でも可)。

戦略

[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 の公式ドキュメントを読みつつ色々試してみて、自分たちに合った設定を見つけていきましょう。