rope icon indicating copy to clipboard operation
rope copied to clipboard

fix: Fix import paths with `site-packages` as part of package name

Open last-partizan opened this issue 1 year ago • 0 comments

Description

This is another fix, related to #722, i just started using python-lsp-server and rope 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 cache
  • generate_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 from get_python_path_folders (except project root).

For this i need some guidance, @tkrabel @lieryan

Checklist (delete if not relevant):

  • [ ] I have added tests that prove my fix is effective or that my feature works (not yet)
  • [ ] I have updated CHANGELOG.md (not yet)

last-partizan avatar Feb 25 '24 19:02 last-partizan