Тип PEP 695 псевдонимы пока не поддерживаются. Используйте
--enable-incomplete-feature=NewGenericSyntax для экспериментальной поддержки
Вот короткая программа, в которой mypy (с включенной функцией) это делает не похоже на первые две строки типа DataAs.... = ...:
Код: Выделить всё
from typing import Annotated
from pydantic import AfterValidator
def validate_anything(data):
return data
type DataAsDict = Annotated[dict[str, str], AfterValidator[validate_anything]]
type DataAsList = Annotated[list[str], AfterValidator[validate_anything]]
type DataType = DataAsDict | DataAsList
def foo(data: DataType) -> None:
pass
ошибка: тип «type[AfterValidator]» не является универсальным. и не индексируется [разное]
Удаление ключевого слова type решает проблему:
Код: Выделить всё
DataAsDict = Annotated[dict[str, str], AfterValidator[validate_anything]]
DataAsList = Annotated[list[str], AfterValidator[validate_anything]]
type DataType = DataAsDict | DataAsList
Подробнее здесь: https://stackoverflow.com/questions/790 ... -statement
Мобильная версия