Closed Azureblade3808 closed 2 years ago
Hm, this looks like #1197 again, which we should have fixed earlier this year. Not sure why this has regressed; the library is py.typed
and should be getting preferred over the stubs.
I've tested with click 8.0.3 and I can't reproduce this; the code snippet you provided type checks in strict mode and go-to-declaration jumps to the installed library and not our copy of typeshed.
I see that you're using anaconda; I've used pip. Can you retest with a plain venv, and also see if where click is installed in anaconda whether or not is has the py.typed
marker file?
My working computer, which the issue appears on, is not in my reach now. I will perform the test as soon as I can, but probably in another one week.
Ah, I see where the cause lies.
I set the anaconda "site-packages" folder as one of "python.analysis.extraPaths" long ago (to avoid some parsing issues at that time I think). If I undid this setting, Pylance correctly uses the library code over the bundled typeshed.
My guess is that Pylance prioritize extra paths over environment libraries and therefore cannot acquire the versions of the modules. If so, this issue can be closed.
Yes, extraPaths and PYTHONPATH come before any other paths (to allow the user to override), so that'd be expected.
Environment data
Sample code
And I'm using Click v8.0.1.
Expected behavior
Type definitions in library code are used, and there are no error in the sample code.
Actual behavior
Type definitions in bundled typeshed are used, and there is a type error in the sample code.
And things become right once I removed the bundled typeshed for Click.
Logs