python-language-server
pyright
| python-language-server | pyright | |
|---|---|---|
| 8 | 150 | |
| 888 | 15,043 | |
| - | 0.7% | |
| 3.2 | 9.4 | |
| almost 4 years ago | 6 days ago | |
| C# | Python | |
| Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
python-language-server
- What is your nix-supported language server setup for python in neovim?
I use neovim as a text editor and code a lot in Python with the help of a language server. I use the only language server that seems to live in python-language-server. However, I see that the repo that it points to has been archived. So I am looking for alternatives and I thought that asking the community could be a good starting point.
- pathlib instead of os. f-strings instead of .format. Are there other recent versions of older Python libraries we should consider?
- Microsoft Calls Firefox’s Browser Workaround “Improper,” Will Block It
- Can we trust Microsoft with Open Source?
- [blogpost] A year with Emacs
Ah, in any case you might like to know they do plan to deprecate it in favour of pyright/pylance.
- Converting strings into variables
I guess this is an issue not only on my side - https://github.com/microsoft/python-language-server/issues/2108
- Python unresolved import
I followed the advice given by this, but it didn't help..
pyright
- Ty: An fast Python type checker and LSP
- Type hints in Python (1)
is used with the type checkers such as mypy, pyright, pyre-check, pytype, etc.
- PyreFly: Python type checker and language server in Rust
- Ruff and Ready: Linting Before the Party
mypy (and pyright occasionally) as a type checker,
- Pyrefly
They identified this as a bug and fixed it, then changed course and decided to reinstate the behaviour. So if you want to write idiomatic Python, you need to disable typechecking TypedDicts.
— https://github.com/microsoft/pyright/issues/1739
Now if this were a linter then I would understand. But a type checker should not be opinionated to the point of pushing people not to use idiomatic Python.
- Top Tools for Static Analysis Help in Your Python Projects
Pyright:
- Astral – "We're building a new static type checker for Python"
This is a good summary: https://github.com/microsoft/pyright/blob/main/docs/mypy-com...
But without that, I always felt like I was actively fighting mypy. It seemed like it was written for a totally different language than Python.
Compared to another more modern type system like TypeScript, sometimes you don't explicitly type something and yet TypeScript usually does exactly what you expect.
- Ruff: Python linter and code formatter written in Rust
We have it already: https://github.com/microsoft/pyright
- The Language Server Protocol - Building DBChat (Part 5)
Python (pyright)
- Multilspy: Building a common LSP client handtuned for all Language servers
Pyright is billed as a "static type checker" but its a full-blown language server (which pylance is built on). I've used both pylance and pyright and frankly I haven't seen any benefit going up to pylance. Pyright is under the MIT license so it can be used for anything: https://github.com/microsoft/pyright/blob/main/LICENSE.txt
What are some alternatives?
jedi-language-server - A Python language server exclusively for Jedi. If Jedi supports it well, this language server should too.
ruff - An extremely fast Python linter and code formatter, written in Rust.
PowerShellEditorServices - A common platform for PowerShell development support in any editor or application!
python-lsp-server - Fork of the python-language-server project, maintained by the Spyder IDE team and the community
wryte - A Python logger for people who want some logging sanity