typing добавится TypeForm[T] — способ аннотировать аргументы, которые принимают не значения, а сами типы: int | str, list[int], TypedDict и другие.Раньше функции вроде
trycast() или is_match() из библиотек beartype, pydantic, typeguard приходилось аннотировать через object, слишком широко, без проверки типов.Теперь можно так:
def trycast[T](typx: TypeForm[T], value: object) -> T | None: ...
def is_match[T](value: object, typx: TypeForm[T]) -> TypeGuard[T]: ...
# Или просто переменная:
int_form: TypeForm = int | None
В Python приедет с версии 3.15. Уже сейчас доступно через
typing_extensions. Экспериментальная поддержка есть в Pyright@zen_of_python
Telegram | Max