pyproject.tomlには、最低限こんな感じで書いている。
[tool.basedpyright] typeCheckingMode = "recommended" extraPaths = ["/path/to/site-packages/"] reportAny = "none" reportUnusedCallResult = "none" pythonVersion = "3.13" # for override decorator from typing
reportAny = "none"にしている。basedpyrightの型推論が追いつかず、警告だらけになることがしばしばなので。reportUnusedCallResult = "none"にしないと、例えばPyTorchのnn.Moduleのtrain()やoptimizerのstep()、さらにはmatplotlibのplot系関数が、のきなみ警告を発するようになってしまい、とてもうっとうしい。
必要に応じて、以下の設定も使ったりする。
reportMissingTypeStubs = "none" reportUnknownArgumentType = "none" reportUnknownMemberType = "none" reportUnknownVariableType = "none"
reportMissingTypeStubs = "none"にしないと、利用するライブラリがスタブ対応していないと警告を発する。ただ、スタブの対応はライブラリ利用者側では対処しづらい。ちなみにscipyはscipy-stubsがあり、これを入れておくのが吉。その場合,この設定は不要になる。reportUnknownVariableType = "none"にしないと、ライブラリ関数のインポートだけで警告だらけになることがしばしばある。その場合はスタブの導入で解消されることもある。