| (Note: I work on Python tooling.) > for some reason we need 2-3 static analysis tools just for typechecking I don’t follow: you need one type checker, of which you have several options. It’s arguably not ideal to have more than one option, but you should never need to run more than one. - no tool understands each other's comment directives In general, all type checkers in Python support the `type: ignore` directive, since it’s standardized. > each tool reports a different error in your codebase This is a real problem, but I think you can avoid it (like most people do) by not mixing different tools that do the same thing together. To my understanding, you’d have the same problem if you combined (e.g.) biome and eslint in a JavaScript codebase. |
I have to use more than one Python type checker because there is not a single one that works. Not only different tools catch different issues. They also have different bugs, and different configuration requirements. Different teams have different preferences.
It's a nightmare. If Python taught me something about typing is that a language that doesn't have a clear definition of types in the reference implementation, it will never get it fixed with external tooling.