##
7.1.1 Type Objects

`PyTypeObject`
  The C structure of the objects used to describe built-in types.

PyObject* `PyType_Type`
  This is the type object for type objects; it is the same object as `types.TypeType` in the Python layer.

int `PyType_Check`(PyObject *o)
  Returns true is the object o is a type object.

int `PyType_HasFeature`(PyObject *o, int feature)
  Returns true if the type object o sets the feature feature. Type features are denoted by single bit flags.

int `PyType_IsSubtype`(PyTypeObject *a, PyTypeObject *b)
  Returns true if a is a subtype of b. New in version 2.2.

PyObject* `PyType_GenericAlloc`(PyTypeObject *type, int nitems)
  Return value: New reference.
  New in version 2.2.

PyObject* `PyType_GenericNew`(PyTypeObject *type, PyObject *args, PyObject *kwds)
  Return value: New reference.
  New in version 2.2.

int `PyType_Ready`(PyTypeObject *type)
  New in version 2.2.