Objects for Type Hinting

Various built-in types for type hinting are provided. Currently,two types exist –GenericAlias andUnion. OnlyGenericAlias is exposed to C.

PyObject*Py_GenericAlias(PyObject*origin,PyObject*args)
Part of theStable ABI since version 3.9.

Create aGenericAlias object.Equivalent to calling the Python classtypes.GenericAlias. Theorigin andargs arguments set theGenericAlias‘s__origin__ and__args__ attributes respectively.origin should be aPyTypeObject*, andargs can be aPyTupleObject* or anyPyObject*. Ifargs passed isnot a tuple, a 1-tuple is automatically constructed and__args__ is setto(args,).Minimal checking is done for the arguments, so the function will succeed eveniforigin is not a type.TheGenericAlias‘s__parameters__ attribute is constructed lazilyfrom__args__. On failure, an exception is raised andNULL isreturned.

Here’s an example of how to make an extension type generic:

...staticPyMethodDefmy_obj_methods[]={// Other methods....{"__class_getitem__",Py_GenericAlias,METH_O|METH_CLASS,"See PEP 585"}...}

See also

The data model method__class_getitem__().

Added in version 3.9.

PyTypeObjectPy_GenericAliasType
Part of theStable ABI since version 3.9.

The C type of the object returned byPy_GenericAlias(). Equivalent totypes.GenericAlias in Python.

Added in version 3.9.