型ヒントのためのオブジェクト
****************************

型ヒント用の組み込み型を提供しています。 現在は GenericAlias と Union
の二つがあり、このうち C に公開されているのは "GenericAlias" だけです
。

PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
    * 次に属します: Stable ABI (バージョン 3.9 より).*

   GenericAlias オブジェクトを生成します。Pythonクラス
   "types.GenericAlias" を呼び出すことと同等です。引数 *origin* と
   *args* は "GenericAlias" の "__origin__" および "__args__" 属性をそ
   れぞれ設定します。 *origin* は PyTypeObject* でなければならず、
   *args* は PyTupleObject* または任意の "PyObject*" です。 *args* が
   タプルでない場合には1タプルが自動的に生成され、"__args__" には
   "(args,)" が設定されます。引数チェックは最小限なため、たとえ
   *origin* が型を示すオブジェクトでなくても関数呼び出しは成功します。
   "GenericAlias" の "__parameters__" 属性は "__args__" から必要に応じ
   て遅延生成されます。失敗した場合、例外が送出されて "NULL" を返しま
   す。

   拡張型をジェネリックにする例を示します。

      ...
      static PyMethodDef my_obj_methods[] = {
          // ほかのメソッド。
          ...
          {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "my_obj は格納する要素の型をパラメータとするジェネリック型"}
          ...
      }

   参考: データモデルのメソッド "__class_getitem__()"。

   Added in version 3.9.

PyTypeObject Py_GenericAliasType
    * 次に属します: Stable ABI (バージョン 3.9 より).*

   "Py_GenericAlias()" により返されるCの型オブジェクトです。Pythonの
   "types.GenericAlias" と同等です。

   Added in version 3.9.
