The whole python tooling is experiencing kind of a renaissance with new Rust based tools taking over.
These days all my project use uv for project management and ruff for linting and formatting.
I believe there is no obvious default for type checking yet. I use whatever my IDE provides. So e.g. pylance in VSCode, which is build on pyright.
There are currently pretty much 3 projects that I look out for: ty, zuban and pyrefly.
At this point, pyrefly seems to me to be the furthest along with support for many common libraries like pytest, pydantic, django, pandas/polars. And meta actually positions it as a production ready system and not a (pre?)beta. Which is why I decided to test drive it.
I have not directly compared the type checkers, I cannot give you a recommendation. For all I know zuban or ty could be the better choice.
uv and ruff took over because they were in many ways simpler and much faster than the competition. ty does not have that luxury.
To be fair, at least when I tested it on a moderately sized codebase, ty was definitely faster than Pyrefly. Like twice as fast (0.5s vs 1s, give or take). However, it's not really critical to save that half a second for full checks. Both have gradual checking when used as a LSP. And on CI, there is overhead from other things.
However, it remains to be seen to what degree that speed difference is due to ty's smaller feature footprint. It just doesn't seem to check the same things. I found it too permissive, personally.