From future import annotations
Объясняю значение from __future__ import annotations
Функция annotations
относится к PEP 563 - речь идет об Отложенной оценке аннотаций. Это усовершенствование существующей функции аннотаций, которая изначально была введена в python 3.0 и переопределена для подсказок типа в python 3.5
Поскольку это изменение нарушает совместимость, новое поведение должно быть включено для каждого модуля в Python3.7+, подразумевающего отложенную аннотацию. Необходимо использовать from __future__ import annotations
. Такое поведение является поведением по умолчанию начиная Python 3.10
Пример:
class A:
def f(self) -> A: # NameError: name 'A' is not defined
pass
from __future__ import annotations
class A:
def f(self) -> A:
pass