You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running mypy on code installed in a virtualenv environment, mypy will fail outright if the environment contains typing-extensions.
To Reproduce
See repo containing a minimal example. The steps below describe the general idea:
Create a fresh virtual environment.
Create a minimal library with a setup.py that lists typing-extensions in install_requires.
Install the library to the virtual environment.
Run mypy on a file inside the environment that is part of the library (mypy venv/lib/python3.Y/site-packages/my_project/hello.py).
Expected Behavior
mypy would report errors in hello.py, if any, or exit with 0 if none.
Actual Behavior
mypy doesn't check hello.py, complaining that it found a typing_extensions.py in the environment:
mypy: "project-venv/lib/python3.6/site-packages/typing_extensions.py" shadows library module "typing_extensions"
note: A user-defined top-level module with name "typing_extensions" is not supported
Your Environment
Mypy version used: 0.910.
Mypy command-line flags: none
Mypy configuration options from mypy.ini (and other config files): none
Python version used: multiple (3.6.8, 3.8.8).
Operating system and version: CentOS 7
The text was updated successfully, but these errors were encountered:
You are running mypy against something in site-packages, which we generally discourage for this reason that you are running into. You should run mypy against your package sources when they are not installed. It is supposed to raise an error here however about running against something in site packages...
The reason I'm running against site-packages is because of a non-standard build workflow. In particular, I need to rewrite the directory structure of my source Python files to look slightly differently. So I'm constructing an intermediate environment to run mypy (and pytest) against that has both the rewritten source files and the dependencies from pip.
The reason I'm running against site-packages is because of a non-standard build workflow. In particular, I need to rewrite the directory structure of my source Python files to look slightly differently. So I'm constructing an intermediate environment to run mypy (and pytest) against that has both the rewritten source files and the dependencies from pip.
Is there no way around this from the mypy side?
I encountered a similar issue when using the mypy-type-checker plugin in VSCode. I fixed it by removing the above path in python.analysis.extraPaths field.
Bug Report
When running mypy on code installed in a
virtualenv
environment,mypy
will fail outright if the environment containstyping-extensions
.To Reproduce
See repo containing a minimal example. The steps below describe the general idea:
setup.py
that liststyping-extensions
ininstall_requires
.mypy
on a file inside the environment that is part of the library (mypy venv/lib/python3.Y/site-packages/my_project/hello.py
).Expected Behavior
mypy
would report errors inhello.py
, if any, or exit with 0 if none.Actual Behavior
mypy doesn't check
hello.py
, complaining that it found atyping_extensions.py
in the environment:Your Environment
mypy.ini
(and other config files): noneThe text was updated successfully, but these errors were encountered: