.. data:: Unpack
- A typing operator that conceptually marks an object as having been
- unpacked. For example, using the unpack operator ``*`` on a
- :class:`type variable tuple <TypeVarTuple>` is equivalent to using ``Unpack``
- to mark the type variable tuple as having been unpacked::
-
- Ts = TypeVarTuple('Ts')
- tup: tuple[*Ts]
- # Effectively does:
- tup: tuple[Unpack[Ts]]
-
- In fact, ``Unpack`` can be used interchangeably with ``*`` in the context
- of types. You might see ``Unpack`` being used explicitly in older versions
- of Python, where ``*`` couldn't be used in certain places::
-
- # In older versions of Python, TypeVarTuple and Unpack
- # are located in the `typing_extensions` backports package.
- from typing_extensions import TypeVarTuple, Unpack
-
- Ts = TypeVarTuple('Ts')
- tup: tuple[*Ts] # Syntax error on Python <= 3.10!
- tup: tuple[Unpack[Ts]] # Semantically equivalent, and backwards-compatible
+ A typing operator that conceptually marks an object as having been
+ unpacked. For example, using the unpack operator ``*`` on a
+ :class:`type variable tuple <TypeVarTuple>` is equivalent to using ``Unpack``
+ to mark the type variable tuple as having been unpacked::
+
+ Ts = TypeVarTuple('Ts')
+ tup: tuple[*Ts]
+ # Effectively does:
+ tup: tuple[Unpack[Ts]]
+
+ In fact, ``Unpack`` can be used interchangeably with ``*`` in the context
+ of types. You might see ``Unpack`` being used explicitly in older versions
+ of Python, where ``*`` couldn't be used in certain places::
+
+ # In older versions of Python, TypeVarTuple and Unpack
+ # are located in the `typing_extensions` backports package.
+ from typing_extensions import TypeVarTuple, Unpack
+
+ Ts = TypeVarTuple('Ts')
+ tup: tuple[*Ts] # Syntax error on Python <= 3.10!
+ tup: tuple[Unpack[Ts]] # Semantically equivalent, and backwards-compatible
.. versionadded:: 3.11