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
{{ message }}
Repository navigation
Wrong file blamed for a mixture of NamedTuple and passing a function instead of type. #8511
from typing import NamedTuple
from dir.file1 import Type1
Type2 = NamedTuple('Type2', [
('x', Type1),
])
Run: mypy file2.py --follow-imports=silent
What is the actual behavior/output?
The error message is:
file2.py:8: error: Name 'foo' is not defined
-> Note that file2.py has no line 8 (it the problematic line in file1.py) and no mention of foo.
What is the behavior/output you expect?
the error message should point to file1.py or say something about Type1 in file2.py being invalid.
foo is well defined in this case, making the error message more cryptic.
When reducing this case I've found that removing --follow-import-silent gives an error message about file1.py which is actionable, but the other message is still present and is wrong, since the line number refers to a line in file1.py.
What are the versions of mypy and Python you are using?
mypy 0.761 on Python 3.5.2
What are the mypy flags you are using? (For example --strict-optional)
Activity
msullivan commentedon Mar 16, 2020
Oh this looks nasty. Anything that gives errors in the wrong file is really bad!
Fix invalid type causing namedtuple errors in wrong files
Fix invalid type causing namedtuple errors in wrong files
mikolajz commentedon Mar 17, 2020
Yes, it was quite tricky to find that the error was because in a completely different file someone used numpy.array instead of numpy.ndarray.
Fix invalid type causing namedtuple errors in wrong files (#8549)