以前は、black + flake8でコードをフォーマットしていた。
最近はより高速に動作するruffを使用している。

ruffにしてから使われていないモジュールが削除されるようになった。
保存時に自動実行するように設定しているため、これから使うためにimportしたあとに保存してしまった場合も削除されてしまっていて困った。

設定でそれらを制御できたので、その方法についてメモする。


やりたいこと

  • 使ってないモジュールであっても消さないでほしい
  • でも警告はしてほしい

やり方

ruffのlinterに、F401 (unused-import)はFixしないという設定を加えれば良い。

ignoreを設定してしまうと、警告もしてもらえなくなってしまうので、unfixableを設定する。

pyproject.tomlやruff.tomlに設定を書く方法もあるが、ちょっと書いたコードでも反映してほしかったので、VSCodeの設定に書く方法で対応した。

"ruff.lint.args": [
  "--unfixable=F401"
]