почему mypy жалуется, что «объект» не вызывается при использовании псевдонима TypedDict

#python #mypy

Вопрос:

У меня есть файл с именем debug.py :

 from typing import TypedDict

class T(TypedDict):
    a: int


Q = T

x = Q(a=1)
 

когда я бегу

 mypy debug.py
 

Я вижу

 debug.py:9: error: "object" not callable
Found 1 error in 1 file (checked 1 source file)
 

Если я заменю x = Q(a=1) на x = T(a=1) , то жалоба исчезнет.

Использование reveal_type шоу

 debug.py:9: note: Revealed type is 'builtins.object'
debug.py:10: note: Revealed type is 'def () -> debug.T'
 

Почему это не Q одно и T то же?

Комментарии:

1. Это похоже на ошибку. Играя с ним, я обнаружил, что если вы это сделаете foo = Q = T , то все три будут определены как правильный тип.