Hi @Robert_Blankenship, could you try adding paths to cursorpyright.analysis.exclude? This will limit the # of files that are getting analyzed, which should help improve performance.
+1. Me and my team having same issue post update. Unusable unfortunately. We have a python mono-repo & pretty sure any enterprise level company writing python code outside of a pet project will hit this if the performance is bad on 800 files. Especially because my dev machine is pretty beefy…
Why was Pylance removed in favor of Anysphere Python
Is Cursor aware of this issue and the severity and is there any plan / path to improve the performance? Need to know so I can advise my team how much to invest in other alternatives.
I do not have this issue with any other IDE which suggests the performance is miles off on Anysphere
This new anysphere Python plugin also has odd behavior for code completion, unreachable code parsing, and handling custom text color settings. In a DRF view anytime you call “get_object()” it is saying all the code beneath it is unreachable. Does not behave like the MS python extension.
I am also in a python mono-repo guy, and its frustrating to deal with these issues. Ease of use for Cursor (and VSCode to be fair) for Python is like a 1/10 compared to JetBrains IDEs. I would love to see more from the Cursor team on the mono-repo python use case.
The option installing ty + pyrefly did not work for us. These tools incorrectly report issues for things that pylance supports.
It would be very helpful to have an answer to @Ryan_St_Pierre ‘s questions. It has been multiple weeks with no clarity. So to re-hash
A) Anysphere is not ready for usage - for any mono-repo of any reasonable size it will crash all resources on your laptop. Our team is experiencing this as well as a lot of other posts I am seeing in this and related threads.
B) ty + pyrefly do not fully emulate the behaviors and performance of pylance
So getting answers to questions 1 and 2 above are essential in us determining next steps. Can we have an update @ravirahman ?
The main thing for us in particular would be native support for Pydantic. Pydantic I feel like has become quite popular, and pylance correctly supports the intended patterns Pydantic enables.
A very simple example is before validators. e.g.:
from pydantic import BaseModel, field_validator
class Example(BaseModel):
list_or_str_input: list[str]
@field_validator("list_or_str_input", mode="before")
@classmethod
def validate_list_or_str_input(cls, v: str | list[str]) -> list[str]:
if isinstance(v, str):
v = [v]
return v
this_works = Example(list_or_str_input="single_string")
this_also_works = Example(list_or_str_input=["string1", "string2"])
In practice, there are many more examples and more advanced things you can do as well. But pylance is happy with this code, whereas you get errors if you try anything with pyrefly because it thinks it needs to be list[str] always
If there are other gaps or things you would like to see, please leave an issue or ping us on discord. We’re eager to hear about the specific gaps that people are most interested in.
We are facing the same issue here. We’ve been using the official “anysphere Python” since pylance was blocked and we are dealing with a lot of performance issues, rendering the IDE quite unusable.
“Go to References” doesn’t work anymore. We see the eternal “Finding references…” indicator, but nothing happens and there are no informative logs on Cursor Pyright and basedpyright output tabs
“Go to Definition” takes too long. It’s taking 3 to 4 minutes after the click.
Renaming files became an impossible task from the IDE.
While comparing against VSCode with pylance, it became clear that this doesn’t seem to be caused by the size of the codebase. It just works there, even without excluding/limiting search paths.
We’d really appreciate some suggestions here (either on investigating where the bottleneck is or with alternative approaches).