top | item 44396303

Show HN: A Python Language Server, Mypy-compatible

42 points| davidhalter | 8 months ago |zubanls.com

Having created Jedi in 2012, I started ZubanLS in 2020 to advance Python tooling. It understands Mypy config files and passes >95% of the relevant Mypy tests. AMA.

13 comments

order

Grikbdl|8 months ago

It's great to see so much innovation in this area. But, seeing that you will charge for this - what will you provide that won't be covered by free alternatives in e.g. Ty (Astral) or Pyre (Meta), which similarly seem to be "mypy but in rust and maybe lsp features"?

davidhalter|8 months ago

If I'm perfectly honest, I don't know yet. I'm currently pretty open to any model that ensures long-term survival of the project. Some people might be interested because it can be used as a replacement for Mypy and I'm willing to solve the issues they have in their 1mLoC+ codebases. It is absolutely non-trivial at this point to replace Mypy with Pyright or vice-versa in a larger codebase.

drcongo|8 months ago

Last time I tried ty and pyre they weren't particularly great with a Django codebase, I'm sure ty will get there at some point, but if this handles django-stubs without any extra faffing, that's one potential selling point.

I did have the same thought as you at first though, and only carried on reading when I spotted that it was from the author of Jedi.

dcreater|8 months ago

Any reason to use and pay for this instead of pyrefly and ty?

(Relative maturity wouldn't be a good enough reason as those projects will progress quickly enough and both have great, solid, well backed teams behind them)

davidhalter|8 months ago

I think you underestimate how hard it is to move from Mypy to Pyright in big codebases. Having something very very close to Mypy should be very interesting for some companies with 1mLoC+. Relative maturity can still be a reason for 1-2 years and I have no idea what to do at that point.

Relative maturity can be a reason for quite a while (people overestimate how far Pyrefly and Ty are).

zem|8 months ago

nice work! what level of type inference do you do on unannotated code?

davidhalter|8 months ago

Currently none, but I'm currently re-implementing the Jedi part (auto-completions/goto), which needs lots of type inference on unannotated code. There will therefore be soon be a non-compatible mode that infers unannotated code as good as possible. I hope it is going to be ready a month from now.