Open1

Ryffの使い方を調べたメモ

msakaimsakai

Ruff

  • Rustで書かれた高速なlinter & formatter
  • 執筆時点ではlatest=v0.6.5
  • Flake8 (plus dozens of plugins), Black, isort, pydocstyle, pyupgrade, autoflake など有名どころを置き換えるために使える

Tutorial

  • ruffのインストール:pip install ruff
    • uvが使える環境なら uvx ruff check
  • プロジェクト全体にlinterをかける:ruff check
    • ruff check --fix で自動で修正
    • ruff check PATH で特定のファイル・ディレクトリを指定できる
  • フォーマッタをかける:ruff format
    • こちらは自動で修正までかかる
  • 設定ファイルでRuffの挙動をカスタマイズする
    • pyproject.toml , ruff.toml , or .ruff.toml
    • Settings
    • # noqa: XXX でlintルールを無視できる
    • ファイル全体で無視する場合はファイル冒頭に書く

docstring の強制設定良さそう

[project]
requires-python = ">=3.10"

[tool.ruff.lint]
extend-select = [
"UP",  # pyupgrade
"D",   # pydocstyle
]

[tool.ruff.lint.pydocstyle]
convention = "google"

Installing Ruff

  • brewでもインストールができる
  • docker run --rm による実行も良さそう