Open elazarg opened 8 years ago
I'm working on trying out NamedTuple from typing with mypy, and I ran into an error claiming my tuple has no attribute "_replace" when I try to call _replace.
Is this what you're talking about here, or am I running into a different problem?
What version of mypy do you use? This sounds like an old bug that should have been fixed. Can you post an example code?
0.4.4. I'll work on some example code quickly.
from typing import NamedTuple
Foo = NamedTuple('Foo', [
('x', int),
('y', str)
])
def do_something(foo: Foo) -> Foo:
return foo._replace(x=7)
I'm getting this error:
test.py: note: In function "do_something": test.py:9: error: "Foo" has no attribute "_replace"
Can you repro with the latest mypy version from the repro?
No it was fixed but not released yet.
Our policy is to close bugs when the fix lands in the repo. So if this issue is fixed in the repo it should be closed now. (As the originator you should be able to.)
You were right. Installing directly from git doesn't give any errors.
@gvanrossum please don't close this issue. It is about other problems, not yet solved.
Sorry!
_make
on an instance, as a proper classmethod (?)_make
and_replace
should bind to SelfType, depends on #1212_asdict
should return closer match toOrderedDict[str, Union[types]]
_make
paramsnew
andlen
should be callable