ruff について
ruff は Ruff で Python コードをリントおよびフォーマットするためのスキルガイドです。コマンドの選択、設定、他ツールからの移行、修正の慎重な適用を扱います。
主な機能
- 01Ruff による Python のリント
- 02Python コードのフォーマット
- 03ルールと例外の設定
- 04一般的な Python ツールからの移行
- 05危険性のある修正の確認
活用シーン
- 01ファイルや Python プロジェクトのリント
- 02Ruff を使うプロジェクトでのコード整形
- 03Black や Flake8 のコマンド置き換え
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ krubenok/ claude-code-plugins --skill ruffインストール後、Claude Code で/ruffを入力して読み込まれたか確認します。
詳細
ruff
Ruff は非常に高速な Python リンター兼コードフォーマッターです。Flake8、 isort、Black、pyupgrade、autoflake など、数十種類のツールを置き換えます。
ruff を使う場面
Python の lint とフォーマットには、常に ruff を使用してください。特に、次の項目がある場合に使用します。
pyproject.tomlに[tool.ruff]セクションがあるruff.tomlまたは.ruff.toml設定ファイルがある
ただし、不要な変更は避けてください。
- フォーマットされていないコードをフォーマットしないでください -
ruff format --diffでファイル全体にわたる変更が表示される場合、そのプロジェクトではフォーマットに ruff を使用していない可能性があります。実際の変更が分かりにくくなるのを避けるため、フォーマットは行わないでください。 - 修正対象は編集中のコードに限定してください -
ruff check --diffを使って、変更するコードに関係する修正を確認します。ユーザーからより広範囲の修正を明示的に依頼されない限り、変更中のファイルにのみ修正を適用してください。
ruff の呼び出し方
uv run ruff ...- ruff がプロジェクトの依存関係に含まれている場合に使用します。固定されたバージョンを使えます。uvx ruff ...- ruff がプロジェクトの依存関係に含まれていない場合や、単発のチェックに使用します。ruff ...- ruff がグローバルにインストールされている場合に使用します。
コマンド
lint
ruff check . # Check all files in current directory
ruff check path/to/file.py # Check specific file
ruff check --fix . # Auto-fix fixable violations
ruff check --fix --unsafe-fixes . # Include unsafe fixes (review changes!)
ruff check --watch . # Watch for changes and re-lint
ruff check --select E,F . # Only check specific rules
ruff check --ignore E501 . # Ignore specific rules
ruff rule E501 # Explain a specific rule
ruff linter # List available linters
フォーマット
ruff format . # Format all files
ruff format path/to/file.py # Format specific file
ruff format --check . # Check if files are formatted (no changes)
ruff format --diff . # Show formatting diff without applying
設定
Ruff は pyproject.toml または ruff.toml で設定します。
# pyproject.toml
[tool.ruff.lint]
select = ["E", "F", "I", "UP"] # Enable specific rule sets
ignore = ["E501"] # Ignore specific rules
[tool.ruff.lint.isort]
known-first-party = ["myproject"]
他のツールからの移行
Black → ruff format
black . → ruff format .
black --check . → ruff format --check .
black --diff . → ruff format --diff .
Flake8 → ruff check
flake8 . → ruff check .
flake8 --select E,F . → ruff check --select E,F .
flake8 --ignore E501 . → ruff check --ignore E501 .
isort → ruff check
isort . → ruff check --select I --fix .
isort --check . → ruff check --select I .
isort --diff . → ruff check --select I --diff .
よくあるパターン
フォーマットの前に lint 修正を適用する
ruff format の前に ruff check --fix を実行します。lint 修正によってコードの構造(例:インポートの並べ替え)が変わることがあり、その後のフォーマットで整えられます。
ruff check --fix .
ruff format .
安全でない修正の適用と確認
Ruff は、自動修正の一部を「安全でない」と分類します。スタイルだけでなく、コードの動作を変える可能性があるためです。たとえば、未使用のインポートを削除すると、副作用に依存するコードが壊れる場合があります。
ruff check --fix --unsafe-fixes --diff . # Preview changes first
ruff check --fix --unsafe-fixes . # Apply changes
--unsafe-fixes を適用する前に、必ず変更を確認してください。
ruff rule <CODE>を使って、なぜその修正が安全でないと判断されるのかを確認します。- 修正がコード内の前提に違反しないことを確認します。
ドキュメント
詳しい情報については、公式ドキュメントを参照してください。
コメント
Markdown 対応