Skip to content
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

Discovery of stubs in a different folder #1078

Open
Jasha10 opened this issue Mar 19, 2022 · 4 comments
Open

Discovery of stubs in a different folder #1078

Jasha10 opened this issue Mar 19, 2022 · 4 comments

Comments

@Jasha10
Copy link

Jasha10 commented Mar 19, 2022

I'm having trouble with discovery of .pyi stub files that live in a different folder from the .py source file.

Here is an example that works as expected:

.
├── code
│   ├── foo.py
│   └── foo.pyi
└── main.py

If I set the environment variable PYTHONPATH=code and if main.py contains the line from foo import bar, then jedi#goto_stubs() works as expected (it finds the definition of bar in code/foo.pyi).

Here is an example that is not working:

I am having problems when the file layout looks like this:

.
├── code
│   └── foo.py
├── stubs
│   └── foo.pyi
└── main.py

In this situation, jedi#goto_stubs() does not work.
I have tried the following environment variable settings:

  • PYTHONPATH=code:stubs
  • PYTHONPATH=code MYPYPATH=stubs

I would expect that the .pyi file can be discovered as long as it is discoverable on PYTHONPATH or MYPYPATH, but this seems not to be the case.

@davidhalter
Copy link
Owner

Jedi does not respect MYPYPATH, because it's fundamentally not mypy ;-)

Jedi follows this: https://peps.python.org/pep-0561/#type-checker-module-resolution-order

I guess just put stubs in front of code in the PYTHONPATH.

@Jasha10
Copy link
Author

Jasha10 commented Mar 20, 2022

Jedi does not respect MYPYPATH, because it's fundamentally not mypy ;-)

Makes sense!

Jedi follows this: https://peps.python.org/pep-0561/#type-checker-module-resolution-order

I guess just put stubs in front of code in the PYTHONPATH.

Using PYTHONPATH=stubs:code I am still getting jedi-vim: Couldn't find any definitions for this when I call jedi#goto_stubs().

@davidhalter
Copy link
Owner

davidhalter commented Mar 21, 2022

I'm keeping this open for now, but I feel like this might not be fixed, since currently nobody is actively working on Jedi.

I'm currently working on a Rust replacement for Jedi, but it will still take time (and it will probably support MYPYPATH).

@Jasha10
Copy link
Author

Jasha10 commented Mar 23, 2022

Cool! I can't wait to see the new rust program.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants