Сообщить об ошибке.

Тип аннотации Unpack модуля typing в Python

Аннотация Unpack помечает объект как распакованный

Аннотация typing.Unpack (добавлена в Python 3.11) представляет собой оператор ввода, который концептуально помечает объект как распакованный.

Например, использование оператора распаковки * для кортежа переменного типа typing.TypeVarTuple эквивалентно использованию аннотации Unpack для пометки кортежа переменной типа как распакованного:

from typing import Unpack, TypeVarTuple

Ts = TypeVarTuple('Ts')
tup: tuple[*Ts]

# делает эффективнее:
tup: tuple[Unpack[Ts]]

На самом деле, typing.Unpack можно использовать как синоним * в контексте типов. Можно увидеть явное использование Unpack в более старых версиях Python, где * в определенных местах нельзя было использовать:

# В более старых версиях Python3, `TypeVarTuple` и `Unpack` 
# находятся в пакете backports `typing_extensions`.
from typing_extensions import TypeVarTuple, Unpack

Ts = TypeVarTuple('Ts')
# Синтаксическая ошибка в Python <= 3.10!
tup: tuple[*Ts]
# Семантически эквивалентный и обратно совместимый
tup: tuple[Unpack[Ts]]

Новое в Python 3.11.