Open jorenham opened 1 month ago
looks like the only difference between sparray
and spmatrix
is that spmatrix
is an explicit re-export (from ._matrix import spmatrix as spmatrix
), maybe there's an issue with import suggestions with re-exports?
does the same thing happen with completions?
maybe there's an issue with import suggestions with re-exports
Yea, I suppose that makes sense. Especially because sparray
is actually defined in scipy.sparse._base
, whereas spmatrix
isn't.
does the same thing happen with completions?
Yea I believe so, but it's hard to tell because I'm also using codeium as an AI autocomplete assistant thingy
looks like a setting for this was added in the latest pylance release: https://code.visualstudio.com/updates/v1_95#_improved-import-suggestions
One of Pylance's powerful features is its ability to provide auto-import suggestions. By default, Pylance offers the import suggestion from where the symbol is defined, but you might want it to import it from a file where the symbol is imported (i.e. aliased). With the new
python.analysis.includeAliasesFromUserFiles
setting, you can now control whether Pylance includes alias symbols from user files in its auto-import suggestions or in the add import Quick Fix.Note that enabling this setting can negatively impact performance, especially in large codebases, as Pylance may need to index more symbols and monitor more files for changes, which can increase resource usage.
I believe that's more applicable to situations where you did import numbers as ir
in some file that's closed, so that if you type Rational
in some other file in a different continent, then pylance will autoimport import numbers as ir
, and then autocompletes Rational
as ir.Rational
But I didn't test it out yet (I was too busy shouting at my screen because the typeshed still didn't annotate the numbers
stdlib), so don't take my word for it 🤷🏻
This screenshot is from scipy-stubs, specifically in
scipy-stubs/sparse/csgraph/_validation.pyi
(the relevant code isn't pushed yet, but will be soon).So here the
basedpyright
suggested to importsparray
fromscipy.sparse._base
, which I accepted because it was the only available option. But in the screenshot you can see that it wasn't able to findspmatrix
, even though it also is available in (at least)scipy.sparse._base
.Within
scipy.sparse._base.__all__
, onlysparray
is explicitly exported, andspmatrix
is implicitly exported throughfrom {} import spmatrix as spmatrix
(blamescipy
).But the strange thing is that both
spmatrix
andsparray
are both explicitly exported at the package level, i.e. throughscipy.sparse.__init__.__all__
. However, in both cases, thebasedpyright
plugin wasn't able to suggest this 🤔.