-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Fix import paths with site-packages
as part of package name
#756
base: master
Are you sure you want to change the base?
fix: Fix import paths with site-packages
as part of package name
#756
Conversation
pass | ||
else: | ||
# If path includes "site-packages", we're interested in part after this. | ||
rel_path_parts = rel_path_parts[site_packages_index + 1:] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's temporary code from my first attempt, but we probably need to leave here a check for no "site-packages" in path. Just in case.
extra_ignores = [ | ||
p.pathlib.relative_to(self.root.pathlib) | ||
for p in self.get_python_path_folders() | ||
if p.pathlib.is_relative_to(self.root.pathlib) | ||
and "site-packages" in p.pathlib.parts | ||
] | ||
for p in extra_ignores: | ||
# I'm using this approach, because self.prefs.add after _init_prefs | ||
# does not work for some reason. | ||
prefs["ignored_resources"].append(str(p)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's my second attempt, and i need feedback here.
Is it good approach, or maybe some other ideas?
Description
This is another fix, related to #722, i just started using
python-lsp-server
andrope
for autoimports, and noticed it includes.direnv.python-3.11.lib.python3.11
as part of module name when importing.We need to cut part of the path to site-packages, to generate correct import name.That was my first attempt to fix this, but turned that wasn't a problem. The problem was, in my case - that local venv
.venv
was included in project resources.As far as i understand, we have two caches
generate_cache
creates project-specific cachegenerate_module_cache
creates cache of system/venv modules.And when .venv is in the same dir as a project, it was included in project files.
My current first attempt just filters out path if it has "site-packages" in it, but, maybe we need smarter solution, for example:
get_python_files
should exclude any file fromget_python_path_folders
(except project root).For this i need some guidance, @tkrabel @lieryan
Checklist (delete if not relevant):