\

Pythonの静的解析ツールとして、Ruffが注目を集めています。RuffはRustで実装された高速なPython用Linterで、従来よく使われていたFlake8に比べて数十倍短い時間で処理が終わります。

Ruffの導入

Ruffを導入する前は、以下のツールを利用していました。

  • フォーマッター
    • black(ベースとあるフォーマッター)
    • isort(import文のソート)
    • autoflake(unused importを削除するため)
  • リンター
    • mypy(型チェック)
    • flake8(簡易的な静的解析)

Ruffを導入した後は、これらのツールがすべてRuffに置き換えられました。

Ruffの設定

Ruffの設定はpyproject.tomlに記述します。以下に一例を示します。

[tool.ruff]
target-version = "py38"
ignore = [ "G004", "PD901", "PD002", "RUF001", "RUF002", "RUF003", "PLC1901", "PLR2004", "ANN101", "ANN102", "ANN002", "ANN003", "ERA", "ANN201", "ANN202", "PLR", "RSE", "D", "C90", "T20", "SLF", "BLE", "FBT", "TRY", "COM", "S", "EM", "EXE", "ICN", "RET", "SIM", "TCH", "PTH", "ISC", "N", "PT" ]
line-length = 120
select = [ "ALL" ]

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

[tool.ruff.pyupgrade]
keep-runtime-typing = true

[tool.ruff.pylint]
max-args = 10

まとめ

RuffはPythonの静的解析ツールとして優れた性能を発揮します。また、設定の柔軟性もあり、開発者のニーズに合わせてカスタマイズすることが可能です。Python開発において、Ruffの活用を検討してみてはいかがでしょうか。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です