`functools.cache` や `functools.lru_cache` をメソッドに使うメモリリークはruffで検出できる

functools.cacheをメソッドに使う - methaneのブログ で紹介した、普通に functools.cache をメソッドに使うとメモリリークになってしまう問題ですが、半年ぶり2回目遭遇したので再発防止しないとなと思ったらすでに静的チェックがありました。

docs.astral.sh

次のように pyproject.toml に追加しておくと良いでしょう。

# pyproject.toml

[tool.ruff.lint]
extend-select = [
  "I",  # enable isort
  ...
  "B019",  # https://docs.astral.sh/ruff/rules/cached-instance-method/
]
このブログに乗せているコードは引用を除き CC0 1.0 で提供します。