upvote
I agree, it sounds like they're trying to expand their moat because they realised they were too late to the better type-checking party.

It's somewhat ironic that they're only just getting around to it actually. The predecessor to `uv`, `rye`, had integration for `ruff` fairly early on - but Astral have really dragged their heels on putting it into `uv` (presumably because `ruff` had already won) and even now aren't adding support until after `ty` is integrated.

reply
Can you elaborate on losing the type checker race?

I am tasked with creating a new baseline for python projects. My first hunch was uv, ty, ruff as I've had a good time with them in the past.

What would you recommend?

reply
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.

reply
Pyrefly is better than ty for my use cases. Maybe ty will get there some day.
reply
Eh I think that’s a pretty uncharitable take.

They did the same thing with ruff too. A totally optional interface through the uv command. Use it or not.

reply