Objetos de indicação de tipos
*****************************

São fornecidos vários tipos embutidos para sugestão de tipo.
Atualmente, dois tipos existem -- GenericAlias e Union.  Apenas
"GenericAlias" está exposto ao C.

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
    * Parte da ABI Estável desde a versão 3.9.*

   Cria um objeto GenericAlias. Equivalente a chamar a classe Python
   "types.GenericAlias". Os argumentos *origin* e *args* definem os
   atributos "__origin__" e "__args__" de "GenericAlias"
   respectivamente. *origin* deve ser um PyTypeObject*, e *args* pode
   ser um PyTupleObject* ou qualquer "PyObject*". Se *args* passado
   não for uma tupla, uma tupla de 1 elemento é construída
   automaticamente e "__args__" é definido como "(args,)". A
   verificação mínima é feita para os argumentos, então a função terá
   sucesso mesmo se *origin* não for um tipo. O atributo
   "__parameters__" de "GenericAlias" é construído lentamente a partir
   de "__args__". Em caso de falha, uma exceção é levantada e "NULL" é
   retornado.

   Aqui está um exemplo de como tornar um tipo de extensão genérico:

      ...
      static PyMethodDef my_obj_methods[] = {
          // Outros métodos.
          ...
          {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "Veja PEP 585"}
          ...
      }

   Ver também: O método de modelo de dados "__class_getitem__()".

   Adicionado na versão 3.9.

PyTypeObject Py_GenericAliasType
    * Parte da ABI Estável desde a versão 3.9.*

   O tipo C do objeto retornado por "Py_GenericAlias()". Equivalente a
   "types.GenericAlias" no Python.

   Adicionado na versão 3.9.
