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
The last line of the following code, d[''], attempts to access an empty key. However, since the key is empty (''), it should raise a KeyError with Python because empty keys are not defined in the A class. Mypy reports an internal error.
mypy_example.py
from typing_extensions import TypedDict
class A(TypedDict):
my_attr_1: str
my_attr_2: int
d: A
d['']
The expected behavior
No internal errors reported
The actual output:
>> mypy --show-traceback 'mypy_example.py'
mypy_example.py:12: error: TypedDict "A" has no key "" [typeddict-item]
/home/xxm/Desktop/mypy_example.py:12: error: INTERNAL ERROR -- Please try using mypy master on GitHub:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
Please report a bug at https://github.com/python/mypy/issues
version: 1.4.0+dev
Traceback (most recent call last):
File "/home/xxm/.local/bin/mypy", line 8, in <module>
sys.exit(console_entry())
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/__main__.py", line 15, in console_entry
main()
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/main.py", line 95, in main
res, messages, blockers = run_build(sources, options, fscache, t0, stdout, stderr)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/main.py", line 174, in run_build
res = build.build(sources, options, None, flush_errors, fscache, stdout, stderr)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 194, in build
result = _build(
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 267, in _build
graph = dispatch(sources, manager, stdout)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 2926, in dispatch
process_graph(graph, manager)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 3324, in process_graph
process_stale_scc(graph, scc, manager)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 3425, in process_stale_scc
graph[id].type_check_first_pass()
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/build.py", line 2311, in type_check_first_pass
self.type_checker().check_first_pass()
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checker.py", line 472, in check_first_pass
self.accept(d)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checker.py", line 582, in accept
stmt.accept(self)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/nodes.py", line 1240, in accept
return visitor.visit_expression_stmt(self)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checker.py", line 4202, in visit_expression_stmt
expr_type = self.expr_checker.accept(s.expr, allow_none_return=True, always_allow_any=True)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checkexpr.py", line 4961, in accept
typ = node.accept(self)
^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/nodes.py", line 1960, in accept
return visitor.visit_index_expr(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checkexpr.py", line 3687, in visit_index_expr
result = self.visit_index_expr_helper(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checkexpr.py", line 3703, in visit_index_expr_helper
return self.visit_index_with_type(left_type, e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checkexpr.py", line 3749, in visit_index_with_type
return self.visit_typeddict_index_expr(left_type, e.index)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/checkexpr.py", line 3868, in visit_typeddict_index_expr
self.msg.typeddict_key_not_found(td_type, key_name, index, setitem)
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/messages.py", line 1832, in typeddict_key_not_found
matches = best_matches(item_name, typ.items.keys(), n=3)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/xxm/.local/lib/python3.11/site-packages/mypy/messages.py", line 2993, in best_matches
assert current
AssertionError:
/home/xxm/Desktop/mypy_example.py:12: : note: use --pdb to drop into pdb
Test environment:
mypy 1.4.0+dev
Python 3.11.3
Ubuntu 18.04
The text was updated successfully, but these errors were encountered:
The last line of the following code, d[''], attempts to access an empty key. However, since the key is empty (''), it should raise a KeyError with Python because empty keys are not defined in the A class. Mypy reports an internal error.
mypy_example.py
The expected behavior
No internal errors reported
The actual output:
Test environment:
mypy 1.4.0+dev
Python 3.11.3
Ubuntu 18.04
The text was updated successfully, but these errors were encountered: