/* This file is automatically generated by generate.py. */


# include "Python.h"
# include "datetime.h"


// static PyTypeObject NULLType;


/* Wrapper definitions: */


/* PyAnySet */

static PyObject* capi_PyAnySet_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyAnySet_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyAnySet_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyAnySet_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyBool */

static PyObject* capi_PyBool_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyBool_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyBool_FromLong(PyObject* Py_UNUSED(self), PyObject* args) {

    long arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "l:PyBool_FromLong", &arg0)) {
        return NULL;
    }

    result = PyBool_FromLong(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyByteArray */

static PyObject* capi_PyByteArray_AS_STRING(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyByteArray_AS_STRING(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyByteArray_AsString(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyByteArray_AsString(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyByteArray_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyByteArray_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyByteArray_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyByteArray_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyByteArray_Concat(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyByteArray_Concat", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyByteArray_Concat(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyByteArray_FromObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyByteArray_FromObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyByteArray_FromStringAndSize(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yn:PyByteArray_FromStringAndSize", &arg0, &arg1)) {
        return NULL;
    }

    result = PyByteArray_FromStringAndSize(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyByteArray_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyByteArray_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyByteArray_Resize(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;

    int result;

    if (!PyArg_ParseTuple(args, "On:PyByteArray_Resize", &arg0, &arg1)) {
        return NULL;
    }

    result = PyByteArray_Resize(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyByteArray_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyByteArray_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

/* PyBytes */

static PyObject* capi_PyBytes_AS_STRING(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyBytes_AS_STRING(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyBytes_AsString(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyBytes_AsString(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyBytes_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyBytes_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyBytes_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyBytes_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyBytes_FromObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyBytes_FromObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyBytes_FromString(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyBytes_FromString", &arg0)) {
        return NULL;
    }

    result = PyBytes_FromString(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyBytes_FromStringAndSize(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yn:PyBytes_FromStringAndSize", &arg0, &arg1)) {
        return NULL;
    }

    result = PyBytes_FromStringAndSize(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyBytes_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyBytes_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyBytes_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyBytes_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

/* PyCallIter */

static PyObject* capi_PyCallIter_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCallIter_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCallIter_New(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyCallIter_New", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyCallIter_New(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyCallable */

static PyObject* capi_PyCallable_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCallable_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyCapsule */

static PyObject* capi_PyCapsule_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCapsule_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCapsule_GetName(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyCapsule_GetName(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyCapsule_IsValid(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "Oy:PyCapsule_IsValid", &arg0, &arg1)) {
        return NULL;
    }

    result = PyCapsule_IsValid(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCapsule_SetName(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "Oy:PyCapsule_SetName", &arg0, &arg1)) {
        return NULL;
    }

    result = PyCapsule_SetName(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyCell */

static PyObject* capi_PyCell_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCell_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCell_GET(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCell_GET(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCell_Get(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCell_Get(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCell_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCell_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCell_SET(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    if (!PyArg_UnpackTuple(args, "PyCell_SET", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    PyCell_SET(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyCell_Set(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyCell_Set", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyCell_Set(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyCode */

static PyObject* capi_PyCode_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCode_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyCodec */

static PyObject* capi_PyCodec_BackslashReplaceErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCodec_BackslashReplaceErrors(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_Decode(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;
    char* arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Oyy:PyCodec_Decode", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyCodec_Decode(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_Decoder(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyCodec_Decoder", &arg0)) {
        return NULL;
    }

    result = PyCodec_Decoder(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_Encode(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;
    char* arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Oyy:PyCodec_Encode", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyCodec_Encode(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_Encoder(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyCodec_Encoder", &arg0)) {
        return NULL;
    }

    result = PyCodec_Encoder(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_IgnoreErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCodec_IgnoreErrors(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_IncrementalDecoder(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    char* arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yy:PyCodec_IncrementalDecoder", &arg0, &arg1)) {
        return NULL;
    }

    result = PyCodec_IncrementalDecoder(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_IncrementalEncoder(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    char* arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yy:PyCodec_IncrementalEncoder", &arg0, &arg1)) {
        return NULL;
    }

    result = PyCodec_IncrementalEncoder(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_KnownEncoding(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    int result;

    if (!PyArg_ParseTuple(args, "y:PyCodec_KnownEncoding", &arg0)) {
        return NULL;
    }

    result = PyCodec_KnownEncoding(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCodec_LookupError(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyCodec_LookupError", &arg0)) {
        return NULL;
    }

    result = PyCodec_LookupError(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if 0x030500F0 <= PY_VERSION_HEX

    static PyObject* capi_PyCodec_NameReplaceErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyCodec_NameReplaceErrors(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyCodec_Register(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCodec_Register(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCodec_RegisterError(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "yO:PyCodec_RegisterError", &arg0, &arg1)) {
        return NULL;
    }

    result = PyCodec_RegisterError(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyCodec_ReplaceErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCodec_ReplaceErrors(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_StreamReader(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    char* arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOy:PyCodec_StreamReader", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyCodec_StreamReader(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_StreamWriter(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    char* arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOy:PyCodec_StreamWriter", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyCodec_StreamWriter(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_StrictErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCodec_StrictErrors(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyCodec_XMLCharRefReplaceErrors(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyCodec_XMLCharRefReplaceErrors(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyComplex */

static PyObject* capi_PyComplex_AsCComplex(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_complex result;

    result = PyComplex_AsCComplex(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyComplex_FromCComplex(result);
}

static PyObject* capi_PyComplex_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyComplex_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyComplex_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyComplex_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyComplex_FromCComplex(PyObject* Py_UNUSED(self), PyObject* args) {

    Py_complex arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "D:PyComplex_FromCComplex", &arg0)) {
        return NULL;
    }

    result = PyComplex_FromCComplex(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyComplex_FromDoubles(PyObject* Py_UNUSED(self), PyObject* args) {

    double arg0;
    double arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "dd:PyComplex_FromDoubles", &arg0, &arg1)) {
        return NULL;
    }

    result = PyComplex_FromDoubles(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyComplex_ImagAsDouble(PyObject* Py_UNUSED(self), PyObject* arg) {

    double result;

    result = PyComplex_ImagAsDouble(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyFloat_FromDouble(result);
}

static PyObject* capi_PyComplex_RealAsDouble(PyObject* Py_UNUSED(self), PyObject* arg) {

    double result;

    result = PyComplex_RealAsDouble(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyFloat_FromDouble(result);
}

# if 0x030700F0 <= PY_VERSION_HEX

    /* PyContextToken */

    static PyObject* capi_PyContextToken_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

        int result;

        result = PyContextToken_CheckExact(arg);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    /* PyContextVar */

    static PyObject* capi_PyContextVar_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

        int result;

        result = PyContextVar_CheckExact(arg);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContextVar_New(PyObject* Py_UNUSED(self), PyObject* args) {

        char* arg0;
        PyObject* arg1;

        PyObject* result;

        if (!PyArg_ParseTuple(args, "yO:PyContextVar_New", &arg0, &arg1)) {
            return NULL;
        }

        result = PyContextVar_New(arg0, arg1);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

    static PyObject* capi_PyContextVar_Reset(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;

        int result;

        if (!PyArg_UnpackTuple(args, "PyContextVar_Reset", 2, 2, &arg0, &arg1)) {
            return NULL;
        }

        result = PyContextVar_Reset(arg0, arg1);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContextVar_Set(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;

        PyObject* result;

        if (!PyArg_UnpackTuple(args, "PyContextVar_Set", 2, 2, &arg0, &arg1)) {
            return NULL;
        }

        result = PyContextVar_Set(arg0, arg1);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

    /* PyContext */

    static PyObject* capi_PyContext_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

        int result;

        result = PyContext_CheckExact(arg);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContext_ClearFreeList(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        int result;

        result = PyContext_ClearFreeList();

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContext_Copy(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyContext_Copy(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

    static PyObject* capi_PyContext_CopyCurrent(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        PyObject* result;

        result = PyContext_CopyCurrent();

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

    static PyObject* capi_PyContext_Enter(PyObject* Py_UNUSED(self), PyObject* arg) {

        int result;

        result = PyContext_Enter(arg);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContext_Exit(PyObject* Py_UNUSED(self), PyObject* arg) {

        int result;

        result = PyContext_Exit(arg);

        if (PyErr_Occurred()) {
            return NULL;
        }

        return PyLong_FromLong(result);
    }

    static PyObject* capi_PyContext_New(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        PyObject* result;

        result = PyContext_New();

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

/* PyCoro */

static PyObject* capi_PyCoro_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyCoro_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyDateTime */

static PyObject* capi_PyDateTime_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDateTime_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDateTime_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDateTime_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDateTime_FromDateAndTime(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;
    int arg1;
    int arg2;
    int arg3;
    int arg4;
    int arg5;
    int arg6;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "iiiiiii:PyDateTime_FromDateAndTime", &arg0, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6)) {
        return NULL;
    }

    result = PyDateTime_FromDateAndTime(arg0, arg1, arg2, arg3, arg4, arg5, arg6);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDateTime_FromTimestamp(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDateTime_FromTimestamp(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyDate */

static PyObject* capi_PyDate_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDate_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDate_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDate_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDate_FromDate(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;
    int arg1;
    int arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "iii:PyDate_FromDate", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyDate_FromDate(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDate_FromTimestamp(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDate_FromTimestamp(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyDelta */

static PyObject* capi_PyDelta_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDelta_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDelta_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDelta_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDelta_FromDSU(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;
    int arg1;
    int arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "iii:PyDelta_FromDSU", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyDelta_FromDSU(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyDescr */

static PyObject* capi_PyDescr_IsData(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDescr_IsData(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyDictProxy */

static PyObject* capi_PyDictProxy_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDictProxy_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyDict */

static PyObject* capi_PyDict_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDict_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyDict_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_Clear(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyDict_Clear(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyDict_Contains(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyDict_Contains", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyDict_Contains(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_Copy(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDict_Copy(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_DelItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyDict_DelItem", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyDict_DelItem(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_GetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyDict_GetItem", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyDict_GetItem(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_GetItemWithError(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyDict_GetItemWithError", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyDict_GetItemWithError(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_Items(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDict_Items(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_Keys(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDict_Keys(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_New(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyDict_New();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_SetDefault(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyDict_SetDefault", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyDict_SetDefault(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyDict_SetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_UnpackTuple(args, "PyDict_SetItem", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyDict_SetItem(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyDict_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyDict_Update(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyDict_Update", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyDict_Update(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyDict_Values(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyDict_Values(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyErr */

static PyObject* capi_PyErr_BadArgument(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    int result;

    result = PyErr_BadArgument();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyErr_BadInternalCall(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyErr_BadInternalCall();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_CheckSignals(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    int result;

    result = PyErr_CheckSignals();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyErr_Clear(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyErr_Clear();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_ExceptionMatches(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyErr_ExceptionMatches(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyErr_GivenExceptionMatches(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyErr_GivenExceptionMatches", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyErr_GivenExceptionMatches(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyErr_NoMemory(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyErr_NoMemory();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyErr_Occurred(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyErr_Occurred();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyErr_Print(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyErr_Print();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_Restore(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    if (!PyArg_UnpackTuple(args, "PyErr_Restore", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    PyErr_Restore(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_SetExcInfo(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    if (!PyArg_UnpackTuple(args, "PyErr_SetExcInfo", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    PyErr_SetExcInfo(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_SetFromErrno(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyErr_SetFromErrno(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyErr_SetFromErrnoWithFilenameObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyErr_SetFromErrnoWithFilenameObject", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyErr_SetFromErrnoWithFilenameObject(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyErr_SetFromErrnoWithFilenameObjects(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyErr_SetFromErrnoWithFilenameObjects", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyErr_SetFromErrnoWithFilenameObjects(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyErr_SetImportError(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyErr_SetImportError", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyErr_SetImportError(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if 0x030600F0 <= PY_VERSION_HEX

    static PyObject* capi_PyErr_SetImportErrorSubclass(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;
        PyObject* arg2;
        PyObject* arg3;

        PyObject* result;

        if (!PyArg_UnpackTuple(args, "PyErr_SetImportErrorSubclass", 4, 4, &arg0, &arg1, &arg2, &arg3)) {
            return NULL;
        }

        result = PyErr_SetImportErrorSubclass(arg0, arg1, arg2, arg3);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyErr_SetInterrupt(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyErr_SetInterrupt();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_SetNone(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyErr_SetNone(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_SetObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    if (!PyArg_UnpackTuple(args, "PyErr_SetObject", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    PyErr_SetObject(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyErr_WriteUnraisable(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyErr_WriteUnraisable(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

/* PyEval */

static PyObject* capi_PyEval_AcquireLock(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyEval_AcquireLock();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyEval_EvalCode(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyEval_EvalCode", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyEval_EvalCode(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyEval_GetBuiltins(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyEval_GetBuiltins();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyEval_GetFuncDesc(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyEval_GetFuncDesc(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyEval_GetFuncName(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyEval_GetFuncName(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyEval_GetGlobals(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyEval_GetGlobals();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyEval_GetLocals(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyEval_GetLocals();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyEval_InitThreads(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyEval_InitThreads();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyEval_ReleaseLock(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyEval_ReleaseLock();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

/* PyException */

static PyObject* capi_PyException_GetCause(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyException_GetCause(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyException_GetContext(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyException_GetContext(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyException_GetTraceback(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyException_GetTraceback(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyException_SetCause(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    if (!PyArg_UnpackTuple(args, "PyException_SetCause", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    PyException_SetCause(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyException_SetContext(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    if (!PyArg_UnpackTuple(args, "PyException_SetContext", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    PyException_SetContext(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyException_SetTraceback(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyException_SetTraceback", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyException_SetTraceback(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyFile */

static PyObject* capi_PyFile_FromFd(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;
    char* arg1;
    char* arg2;
    int arg3;
    char* arg4;
    char* arg5;
    char* arg6;
    int arg7;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "iyyiyyyi:PyFile_FromFd", &arg0, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7)) {
        return NULL;
    }

    result = PyFile_FromFd(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFile_GetLine(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    int arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Oi:PyFile_GetLine", &arg0, &arg1)) {
        return NULL;
    }

    result = PyFile_GetLine(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFile_WriteObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    int arg2;

    int result;

    if (!PyArg_ParseTuple(args, "OOi:PyFile_WriteObject", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyFile_WriteObject(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFile_WriteString(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "yO:PyFile_WriteString", &arg0, &arg1)) {
        return NULL;
    }

    result = PyFile_WriteString(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyFloat */

static PyObject* capi_PyFloat_AS_DOUBLE(PyObject* Py_UNUSED(self), PyObject* arg) {

    double result;

    result = PyFloat_AS_DOUBLE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyFloat_FromDouble(result);
}

static PyObject* capi_PyFloat_AsDouble(PyObject* Py_UNUSED(self), PyObject* arg) {

    double result;

    result = PyFloat_AsDouble(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyFloat_FromDouble(result);
}

static PyObject* capi_PyFloat_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyFloat_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFloat_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyFloat_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFloat_FromDouble(PyObject* Py_UNUSED(self), PyObject* args) {

    double arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "d:PyFloat_FromDouble", &arg0)) {
        return NULL;
    }

    result = PyFloat_FromDouble(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFloat_FromString(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFloat_FromString(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFloat_GetInfo(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyFloat_GetInfo();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyFrozenSet */

static PyObject* capi_PyFrozenSet_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyFrozenSet_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFrozenSet_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyFrozenSet_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFrozenSet_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFrozenSet_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyFunction */

static PyObject* capi_PyFunction_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyFunction_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFunction_GetAnnotations(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetAnnotations(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_GetClosure(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetClosure(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_GetCode(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetCode(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_GetDefaults(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetDefaults(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_GetGlobals(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetGlobals(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_GetModule(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyFunction_GetModule(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_New(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyFunction_New", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyFunction_New(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_NewWithQualName(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyFunction_NewWithQualName", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyFunction_NewWithQualName(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyFunction_SetAnnotations(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyFunction_SetAnnotations", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyFunction_SetAnnotations(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFunction_SetClosure(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyFunction_SetClosure", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyFunction_SetClosure(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyFunction_SetDefaults(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyFunction_SetDefaults", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyFunction_SetDefaults(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyGen */

static PyObject* capi_PyGen_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyGen_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyGen_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyGen_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyImport */

static PyObject* capi_PyImport_AddModule(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyImport_AddModule", &arg0)) {
        return NULL;
    }

    result = PyImport_AddModule(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_AddModuleObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyImport_AddModuleObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_Cleanup(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyImport_Cleanup();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyImport_ExecCodeModule(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yO:PyImport_ExecCodeModule", &arg0, &arg1)) {
        return NULL;
    }

    result = PyImport_ExecCodeModule(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ExecCodeModuleEx(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    char* arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOy:PyImport_ExecCodeModuleEx", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyImport_ExecCodeModuleEx(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ExecCodeModuleObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;
    PyObject* arg3;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyImport_ExecCodeModuleObject", 4, 4, &arg0, &arg1, &arg2, &arg3)) {
        return NULL;
    }

    result = PyImport_ExecCodeModuleObject(arg0, arg1, arg2, arg3);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ExecCodeModuleWithPathnames(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    char* arg2;
    char* arg3;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOyy:PyImport_ExecCodeModuleWithPathnames", &arg0, &arg1, &arg2, &arg3)) {
        return NULL;
    }

    result = PyImport_ExecCodeModuleWithPathnames(arg0, arg1, arg2, arg3);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_GetImporter(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyImport_GetImporter(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_GetMagicNumber(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    long int result;

    result = PyImport_GetMagicNumber();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

# if 0x030700F0 <= PY_VERSION_HEX

    static PyObject* capi_PyImport_GetModule(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyImport_GetModule(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyImport_GetModuleDict(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyImport_GetModuleDict();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_Import(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyImport_Import(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ImportFrozenModule(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    int result;

    if (!PyArg_ParseTuple(args, "y:PyImport_ImportFrozenModule", &arg0)) {
        return NULL;
    }

    result = PyImport_ImportFrozenModule(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyImport_ImportFrozenModuleObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyImport_ImportFrozenModuleObject(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyImport_ImportModule(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyImport_ImportModule", &arg0)) {
        return NULL;
    }

    result = PyImport_ImportModule(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ImportModuleEx(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    PyObject* arg2;
    PyObject* arg3;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOOO:PyImport_ImportModuleEx", &arg0, &arg1, &arg2, &arg3)) {
        return NULL;
    }

    result = PyImport_ImportModuleEx(arg0, arg1, arg2, arg3);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ImportModuleLevel(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    PyObject* arg1;
    PyObject* arg2;
    PyObject* arg3;
    int arg4;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yOOOi:PyImport_ImportModuleLevel", &arg0, &arg1, &arg2, &arg3, &arg4)) {
        return NULL;
    }

    result = PyImport_ImportModuleLevel(arg0, arg1, arg2, arg3, arg4);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ImportModuleLevelObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;
    PyObject* arg3;
    int arg4;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "OOOOi:PyImport_ImportModuleLevelObject", &arg0, &arg1, &arg2, &arg3, &arg4)) {
        return NULL;
    }

    result = PyImport_ImportModuleLevelObject(arg0, arg1, arg2, arg3, arg4);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ImportModuleNoBlock(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "y:PyImport_ImportModuleNoBlock", &arg0)) {
        return NULL;
    }

    result = PyImport_ImportModuleNoBlock(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyImport_ReloadModule(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyImport_ReloadModule(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyIndex */

static PyObject* capi_PyIndex_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyIndex_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyInstanceMethod */

static PyObject* capi_PyInstanceMethod_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyInstanceMethod_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyInstanceMethod_Function(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyInstanceMethod_Function(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyInstanceMethod_GET_FUNCTION(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyInstanceMethod_GET_FUNCTION(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyInstanceMethod_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyInstanceMethod_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyIter */

static PyObject* capi_PyIter_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyIter_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyIter_Next(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyIter_Next(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyList */

static PyObject* capi_PyList_Append(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyList_Append", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyList_Append(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_AsTuple(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyList_AsTuple(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyList_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyList_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyList_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_GET_ITEM(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "On:PyList_GET_ITEM", &arg0, &arg1)) {
        return NULL;
    }

    result = PyList_GET_ITEM(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyList_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyList_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyList_GetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "On:PyList_GetItem", &arg0, &arg1)) {
        return NULL;
    }

    result = PyList_GetItem(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyList_GetSlice(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    Py_ssize_t arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Onn:PyList_GetSlice", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyList_GetSlice(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyList_Insert(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_ParseTuple(args, "OnO:PyList_Insert", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyList_Insert(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_New(PyObject* Py_UNUSED(self), PyObject* args) {

    Py_ssize_t arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "n:PyList_New", &arg0)) {
        return NULL;
    }

    result = PyList_New(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyList_Reverse(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyList_Reverse(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_SET_ITEM(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    PyObject* arg2;

    if (!PyArg_ParseTuple(args, "OnO:PyList_SET_ITEM", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    PyList_SET_ITEM(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyList_SetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_ParseTuple(args, "OnO:PyList_SetItem", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyList_SetItem(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_SetSlice(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    Py_ssize_t arg2;
    PyObject* arg3;

    int result;

    if (!PyArg_ParseTuple(args, "OnnO:PyList_SetSlice", &arg0, &arg1, &arg2, &arg3)) {
        return NULL;
    }

    result = PyList_SetSlice(arg0, arg1, arg2, arg3);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyList_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyList_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyList_Sort(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyList_Sort(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyLong */

static PyObject* capi_PyLong_AsDouble(PyObject* Py_UNUSED(self), PyObject* arg) {

    double result;

    result = PyLong_AsDouble(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyFloat_FromDouble(result);
}

static PyObject* capi_PyLong_AsLong(PyObject* Py_UNUSED(self), PyObject* arg) {

    long int result;

    result = PyLong_AsLong(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyLong_AsLongLong(PyObject* Py_UNUSED(self), PyObject* arg) {

    long long int result;

    result = PyLong_AsLongLong(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLongLong(result);
}

static PyObject* capi_PyLong_AsSsize_t(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyLong_AsSsize_t(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyLong_AsUnsignedLong(PyObject* Py_UNUSED(self), PyObject* arg) {

    unsigned long int result;

    result = PyLong_AsUnsignedLong(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromUnsignedLong(result);
}

static PyObject* capi_PyLong_AsUnsignedLongLong(PyObject* Py_UNUSED(self), PyObject* arg) {

    unsigned long long int result;

    result = PyLong_AsUnsignedLongLong(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromUnsignedLongLong(result);
}

static PyObject* capi_PyLong_AsUnsignedLongLongMask(PyObject* Py_UNUSED(self), PyObject* arg) {

    unsigned long long int result;

    result = PyLong_AsUnsignedLongLongMask(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromUnsignedLongLong(result);
}

static PyObject* capi_PyLong_AsUnsignedLongMask(PyObject* Py_UNUSED(self), PyObject* arg) {

    unsigned long int result;

    result = PyLong_AsUnsignedLongMask(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromUnsignedLong(result);
}

static PyObject* capi_PyLong_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyLong_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyLong_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyLong_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyLong_FromLong(PyObject* Py_UNUSED(self), PyObject* args) {

    long arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "l:PyLong_FromLong", &arg0)) {
        return NULL;
    }

    result = PyLong_FromLong(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyMapping */

static PyObject* capi_PyMapping_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyMapping_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_DelItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyMapping_DelItem", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyMapping_DelItem(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_DelItemString(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "Oy:PyMapping_DelItemString", &arg0, &arg1)) {
        return NULL;
    }

    result = PyMapping_DelItemString(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_GetItemString(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Oy:PyMapping_GetItemString", &arg0, &arg1)) {
        return NULL;
    }

    result = PyMapping_GetItemString(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMapping_HasKey(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyMapping_HasKey", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyMapping_HasKey(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_HasKeyString(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;

    int result;

    if (!PyArg_ParseTuple(args, "Oy:PyMapping_HasKeyString", &arg0, &arg1)) {
        return NULL;
    }

    result = PyMapping_HasKeyString(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_Items(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMapping_Items(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMapping_Keys(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMapping_Keys(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMapping_Length(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyMapping_Length(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyMapping_SetItemString(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    char* arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_ParseTuple(args, "OyO:PyMapping_SetItemString", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyMapping_SetItemString(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMapping_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyMapping_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyMapping_Values(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMapping_Values(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyMemoryView */

static PyObject* capi_PyMemoryView_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyMemoryView_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMemoryView_FromObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMemoryView_FromObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyMethod */

static PyObject* capi_PyMethod_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyMethod_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyMethod_Function(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMethod_Function(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMethod_GET_FUNCTION(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMethod_GET_FUNCTION(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMethod_GET_SELF(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMethod_GET_SELF(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMethod_New(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyMethod_New", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyMethod_New(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyMethod_Self(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyMethod_Self(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyModule */

static PyObject* capi_PyModule_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyModule_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyModule_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyModule_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyModule_GetDict(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyModule_GetDict(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyModule_GetFilename(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyModule_GetFilename(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyModule_GetFilenameObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyModule_GetFilenameObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyModule_GetName(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyModule_GetName(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyModule_GetNameObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyModule_GetNameObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyModule_NewObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyModule_NewObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyNumber */

static PyObject* capi_PyNumber_Absolute(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Absolute(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Add(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Add", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Add(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_And(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_And", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_And(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_AsSsize_t(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    Py_ssize_t result;

    if (!PyArg_UnpackTuple(args, "PyNumber_AsSsize_t", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_AsSsize_t(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyNumber_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyNumber_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyNumber_Divmod(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Divmod", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Divmod(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Float(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Float(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_FloorDivide(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_FloorDivide", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_FloorDivide(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceAdd(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceAdd", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceAdd(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceAnd(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceAnd", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceAnd(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceFloorDivide(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceFloorDivide", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceFloorDivide(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceLshift(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceLshift", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceLshift(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if 0x030500F0 <= PY_VERSION_HEX

    static PyObject* capi_PyNumber_InPlaceMatrixMultiply(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;

        PyObject* result;

        if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceMatrixMultiply", 2, 2, &arg0, &arg1)) {
            return NULL;
        }

        result = PyNumber_InPlaceMatrixMultiply(arg0, arg1);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyNumber_InPlaceMultiply(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceMultiply", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceMultiply(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceOr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceOr", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceOr(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlacePower(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlacePower", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyNumber_InPlacePower(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceRemainder(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceRemainder", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceRemainder(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceRshift(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceRshift", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceRshift(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceSubtract(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceSubtract", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceSubtract(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceTrueDivide(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceTrueDivide", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceTrueDivide(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_InPlaceXor(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_InPlaceXor", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_InPlaceXor(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Index(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Index(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Invert(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Invert(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Long(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Long(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Lshift(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Lshift", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Lshift(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if 0x030500F0 <= PY_VERSION_HEX

    static PyObject* capi_PyNumber_MatrixMultiply(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;

        PyObject* result;

        if (!PyArg_UnpackTuple(args, "PyNumber_MatrixMultiply", 2, 2, &arg0, &arg1)) {
            return NULL;
        }

        result = PyNumber_MatrixMultiply(arg0, arg1);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyNumber_Multiply(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Multiply", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Multiply(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Negative(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Negative(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Or(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Or", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Or(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Positive(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyNumber_Positive(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Power(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Power", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyNumber_Power(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Remainder(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Remainder", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Remainder(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Rshift(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Rshift", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Rshift(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Subtract(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Subtract", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Subtract(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_ToBase(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    int arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Oi:PyNumber_ToBase", &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_ToBase(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_TrueDivide(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_TrueDivide", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_TrueDivide(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyNumber_Xor(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyNumber_Xor", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyNumber_Xor(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyOS */

static PyObject* capi_PyOS_AfterFork(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyOS_AfterFork();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

# if 0x030700F0 <= PY_VERSION_HEX

    static PyObject* capi_PyOS_AfterFork_Child(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        PyOS_AfterFork_Child();

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    static PyObject* capi_PyOS_AfterFork_Parent(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        PyOS_AfterFork_Parent();

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    static PyObject* capi_PyOS_BeforeFork(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

        PyOS_BeforeFork();

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

# endif

# if 0x030600F0 <= PY_VERSION_HEX

    static PyObject* capi_PyOS_FSPath(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyOS_FSPath(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

/* PyObject */

static PyObject* capi_PyObject_ASCII(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_ASCII(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_AsFileDescriptor(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyObject_AsFileDescriptor(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Bytes(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_Bytes(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_Call(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyObject_Call", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyObject_Call(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_CallObject(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyObject_CallObject", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_CallObject(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_CheckBuffer(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyObject_CheckBuffer(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_CheckReadBuffer(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyObject_CheckReadBuffer(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_DelAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_DelAttr", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_DelAttr(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_DelItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_DelItem", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_DelItem(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Dir(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_Dir(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_GC_Track(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject_GC_Track(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyObject_GenericGetAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyObject_GenericGetAttr", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_GenericGetAttr(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_GenericSetAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_GenericSetAttr", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyObject_GenericSetAttr(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_GetAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyObject_GetAttr", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_GetAttr(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_GetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyObject_GetItem", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_GetItem(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_GetIter(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_GetIter(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_HasAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_HasAttr", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_HasAttr(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Hash(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyObject_Hash(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyObject_IsInstance(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_IsInstance", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_IsInstance(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_IsSubclass(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_IsSubclass", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyObject_IsSubclass(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_IsTrue(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyObject_IsTrue(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Length(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyObject_Length(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyObject_Not(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyObject_Not(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Repr(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_Repr(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_SetAttr(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_SetAttr", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyObject_SetAttr(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_SetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_UnpackTuple(args, "PyObject_SetItem", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyObject_SetItem(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyObject_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyObject_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyObject_Str(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_Str(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyObject_Type(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyObject_Type(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PySeqIter */

static PyObject* capi_PySeqIter_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PySeqIter_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySeqIter_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PySeqIter_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PySequence */

static PyObject* capi_PySequence_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PySequence_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySequence_Concat(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PySequence_Concat", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_Concat(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySequence_Contains(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PySequence_Contains", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_Contains(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySequence_Count(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    Py_ssize_t result;

    if (!PyArg_UnpackTuple(args, "PySequence_Count", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_Count(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PySequence_Fast_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PySequence_Fast_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PySequence_In(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PySequence_In", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_In(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySequence_InPlaceConcat(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PySequence_InPlaceConcat", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_InPlaceConcat(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySequence_Index(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    Py_ssize_t result;

    if (!PyArg_UnpackTuple(args, "PySequence_Index", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySequence_Index(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PySequence_List(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PySequence_List(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySequence_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PySequence_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PySequence_Tuple(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PySequence_Tuple(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PySet */

static PyObject* capi_PySet_Add(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PySet_Add", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySet_Add(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySet_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PySet_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySet_Clear(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PySet_Clear(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySet_Contains(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PySet_Contains", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySet_Contains(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySet_Discard(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PySet_Discard", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PySet_Discard(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySet_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PySet_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PySet_New(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PySet_New(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySet_Pop(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PySet_Pop(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySet_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PySet_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

/* PySignal */

static PyObject* capi_PySignal_SetWakeupFd(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;

    int result;

    if (!PyArg_ParseTuple(args, "i:PySignal_SetWakeupFd", &arg0)) {
        return NULL;
    }

    result = PySignal_SetWakeupFd(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PySlice */

static PyObject* capi_PySlice_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PySlice_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PySlice_New(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;
    PyObject* arg2;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PySlice_New", 3, 3, &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PySlice_New(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PySys */

static PyObject* capi_PySys_AddWarnOptionUnicode(PyObject* Py_UNUSED(self), PyObject* arg) {

    PySys_AddWarnOptionUnicode(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PySys_GetXOptions(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PySys_GetXOptions();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PySys_ResetWarnOptions(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PySys_ResetWarnOptions();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

/* PyThreadState */

static PyObject* capi_PyThreadState_GetDict(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    PyObject* result;

    result = PyThreadState_GetDict();

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if 0x030700F0 <= PY_VERSION_HEX

    /* PyTimeZone */

    static PyObject* capi_PyTimeZone_FromOffset(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyTimeZone_FromOffset(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

    static PyObject* capi_PyTimeZone_FromOffsetAndName(PyObject* Py_UNUSED(self), PyObject* args) {

        PyObject* arg0;
        PyObject* arg1;

        PyObject* result;

        if (!PyArg_UnpackTuple(args, "PyTimeZone_FromOffsetAndName", 2, 2, &arg0, &arg1)) {
            return NULL;
        }

        result = PyTimeZone_FromOffsetAndName(arg0, arg1);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

/* PyTime */

static PyObject* capi_PyTime_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyTime_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyTime_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyTime_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyTime_FromTime(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;
    int arg1;
    int arg2;
    int arg3;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "iiii:PyTime_FromTime", &arg0, &arg1, &arg2, &arg3)) {
        return NULL;
    }

    result = PyTime_FromTime(arg0, arg1, arg2, arg3);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyTuple */

static PyObject* capi_PyTuple_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyTuple_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyTuple_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyTuple_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyTuple_GET_ITEM(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "On:PyTuple_GET_ITEM", &arg0, &arg1)) {
        return NULL;
    }

    result = PyTuple_GET_ITEM(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyTuple_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyTuple_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyTuple_GetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "On:PyTuple_GetItem", &arg0, &arg1)) {
        return NULL;
    }

    result = PyTuple_GetItem(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyTuple_GetSlice(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    Py_ssize_t arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "Onn:PyTuple_GetSlice", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyTuple_GetSlice(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyTuple_New(PyObject* Py_UNUSED(self), PyObject* args) {

    Py_ssize_t arg0;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "n:PyTuple_New", &arg0)) {
        return NULL;
    }

    result = PyTuple_New(arg0);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyTuple_SET_ITEM(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    PyObject* arg2;

    if (!PyArg_ParseTuple(args, "OnO:PyTuple_SET_ITEM", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    PyTuple_SET_ITEM(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_PyTuple_SetItem(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    Py_ssize_t arg1;
    PyObject* arg2;

    int result;

    if (!PyArg_ParseTuple(args, "OnO:PyTuple_SetItem", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = PyTuple_SetItem(arg0, arg1, arg2);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyTuple_Size(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyTuple_Size(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

/* PyType */

static PyObject* capi_PyType_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyType_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyType_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyType_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyUnicodeDecodeError */

static PyObject* capi_PyUnicodeDecodeError_GetEncoding(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicodeDecodeError_GetEncoding(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicodeDecodeError_GetObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicodeDecodeError_GetObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicodeDecodeError_GetReason(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicodeDecodeError_GetReason(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyUnicode */

static PyObject* capi_PyUnicode_AS_DATA(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyUnicode_AS_DATA(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyUnicode_AS_UNICODE(PyObject* Py_UNUSED(self), PyObject* arg) {

    const wchar_t* result;

    result = PyUnicode_AS_UNICODE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_PyUnicode_AsASCIIString(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsASCIIString(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsCharmapString(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_AsCharmapString", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_AsCharmapString(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsLatin1String(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsLatin1String(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

# if MS_WINDOWS

    static PyObject* capi_PyUnicode_AsMBCSString(PyObject* Py_UNUSED(self), PyObject* arg) {

        PyObject* result;

        result = PyUnicode_AsMBCSString(arg);

        if (!result) {

            if (PyErr_Occurred()) {
                return NULL;
            }

            Py_RETURN_NONE;
        }

        return result;
    }

# endif

static PyObject* capi_PyUnicode_AsRawUnicodeEscapeString(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsRawUnicodeEscapeString(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsUTF16String(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsUTF16String(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsUTF32String(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsUTF32String(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsUTF8(PyObject* Py_UNUSED(self), PyObject* arg) {

    const char* result;

    result = PyUnicode_AsUTF8(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_PyUnicode_AsUTF8String(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsUTF8String(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_AsUnicode(PyObject* Py_UNUSED(self), PyObject* arg) {

    const wchar_t* result;

    result = PyUnicode_AsUnicode(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_PyUnicode_AsUnicodeCopy(PyObject* Py_UNUSED(self), PyObject* arg) {

    const wchar_t* result;

    result = PyUnicode_AsUnicodeCopy(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_PyUnicode_AsUnicodeEscapeString(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_AsUnicodeEscapeString(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyUnicode_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyUnicode_CheckExact(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyUnicode_CheckExact(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyUnicode_Compare(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_Compare", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_Compare(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyUnicode_Concat(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_Concat", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_Concat(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_Contains(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    int result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_Contains", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_Contains(arg0, arg1);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyUnicode_EncodeFSDefault(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_EncodeFSDefault(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_Format(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_Format", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_Format(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_FromObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyUnicode_FromObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_GET_DATA_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyUnicode_GET_DATA_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyUnicode_GET_LENGTH(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyUnicode_GET_LENGTH(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyUnicode_GET_SIZE(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyUnicode_GET_SIZE(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyUnicode_GetLength(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyUnicode_GetLength(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyUnicode_GetSize(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ssize_t result;

    result = PyUnicode_GetSize(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromSsize_t(result);
}

static PyObject* capi_PyUnicode_Join(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyUnicode_Join", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyUnicode_Join(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyUnicode_KIND(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyUnicode_KIND(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyUnicode_READY(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyUnicode_READY(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

/* PyWeakref */

static PyObject* capi_PyWeakref_Check(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyWeakref_Check(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyWeakref_CheckProxy(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyWeakref_CheckProxy(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyWeakref_CheckRef(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = PyWeakref_CheckRef(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_PyWeakref_GET_OBJECT(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyWeakref_GET_OBJECT(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyWeakref_GetObject(PyObject* Py_UNUSED(self), PyObject* arg) {

    PyObject* result;

    result = PyWeakref_GetObject(arg);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyWeakref_NewProxy(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyWeakref_NewProxy", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyWeakref_NewProxy(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_PyWeakref_NewRef(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyWeakref_NewRef", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyWeakref_NewRef(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* PyWrapper */

static PyObject* capi_PyWrapper_New(PyObject* Py_UNUSED(self), PyObject* args) {

    PyObject* arg0;
    PyObject* arg1;

    PyObject* result;

    if (!PyArg_UnpackTuple(args, "PyWrapper_New", 2, 2, &arg0, &arg1)) {
        return NULL;
    }

    result = PyWrapper_New(arg0, arg1);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

/* Py */

static PyObject* capi_Py_CLEAR(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_CLEAR(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_CompileString(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;
    char* arg1;
    int arg2;

    PyObject* result;

    if (!PyArg_ParseTuple(args, "yyi:Py_CompileString", &arg0, &arg1, &arg2)) {
        return NULL;
    }

    result = Py_CompileString(arg0, arg1, arg2);

    if (!result) {

        if (PyErr_Occurred()) {
            return NULL;
        }

        Py_RETURN_NONE;
    }

    return result;
}

static PyObject* capi_Py_DECREF(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_DECREF(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_Exit(PyObject* Py_UNUSED(self), PyObject* args) {

    int arg0;

    if (!PyArg_ParseTuple(args, "i:Py_Exit", &arg0)) {
        return NULL;
    }

    Py_Exit(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_FatalError(PyObject* Py_UNUSED(self), PyObject* args) {

    char* arg0;

    if (!PyArg_ParseTuple(args, "y:Py_FatalError", &arg0)) {
        return NULL;
    }

    Py_FatalError(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_Finalize(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    Py_Finalize();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_GetBuildInfo(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const char* result;

    result = Py_GetBuildInfo();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_Py_GetCompiler(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const char* result;

    result = Py_GetCompiler();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_Py_GetCopyright(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const char* result;

    result = Py_GetCopyright();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_Py_GetExecPrefix(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const wchar_t* result;

    result = Py_GetExecPrefix();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_Py_GetPath(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const wchar_t* result;

    result = Py_GetPath();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_Py_GetPlatform(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const char* result;

    result = Py_GetPlatform();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_Py_GetPrefix(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const wchar_t* result;

    result = Py_GetPrefix();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_Py_GetProgramFullPath(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const wchar_t* result;

    result = Py_GetProgramFullPath();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_Py_GetProgramName(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const wchar_t* result;

    result = Py_GetProgramName();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyUnicode_FromWideChar(result, -1);
}

static PyObject* capi_Py_GetVersion(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    const char* result;

    result = Py_GetVersion();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyBytes_FromString(result);
}

static PyObject* capi_Py_INCREF(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_INCREF(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_Initialize(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    Py_Initialize();

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_IsInitialized(PyObject* Py_UNUSED(self), PyObject* Py_UNUSED(null)) {

    int result;

    result = Py_IsInitialized();

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_Py_ReprEnter(PyObject* Py_UNUSED(self), PyObject* arg) {

    int result;

    result = Py_ReprEnter(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    return PyLong_FromLong(result);
}

static PyObject* capi_Py_ReprLeave(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_ReprLeave(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_SetProgramName(PyObject* Py_UNUSED(self), PyObject* args) {

    wchar_t* arg0;

    if (!PyArg_ParseTuple(args, "u:Py_SetProgramName", &arg0)) {
        return NULL;
    }

    Py_SetProgramName(arg0);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_XDECREF(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_XDECREF(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}

static PyObject* capi_Py_XINCREF(PyObject* Py_UNUSED(self), PyObject* arg) {

    Py_XINCREF(arg);

    if (PyErr_Occurred()) {
        return NULL;
    }

    Py_RETURN_NONE;
}


/* Module bindings: */


static PyMethodDef CAPIMethods[] =  {

    /* PyAnySet */

    {"PyAnySet_Check", capi_PyAnySet_Check, METH_O, NULL},
    {"PyAnySet_CheckExact", capi_PyAnySet_CheckExact, METH_O, NULL},

    /* PyBool */

    {"PyBool_Check", capi_PyBool_Check, METH_O, NULL},
    {"PyBool_FromLong", capi_PyBool_FromLong, METH_VARARGS, NULL},

    /* PyByteArray */

    {"PyByteArray_AS_STRING", capi_PyByteArray_AS_STRING, METH_O, NULL},
    {"PyByteArray_AsString", capi_PyByteArray_AsString, METH_O, NULL},
    {"PyByteArray_Check", capi_PyByteArray_Check, METH_O, NULL},
    {"PyByteArray_CheckExact", capi_PyByteArray_CheckExact, METH_O, NULL},
    {"PyByteArray_Concat", capi_PyByteArray_Concat, METH_VARARGS, NULL},
    {"PyByteArray_FromObject", capi_PyByteArray_FromObject, METH_O, NULL},
    {"PyByteArray_FromStringAndSize", capi_PyByteArray_FromStringAndSize, METH_VARARGS, NULL},
    {"PyByteArray_GET_SIZE", capi_PyByteArray_GET_SIZE, METH_O, NULL},
    {"PyByteArray_Resize", capi_PyByteArray_Resize, METH_VARARGS, NULL},
    {"PyByteArray_Size", capi_PyByteArray_Size, METH_O, NULL},

    /* PyBytes */

    {"PyBytes_AS_STRING", capi_PyBytes_AS_STRING, METH_O, NULL},
    {"PyBytes_AsString", capi_PyBytes_AsString, METH_O, NULL},
    {"PyBytes_Check", capi_PyBytes_Check, METH_O, NULL},
    {"PyBytes_CheckExact", capi_PyBytes_CheckExact, METH_O, NULL},
    {"PyBytes_FromObject", capi_PyBytes_FromObject, METH_O, NULL},
    {"PyBytes_FromString", capi_PyBytes_FromString, METH_VARARGS, NULL},
    {"PyBytes_FromStringAndSize", capi_PyBytes_FromStringAndSize, METH_VARARGS, NULL},
    {"PyBytes_GET_SIZE", capi_PyBytes_GET_SIZE, METH_O, NULL},
    {"PyBytes_Size", capi_PyBytes_Size, METH_O, NULL},

    /* PyCallIter */

    {"PyCallIter_Check", capi_PyCallIter_Check, METH_O, NULL},
    {"PyCallIter_New", capi_PyCallIter_New, METH_VARARGS, NULL},

    /* PyCallable */

    {"PyCallable_Check", capi_PyCallable_Check, METH_O, NULL},

    /* PyCapsule */

    {"PyCapsule_CheckExact", capi_PyCapsule_CheckExact, METH_O, NULL},
    {"PyCapsule_GetName", capi_PyCapsule_GetName, METH_O, NULL},
    {"PyCapsule_IsValid", capi_PyCapsule_IsValid, METH_VARARGS, NULL},
    {"PyCapsule_SetName", capi_PyCapsule_SetName, METH_VARARGS, NULL},

    /* PyCell */

    {"PyCell_Check", capi_PyCell_Check, METH_O, NULL},
    {"PyCell_GET", capi_PyCell_GET, METH_O, NULL},
    {"PyCell_Get", capi_PyCell_Get, METH_O, NULL},
    {"PyCell_New", capi_PyCell_New, METH_O, NULL},
    {"PyCell_SET", capi_PyCell_SET, METH_VARARGS, NULL},
    {"PyCell_Set", capi_PyCell_Set, METH_VARARGS, NULL},

    /* PyCode */

    {"PyCode_Check", capi_PyCode_Check, METH_O, NULL},

    /* PyCodec */

    {"PyCodec_BackslashReplaceErrors", capi_PyCodec_BackslashReplaceErrors, METH_O, NULL},
    {"PyCodec_Decode", capi_PyCodec_Decode, METH_VARARGS, NULL},
    {"PyCodec_Decoder", capi_PyCodec_Decoder, METH_VARARGS, NULL},
    {"PyCodec_Encode", capi_PyCodec_Encode, METH_VARARGS, NULL},
    {"PyCodec_Encoder", capi_PyCodec_Encoder, METH_VARARGS, NULL},
    {"PyCodec_IgnoreErrors", capi_PyCodec_IgnoreErrors, METH_O, NULL},
    {"PyCodec_IncrementalDecoder", capi_PyCodec_IncrementalDecoder, METH_VARARGS, NULL},
    {"PyCodec_IncrementalEncoder", capi_PyCodec_IncrementalEncoder, METH_VARARGS, NULL},
    {"PyCodec_KnownEncoding", capi_PyCodec_KnownEncoding, METH_VARARGS, NULL},
    {"PyCodec_LookupError", capi_PyCodec_LookupError, METH_VARARGS, NULL},

    # if 0x030500F0 <= PY_VERSION_HEX

        {"PyCodec_NameReplaceErrors", capi_PyCodec_NameReplaceErrors, METH_O, NULL},

    # endif

    {"PyCodec_Register", capi_PyCodec_Register, METH_O, NULL},
    {"PyCodec_RegisterError", capi_PyCodec_RegisterError, METH_VARARGS, NULL},
    {"PyCodec_ReplaceErrors", capi_PyCodec_ReplaceErrors, METH_O, NULL},
    {"PyCodec_StreamReader", capi_PyCodec_StreamReader, METH_VARARGS, NULL},
    {"PyCodec_StreamWriter", capi_PyCodec_StreamWriter, METH_VARARGS, NULL},
    {"PyCodec_StrictErrors", capi_PyCodec_StrictErrors, METH_O, NULL},
    {"PyCodec_XMLCharRefReplaceErrors", capi_PyCodec_XMLCharRefReplaceErrors, METH_O, NULL},

    /* PyComplex */

    {"PyComplex_AsCComplex", capi_PyComplex_AsCComplex, METH_O, NULL},
    {"PyComplex_Check", capi_PyComplex_Check, METH_O, NULL},
    {"PyComplex_CheckExact", capi_PyComplex_CheckExact, METH_O, NULL},
    {"PyComplex_FromCComplex", capi_PyComplex_FromCComplex, METH_VARARGS, NULL},
    {"PyComplex_FromDoubles", capi_PyComplex_FromDoubles, METH_VARARGS, NULL},
    {"PyComplex_ImagAsDouble", capi_PyComplex_ImagAsDouble, METH_O, NULL},
    {"PyComplex_RealAsDouble", capi_PyComplex_RealAsDouble, METH_O, NULL},

    # if 0x030700F0 <= PY_VERSION_HEX

        /* PyContextToken */

        {"PyContextToken_CheckExact", capi_PyContextToken_CheckExact, METH_O, NULL},

        /* PyContextVar */

        {"PyContextVar_CheckExact", capi_PyContextVar_CheckExact, METH_O, NULL},
        {"PyContextVar_New", capi_PyContextVar_New, METH_VARARGS, NULL},
        {"PyContextVar_Reset", capi_PyContextVar_Reset, METH_VARARGS, NULL},
        {"PyContextVar_Set", capi_PyContextVar_Set, METH_VARARGS, NULL},

        /* PyContext */

        {"PyContext_CheckExact", capi_PyContext_CheckExact, METH_O, NULL},
        {"PyContext_ClearFreeList", capi_PyContext_ClearFreeList, METH_NOARGS, NULL},
        {"PyContext_Copy", capi_PyContext_Copy, METH_O, NULL},
        {"PyContext_CopyCurrent", capi_PyContext_CopyCurrent, METH_NOARGS, NULL},
        {"PyContext_Enter", capi_PyContext_Enter, METH_O, NULL},
        {"PyContext_Exit", capi_PyContext_Exit, METH_O, NULL},
        {"PyContext_New", capi_PyContext_New, METH_NOARGS, NULL},

    # endif

    /* PyCoro */

    {"PyCoro_CheckExact", capi_PyCoro_CheckExact, METH_O, NULL},

    /* PyDateTime */

    {"PyDateTime_Check", capi_PyDateTime_Check, METH_O, NULL},
    {"PyDateTime_CheckExact", capi_PyDateTime_CheckExact, METH_O, NULL},
    {"PyDateTime_FromDateAndTime", capi_PyDateTime_FromDateAndTime, METH_VARARGS, NULL},
    {"PyDateTime_FromTimestamp", capi_PyDateTime_FromTimestamp, METH_O, NULL},

    /* PyDate */

    {"PyDate_Check", capi_PyDate_Check, METH_O, NULL},
    {"PyDate_CheckExact", capi_PyDate_CheckExact, METH_O, NULL},
    {"PyDate_FromDate", capi_PyDate_FromDate, METH_VARARGS, NULL},
    {"PyDate_FromTimestamp", capi_PyDate_FromTimestamp, METH_O, NULL},

    /* PyDelta */

    {"PyDelta_Check", capi_PyDelta_Check, METH_O, NULL},
    {"PyDelta_CheckExact", capi_PyDelta_CheckExact, METH_O, NULL},
    {"PyDelta_FromDSU", capi_PyDelta_FromDSU, METH_VARARGS, NULL},

    /* PyDescr */

    {"PyDescr_IsData", capi_PyDescr_IsData, METH_O, NULL},

    /* PyDictProxy */

    {"PyDictProxy_New", capi_PyDictProxy_New, METH_O, NULL},

    /* PyDict */

    {"PyDict_Check", capi_PyDict_Check, METH_O, NULL},
    {"PyDict_CheckExact", capi_PyDict_CheckExact, METH_O, NULL},
    {"PyDict_Clear", capi_PyDict_Clear, METH_O, NULL},
    {"PyDict_Contains", capi_PyDict_Contains, METH_VARARGS, NULL},
    {"PyDict_Copy", capi_PyDict_Copy, METH_O, NULL},
    {"PyDict_DelItem", capi_PyDict_DelItem, METH_VARARGS, NULL},
    {"PyDict_GetItem", capi_PyDict_GetItem, METH_VARARGS, NULL},
    {"PyDict_GetItemWithError", capi_PyDict_GetItemWithError, METH_VARARGS, NULL},
    {"PyDict_Items", capi_PyDict_Items, METH_O, NULL},
    {"PyDict_Keys", capi_PyDict_Keys, METH_O, NULL},
    {"PyDict_New", capi_PyDict_New, METH_NOARGS, NULL},
    {"PyDict_SetDefault", capi_PyDict_SetDefault, METH_VARARGS, NULL},
    {"PyDict_SetItem", capi_PyDict_SetItem, METH_VARARGS, NULL},
    {"PyDict_Size", capi_PyDict_Size, METH_O, NULL},
    {"PyDict_Update", capi_PyDict_Update, METH_VARARGS, NULL},
    {"PyDict_Values", capi_PyDict_Values, METH_O, NULL},

    /* PyErr */

    {"PyErr_BadArgument", capi_PyErr_BadArgument, METH_NOARGS, NULL},
    {"PyErr_BadInternalCall", capi_PyErr_BadInternalCall, METH_NOARGS, NULL},
    {"PyErr_CheckSignals", capi_PyErr_CheckSignals, METH_NOARGS, NULL},
    {"PyErr_Clear", capi_PyErr_Clear, METH_NOARGS, NULL},
    {"PyErr_ExceptionMatches", capi_PyErr_ExceptionMatches, METH_O, NULL},
    {"PyErr_GivenExceptionMatches", capi_PyErr_GivenExceptionMatches, METH_VARARGS, NULL},
    {"PyErr_NoMemory", capi_PyErr_NoMemory, METH_NOARGS, NULL},
    {"PyErr_Occurred", capi_PyErr_Occurred, METH_NOARGS, NULL},
    {"PyErr_Print", capi_PyErr_Print, METH_NOARGS, NULL},
    {"PyErr_Restore", capi_PyErr_Restore, METH_VARARGS, NULL},
    {"PyErr_SetExcInfo", capi_PyErr_SetExcInfo, METH_VARARGS, NULL},
    {"PyErr_SetFromErrno", capi_PyErr_SetFromErrno, METH_O, NULL},
    {"PyErr_SetFromErrnoWithFilenameObject", capi_PyErr_SetFromErrnoWithFilenameObject, METH_VARARGS, NULL},
    {"PyErr_SetFromErrnoWithFilenameObjects", capi_PyErr_SetFromErrnoWithFilenameObjects, METH_VARARGS, NULL},
    {"PyErr_SetImportError", capi_PyErr_SetImportError, METH_VARARGS, NULL},

    # if 0x030600F0 <= PY_VERSION_HEX

        {"PyErr_SetImportErrorSubclass", capi_PyErr_SetImportErrorSubclass, METH_VARARGS, NULL},

    # endif

    {"PyErr_SetInterrupt", capi_PyErr_SetInterrupt, METH_NOARGS, NULL},
    {"PyErr_SetNone", capi_PyErr_SetNone, METH_O, NULL},
    {"PyErr_SetObject", capi_PyErr_SetObject, METH_VARARGS, NULL},
    {"PyErr_WriteUnraisable", capi_PyErr_WriteUnraisable, METH_O, NULL},

    /* PyEval */

    {"PyEval_AcquireLock", capi_PyEval_AcquireLock, METH_NOARGS, NULL},
    {"PyEval_EvalCode", capi_PyEval_EvalCode, METH_VARARGS, NULL},
    {"PyEval_GetBuiltins", capi_PyEval_GetBuiltins, METH_NOARGS, NULL},
    {"PyEval_GetFuncDesc", capi_PyEval_GetFuncDesc, METH_O, NULL},
    {"PyEval_GetFuncName", capi_PyEval_GetFuncName, METH_O, NULL},
    {"PyEval_GetGlobals", capi_PyEval_GetGlobals, METH_NOARGS, NULL},
    {"PyEval_GetLocals", capi_PyEval_GetLocals, METH_NOARGS, NULL},
    {"PyEval_InitThreads", capi_PyEval_InitThreads, METH_NOARGS, NULL},
    {"PyEval_ReleaseLock", capi_PyEval_ReleaseLock, METH_NOARGS, NULL},

    /* PyException */

    {"PyException_GetCause", capi_PyException_GetCause, METH_O, NULL},
    {"PyException_GetContext", capi_PyException_GetContext, METH_O, NULL},
    {"PyException_GetTraceback", capi_PyException_GetTraceback, METH_O, NULL},
    {"PyException_SetCause", capi_PyException_SetCause, METH_VARARGS, NULL},
    {"PyException_SetContext", capi_PyException_SetContext, METH_VARARGS, NULL},
    {"PyException_SetTraceback", capi_PyException_SetTraceback, METH_VARARGS, NULL},

    /* PyFile */

    {"PyFile_FromFd", capi_PyFile_FromFd, METH_VARARGS, NULL},
    {"PyFile_GetLine", capi_PyFile_GetLine, METH_VARARGS, NULL},
    {"PyFile_WriteObject", capi_PyFile_WriteObject, METH_VARARGS, NULL},
    {"PyFile_WriteString", capi_PyFile_WriteString, METH_VARARGS, NULL},

    /* PyFloat */

    {"PyFloat_AS_DOUBLE", capi_PyFloat_AS_DOUBLE, METH_O, NULL},
    {"PyFloat_AsDouble", capi_PyFloat_AsDouble, METH_O, NULL},
    {"PyFloat_Check", capi_PyFloat_Check, METH_O, NULL},
    {"PyFloat_CheckExact", capi_PyFloat_CheckExact, METH_O, NULL},
    {"PyFloat_FromDouble", capi_PyFloat_FromDouble, METH_VARARGS, NULL},
    {"PyFloat_FromString", capi_PyFloat_FromString, METH_O, NULL},
    {"PyFloat_GetInfo", capi_PyFloat_GetInfo, METH_NOARGS, NULL},

    /* PyFrozenSet */

    {"PyFrozenSet_Check", capi_PyFrozenSet_Check, METH_O, NULL},
    {"PyFrozenSet_CheckExact", capi_PyFrozenSet_CheckExact, METH_O, NULL},
    {"PyFrozenSet_New", capi_PyFrozenSet_New, METH_O, NULL},

    /* PyFunction */

    {"PyFunction_Check", capi_PyFunction_Check, METH_O, NULL},
    {"PyFunction_GetAnnotations", capi_PyFunction_GetAnnotations, METH_O, NULL},
    {"PyFunction_GetClosure", capi_PyFunction_GetClosure, METH_O, NULL},
    {"PyFunction_GetCode", capi_PyFunction_GetCode, METH_O, NULL},
    {"PyFunction_GetDefaults", capi_PyFunction_GetDefaults, METH_O, NULL},
    {"PyFunction_GetGlobals", capi_PyFunction_GetGlobals, METH_O, NULL},
    {"PyFunction_GetModule", capi_PyFunction_GetModule, METH_O, NULL},
    {"PyFunction_New", capi_PyFunction_New, METH_VARARGS, NULL},
    {"PyFunction_NewWithQualName", capi_PyFunction_NewWithQualName, METH_VARARGS, NULL},
    {"PyFunction_SetAnnotations", capi_PyFunction_SetAnnotations, METH_VARARGS, NULL},
    {"PyFunction_SetClosure", capi_PyFunction_SetClosure, METH_VARARGS, NULL},
    {"PyFunction_SetDefaults", capi_PyFunction_SetDefaults, METH_VARARGS, NULL},

    /* PyGen */

    {"PyGen_Check", capi_PyGen_Check, METH_O, NULL},
    {"PyGen_CheckExact", capi_PyGen_CheckExact, METH_O, NULL},

    /* PyImport */

    {"PyImport_AddModule", capi_PyImport_AddModule, METH_VARARGS, NULL},
    {"PyImport_AddModuleObject", capi_PyImport_AddModuleObject, METH_O, NULL},
    {"PyImport_Cleanup", capi_PyImport_Cleanup, METH_NOARGS, NULL},
    {"PyImport_ExecCodeModule", capi_PyImport_ExecCodeModule, METH_VARARGS, NULL},
    {"PyImport_ExecCodeModuleEx", capi_PyImport_ExecCodeModuleEx, METH_VARARGS, NULL},
    {"PyImport_ExecCodeModuleObject", capi_PyImport_ExecCodeModuleObject, METH_VARARGS, NULL},
    {"PyImport_ExecCodeModuleWithPathnames", capi_PyImport_ExecCodeModuleWithPathnames, METH_VARARGS, NULL},
    {"PyImport_GetImporter", capi_PyImport_GetImporter, METH_O, NULL},
    {"PyImport_GetMagicNumber", capi_PyImport_GetMagicNumber, METH_NOARGS, NULL},

    # if 0x030700F0 <= PY_VERSION_HEX

        {"PyImport_GetModule", capi_PyImport_GetModule, METH_O, NULL},

    # endif

    {"PyImport_GetModuleDict", capi_PyImport_GetModuleDict, METH_NOARGS, NULL},
    {"PyImport_Import", capi_PyImport_Import, METH_O, NULL},
    {"PyImport_ImportFrozenModule", capi_PyImport_ImportFrozenModule, METH_VARARGS, NULL},
    {"PyImport_ImportFrozenModuleObject", capi_PyImport_ImportFrozenModuleObject, METH_O, NULL},
    {"PyImport_ImportModule", capi_PyImport_ImportModule, METH_VARARGS, NULL},
    {"PyImport_ImportModuleEx", capi_PyImport_ImportModuleEx, METH_VARARGS, NULL},
    {"PyImport_ImportModuleLevel", capi_PyImport_ImportModuleLevel, METH_VARARGS, NULL},
    {"PyImport_ImportModuleLevelObject", capi_PyImport_ImportModuleLevelObject, METH_VARARGS, NULL},
    {"PyImport_ImportModuleNoBlock", capi_PyImport_ImportModuleNoBlock, METH_VARARGS, NULL},
    {"PyImport_ReloadModule", capi_PyImport_ReloadModule, METH_O, NULL},

    /* PyIndex */

    {"PyIndex_Check", capi_PyIndex_Check, METH_O, NULL},

    /* PyInstanceMethod */

    {"PyInstanceMethod_Check", capi_PyInstanceMethod_Check, METH_O, NULL},
    {"PyInstanceMethod_Function", capi_PyInstanceMethod_Function, METH_O, NULL},
    {"PyInstanceMethod_GET_FUNCTION", capi_PyInstanceMethod_GET_FUNCTION, METH_O, NULL},
    {"PyInstanceMethod_New", capi_PyInstanceMethod_New, METH_O, NULL},

    /* PyIter */

    {"PyIter_Check", capi_PyIter_Check, METH_O, NULL},
    {"PyIter_Next", capi_PyIter_Next, METH_O, NULL},

    /* PyList */

    {"PyList_Append", capi_PyList_Append, METH_VARARGS, NULL},
    {"PyList_AsTuple", capi_PyList_AsTuple, METH_O, NULL},
    {"PyList_Check", capi_PyList_Check, METH_O, NULL},
    {"PyList_CheckExact", capi_PyList_CheckExact, METH_O, NULL},
    {"PyList_GET_ITEM", capi_PyList_GET_ITEM, METH_VARARGS, NULL},
    {"PyList_GET_SIZE", capi_PyList_GET_SIZE, METH_O, NULL},
    {"PyList_GetItem", capi_PyList_GetItem, METH_VARARGS, NULL},
    {"PyList_GetSlice", capi_PyList_GetSlice, METH_VARARGS, NULL},
    {"PyList_Insert", capi_PyList_Insert, METH_VARARGS, NULL},
    {"PyList_New", capi_PyList_New, METH_VARARGS, NULL},
    {"PyList_Reverse", capi_PyList_Reverse, METH_O, NULL},
    {"PyList_SET_ITEM", capi_PyList_SET_ITEM, METH_VARARGS, NULL},
    {"PyList_SetItem", capi_PyList_SetItem, METH_VARARGS, NULL},
    {"PyList_SetSlice", capi_PyList_SetSlice, METH_VARARGS, NULL},
    {"PyList_Size", capi_PyList_Size, METH_O, NULL},
    {"PyList_Sort", capi_PyList_Sort, METH_O, NULL},

    /* PyLong */

    {"PyLong_AsDouble", capi_PyLong_AsDouble, METH_O, NULL},
    {"PyLong_AsLong", capi_PyLong_AsLong, METH_O, NULL},
    {"PyLong_AsLongLong", capi_PyLong_AsLongLong, METH_O, NULL},
    {"PyLong_AsSsize_t", capi_PyLong_AsSsize_t, METH_O, NULL},
    {"PyLong_AsUnsignedLong", capi_PyLong_AsUnsignedLong, METH_O, NULL},
    {"PyLong_AsUnsignedLongLong", capi_PyLong_AsUnsignedLongLong, METH_O, NULL},
    {"PyLong_AsUnsignedLongLongMask", capi_PyLong_AsUnsignedLongLongMask, METH_O, NULL},
    {"PyLong_AsUnsignedLongMask", capi_PyLong_AsUnsignedLongMask, METH_O, NULL},
    {"PyLong_Check", capi_PyLong_Check, METH_O, NULL},
    {"PyLong_CheckExact", capi_PyLong_CheckExact, METH_O, NULL},
    {"PyLong_FromLong", capi_PyLong_FromLong, METH_VARARGS, NULL},

    /* PyMapping */

    {"PyMapping_Check", capi_PyMapping_Check, METH_O, NULL},
    {"PyMapping_DelItem", capi_PyMapping_DelItem, METH_VARARGS, NULL},
    {"PyMapping_DelItemString", capi_PyMapping_DelItemString, METH_VARARGS, NULL},
    {"PyMapping_GetItemString", capi_PyMapping_GetItemString, METH_VARARGS, NULL},
    {"PyMapping_HasKey", capi_PyMapping_HasKey, METH_VARARGS, NULL},
    {"PyMapping_HasKeyString", capi_PyMapping_HasKeyString, METH_VARARGS, NULL},
    {"PyMapping_Items", capi_PyMapping_Items, METH_O, NULL},
    {"PyMapping_Keys", capi_PyMapping_Keys, METH_O, NULL},
    {"PyMapping_Length", capi_PyMapping_Length, METH_O, NULL},
    {"PyMapping_SetItemString", capi_PyMapping_SetItemString, METH_VARARGS, NULL},
    {"PyMapping_Size", capi_PyMapping_Size, METH_O, NULL},
    {"PyMapping_Values", capi_PyMapping_Values, METH_O, NULL},

    /* PyMemoryView */

    {"PyMemoryView_Check", capi_PyMemoryView_Check, METH_O, NULL},
    {"PyMemoryView_FromObject", capi_PyMemoryView_FromObject, METH_O, NULL},

    /* PyMethod */

    {"PyMethod_Check", capi_PyMethod_Check, METH_O, NULL},
    {"PyMethod_Function", capi_PyMethod_Function, METH_O, NULL},
    {"PyMethod_GET_FUNCTION", capi_PyMethod_GET_FUNCTION, METH_O, NULL},
    {"PyMethod_GET_SELF", capi_PyMethod_GET_SELF, METH_O, NULL},
    {"PyMethod_New", capi_PyMethod_New, METH_VARARGS, NULL},
    {"PyMethod_Self", capi_PyMethod_Self, METH_O, NULL},

    /* PyModule */

    {"PyModule_Check", capi_PyModule_Check, METH_O, NULL},
    {"PyModule_CheckExact", capi_PyModule_CheckExact, METH_O, NULL},
    {"PyModule_GetDict", capi_PyModule_GetDict, METH_O, NULL},
    {"PyModule_GetFilename", capi_PyModule_GetFilename, METH_O, NULL},
    {"PyModule_GetFilenameObject", capi_PyModule_GetFilenameObject, METH_O, NULL},
    {"PyModule_GetName", capi_PyModule_GetName, METH_O, NULL},
    {"PyModule_GetNameObject", capi_PyModule_GetNameObject, METH_O, NULL},
    {"PyModule_NewObject", capi_PyModule_NewObject, METH_O, NULL},

    /* PyNumber */

    {"PyNumber_Absolute", capi_PyNumber_Absolute, METH_O, NULL},
    {"PyNumber_Add", capi_PyNumber_Add, METH_VARARGS, NULL},
    {"PyNumber_And", capi_PyNumber_And, METH_VARARGS, NULL},
    {"PyNumber_AsSsize_t", capi_PyNumber_AsSsize_t, METH_VARARGS, NULL},
    {"PyNumber_Check", capi_PyNumber_Check, METH_O, NULL},
    {"PyNumber_Divmod", capi_PyNumber_Divmod, METH_VARARGS, NULL},
    {"PyNumber_Float", capi_PyNumber_Float, METH_O, NULL},
    {"PyNumber_FloorDivide", capi_PyNumber_FloorDivide, METH_VARARGS, NULL},
    {"PyNumber_InPlaceAdd", capi_PyNumber_InPlaceAdd, METH_VARARGS, NULL},
    {"PyNumber_InPlaceAnd", capi_PyNumber_InPlaceAnd, METH_VARARGS, NULL},
    {"PyNumber_InPlaceFloorDivide", capi_PyNumber_InPlaceFloorDivide, METH_VARARGS, NULL},
    {"PyNumber_InPlaceLshift", capi_PyNumber_InPlaceLshift, METH_VARARGS, NULL},

    # if 0x030500F0 <= PY_VERSION_HEX

        {"PyNumber_InPlaceMatrixMultiply", capi_PyNumber_InPlaceMatrixMultiply, METH_VARARGS, NULL},

    # endif

    {"PyNumber_InPlaceMultiply", capi_PyNumber_InPlaceMultiply, METH_VARARGS, NULL},
    {"PyNumber_InPlaceOr", capi_PyNumber_InPlaceOr, METH_VARARGS, NULL},
    {"PyNumber_InPlacePower", capi_PyNumber_InPlacePower, METH_VARARGS, NULL},
    {"PyNumber_InPlaceRemainder", capi_PyNumber_InPlaceRemainder, METH_VARARGS, NULL},
    {"PyNumber_InPlaceRshift", capi_PyNumber_InPlaceRshift, METH_VARARGS, NULL},
    {"PyNumber_InPlaceSubtract", capi_PyNumber_InPlaceSubtract, METH_VARARGS, NULL},
    {"PyNumber_InPlaceTrueDivide", capi_PyNumber_InPlaceTrueDivide, METH_VARARGS, NULL},
    {"PyNumber_InPlaceXor", capi_PyNumber_InPlaceXor, METH_VARARGS, NULL},
    {"PyNumber_Index", capi_PyNumber_Index, METH_O, NULL},
    {"PyNumber_Invert", capi_PyNumber_Invert, METH_O, NULL},
    {"PyNumber_Long", capi_PyNumber_Long, METH_O, NULL},
    {"PyNumber_Lshift", capi_PyNumber_Lshift, METH_VARARGS, NULL},

    # if 0x030500F0 <= PY_VERSION_HEX

        {"PyNumber_MatrixMultiply", capi_PyNumber_MatrixMultiply, METH_VARARGS, NULL},

    # endif

    {"PyNumber_Multiply", capi_PyNumber_Multiply, METH_VARARGS, NULL},
    {"PyNumber_Negative", capi_PyNumber_Negative, METH_O, NULL},
    {"PyNumber_Or", capi_PyNumber_Or, METH_VARARGS, NULL},
    {"PyNumber_Positive", capi_PyNumber_Positive, METH_O, NULL},
    {"PyNumber_Power", capi_PyNumber_Power, METH_VARARGS, NULL},
    {"PyNumber_Remainder", capi_PyNumber_Remainder, METH_VARARGS, NULL},
    {"PyNumber_Rshift", capi_PyNumber_Rshift, METH_VARARGS, NULL},
    {"PyNumber_Subtract", capi_PyNumber_Subtract, METH_VARARGS, NULL},
    {"PyNumber_ToBase", capi_PyNumber_ToBase, METH_VARARGS, NULL},
    {"PyNumber_TrueDivide", capi_PyNumber_TrueDivide, METH_VARARGS, NULL},
    {"PyNumber_Xor", capi_PyNumber_Xor, METH_VARARGS, NULL},

    /* PyOS */

    {"PyOS_AfterFork", capi_PyOS_AfterFork, METH_NOARGS, NULL},

    # if 0x030700F0 <= PY_VERSION_HEX

        {"PyOS_AfterFork_Child", capi_PyOS_AfterFork_Child, METH_NOARGS, NULL},
        {"PyOS_AfterFork_Parent", capi_PyOS_AfterFork_Parent, METH_NOARGS, NULL},
        {"PyOS_BeforeFork", capi_PyOS_BeforeFork, METH_NOARGS, NULL},

    # endif

    # if 0x030600F0 <= PY_VERSION_HEX

        {"PyOS_FSPath", capi_PyOS_FSPath, METH_O, NULL},

    # endif

    /* PyObject */

    {"PyObject_ASCII", capi_PyObject_ASCII, METH_O, NULL},
    {"PyObject_AsFileDescriptor", capi_PyObject_AsFileDescriptor, METH_O, NULL},
    {"PyObject_Bytes", capi_PyObject_Bytes, METH_O, NULL},
    {"PyObject_Call", capi_PyObject_Call, METH_VARARGS, NULL},
    {"PyObject_CallObject", capi_PyObject_CallObject, METH_VARARGS, NULL},
    {"PyObject_CheckBuffer", capi_PyObject_CheckBuffer, METH_O, NULL},
    {"PyObject_CheckReadBuffer", capi_PyObject_CheckReadBuffer, METH_O, NULL},
    {"PyObject_DelAttr", capi_PyObject_DelAttr, METH_VARARGS, NULL},
    {"PyObject_DelItem", capi_PyObject_DelItem, METH_VARARGS, NULL},
    {"PyObject_Dir", capi_PyObject_Dir, METH_O, NULL},
    {"PyObject_GC_Track", capi_PyObject_GC_Track, METH_O, NULL},
    {"PyObject_GenericGetAttr", capi_PyObject_GenericGetAttr, METH_VARARGS, NULL},
    {"PyObject_GenericSetAttr", capi_PyObject_GenericSetAttr, METH_VARARGS, NULL},
    {"PyObject_GetAttr", capi_PyObject_GetAttr, METH_VARARGS, NULL},
    {"PyObject_GetItem", capi_PyObject_GetItem, METH_VARARGS, NULL},
    {"PyObject_GetIter", capi_PyObject_GetIter, METH_O, NULL},
    {"PyObject_HasAttr", capi_PyObject_HasAttr, METH_VARARGS, NULL},
    {"PyObject_Hash", capi_PyObject_Hash, METH_O, NULL},
    {"PyObject_IsInstance", capi_PyObject_IsInstance, METH_VARARGS, NULL},
    {"PyObject_IsSubclass", capi_PyObject_IsSubclass, METH_VARARGS, NULL},
    {"PyObject_IsTrue", capi_PyObject_IsTrue, METH_O, NULL},
    {"PyObject_Length", capi_PyObject_Length, METH_O, NULL},
    {"PyObject_Not", capi_PyObject_Not, METH_O, NULL},
    {"PyObject_Repr", capi_PyObject_Repr, METH_O, NULL},
    {"PyObject_SetAttr", capi_PyObject_SetAttr, METH_VARARGS, NULL},
    {"PyObject_SetItem", capi_PyObject_SetItem, METH_VARARGS, NULL},
    {"PyObject_Size", capi_PyObject_Size, METH_O, NULL},
    {"PyObject_Str", capi_PyObject_Str, METH_O, NULL},
    {"PyObject_Type", capi_PyObject_Type, METH_O, NULL},

    /* PySeqIter */

    {"PySeqIter_Check", capi_PySeqIter_Check, METH_O, NULL},
    {"PySeqIter_New", capi_PySeqIter_New, METH_O, NULL},

    /* PySequence */

    {"PySequence_Check", capi_PySequence_Check, METH_O, NULL},
    {"PySequence_Concat", capi_PySequence_Concat, METH_VARARGS, NULL},
    {"PySequence_Contains", capi_PySequence_Contains, METH_VARARGS, NULL},
    {"PySequence_Count", capi_PySequence_Count, METH_VARARGS, NULL},
    {"PySequence_Fast_GET_SIZE", capi_PySequence_Fast_GET_SIZE, METH_O, NULL},
    {"PySequence_In", capi_PySequence_In, METH_VARARGS, NULL},
    {"PySequence_InPlaceConcat", capi_PySequence_InPlaceConcat, METH_VARARGS, NULL},
    {"PySequence_Index", capi_PySequence_Index, METH_VARARGS, NULL},
    {"PySequence_List", capi_PySequence_List, METH_O, NULL},
    {"PySequence_Size", capi_PySequence_Size, METH_O, NULL},
    {"PySequence_Tuple", capi_PySequence_Tuple, METH_O, NULL},

    /* PySet */

    {"PySet_Add", capi_PySet_Add, METH_VARARGS, NULL},
    {"PySet_Check", capi_PySet_Check, METH_O, NULL},
    {"PySet_Clear", capi_PySet_Clear, METH_O, NULL},
    {"PySet_Contains", capi_PySet_Contains, METH_VARARGS, NULL},
    {"PySet_Discard", capi_PySet_Discard, METH_VARARGS, NULL},
    {"PySet_GET_SIZE", capi_PySet_GET_SIZE, METH_O, NULL},
    {"PySet_New", capi_PySet_New, METH_O, NULL},
    {"PySet_Pop", capi_PySet_Pop, METH_O, NULL},
    {"PySet_Size", capi_PySet_Size, METH_O, NULL},

    /* PySignal */

    {"PySignal_SetWakeupFd", capi_PySignal_SetWakeupFd, METH_VARARGS, NULL},

    /* PySlice */

    {"PySlice_Check", capi_PySlice_Check, METH_O, NULL},
    {"PySlice_New", capi_PySlice_New, METH_VARARGS, NULL},

    /* PySys */

    {"PySys_AddWarnOptionUnicode", capi_PySys_AddWarnOptionUnicode, METH_O, NULL},
    {"PySys_GetXOptions", capi_PySys_GetXOptions, METH_NOARGS, NULL},
    {"PySys_ResetWarnOptions", capi_PySys_ResetWarnOptions, METH_NOARGS, NULL},

    /* PyThreadState */

    {"PyThreadState_GetDict", capi_PyThreadState_GetDict, METH_NOARGS, NULL},

    # if 0x030700F0 <= PY_VERSION_HEX

        /* PyTimeZone */

        {"PyTimeZone_FromOffset", capi_PyTimeZone_FromOffset, METH_O, NULL},
        {"PyTimeZone_FromOffsetAndName", capi_PyTimeZone_FromOffsetAndName, METH_VARARGS, NULL},

    # endif

    /* PyTime */

    {"PyTime_Check", capi_PyTime_Check, METH_O, NULL},
    {"PyTime_CheckExact", capi_PyTime_CheckExact, METH_O, NULL},
    {"PyTime_FromTime", capi_PyTime_FromTime, METH_VARARGS, NULL},

    /* PyTuple */

    {"PyTuple_Check", capi_PyTuple_Check, METH_O, NULL},
    {"PyTuple_CheckExact", capi_PyTuple_CheckExact, METH_O, NULL},
    {"PyTuple_GET_ITEM", capi_PyTuple_GET_ITEM, METH_VARARGS, NULL},
    {"PyTuple_GET_SIZE", capi_PyTuple_GET_SIZE, METH_O, NULL},
    {"PyTuple_GetItem", capi_PyTuple_GetItem, METH_VARARGS, NULL},
    {"PyTuple_GetSlice", capi_PyTuple_GetSlice, METH_VARARGS, NULL},
    {"PyTuple_New", capi_PyTuple_New, METH_VARARGS, NULL},
    {"PyTuple_SET_ITEM", capi_PyTuple_SET_ITEM, METH_VARARGS, NULL},
    {"PyTuple_SetItem", capi_PyTuple_SetItem, METH_VARARGS, NULL},
    {"PyTuple_Size", capi_PyTuple_Size, METH_O, NULL},

    /* PyType */

    {"PyType_Check", capi_PyType_Check, METH_O, NULL},
    {"PyType_CheckExact", capi_PyType_CheckExact, METH_O, NULL},

    /* PyUnicodeDecodeError */

    {"PyUnicodeDecodeError_GetEncoding", capi_PyUnicodeDecodeError_GetEncoding, METH_O, NULL},
    {"PyUnicodeDecodeError_GetObject", capi_PyUnicodeDecodeError_GetObject, METH_O, NULL},
    {"PyUnicodeDecodeError_GetReason", capi_PyUnicodeDecodeError_GetReason, METH_O, NULL},

    /* PyUnicode */

    {"PyUnicode_AS_DATA", capi_PyUnicode_AS_DATA, METH_O, NULL},
    {"PyUnicode_AS_UNICODE", capi_PyUnicode_AS_UNICODE, METH_O, NULL},
    {"PyUnicode_AsASCIIString", capi_PyUnicode_AsASCIIString, METH_O, NULL},
    {"PyUnicode_AsCharmapString", capi_PyUnicode_AsCharmapString, METH_VARARGS, NULL},
    {"PyUnicode_AsLatin1String", capi_PyUnicode_AsLatin1String, METH_O, NULL},

    # if MS_WINDOWS

        {"PyUnicode_AsMBCSString", capi_PyUnicode_AsMBCSString, METH_O, NULL},

    # endif

    {"PyUnicode_AsRawUnicodeEscapeString", capi_PyUnicode_AsRawUnicodeEscapeString, METH_O, NULL},
    {"PyUnicode_AsUTF16String", capi_PyUnicode_AsUTF16String, METH_O, NULL},
    {"PyUnicode_AsUTF32String", capi_PyUnicode_AsUTF32String, METH_O, NULL},
    {"PyUnicode_AsUTF8", capi_PyUnicode_AsUTF8, METH_O, NULL},
    {"PyUnicode_AsUTF8String", capi_PyUnicode_AsUTF8String, METH_O, NULL},
    {"PyUnicode_AsUnicode", capi_PyUnicode_AsUnicode, METH_O, NULL},
    {"PyUnicode_AsUnicodeCopy", capi_PyUnicode_AsUnicodeCopy, METH_O, NULL},
    {"PyUnicode_AsUnicodeEscapeString", capi_PyUnicode_AsUnicodeEscapeString, METH_O, NULL},
    {"PyUnicode_Check", capi_PyUnicode_Check, METH_O, NULL},
    {"PyUnicode_CheckExact", capi_PyUnicode_CheckExact, METH_O, NULL},
    {"PyUnicode_Compare", capi_PyUnicode_Compare, METH_VARARGS, NULL},
    {"PyUnicode_Concat", capi_PyUnicode_Concat, METH_VARARGS, NULL},
    {"PyUnicode_Contains", capi_PyUnicode_Contains, METH_VARARGS, NULL},
    {"PyUnicode_EncodeFSDefault", capi_PyUnicode_EncodeFSDefault, METH_O, NULL},
    {"PyUnicode_Format", capi_PyUnicode_Format, METH_VARARGS, NULL},
    {"PyUnicode_FromObject", capi_PyUnicode_FromObject, METH_O, NULL},
    {"PyUnicode_GET_DATA_SIZE", capi_PyUnicode_GET_DATA_SIZE, METH_O, NULL},
    {"PyUnicode_GET_LENGTH", capi_PyUnicode_GET_LENGTH, METH_O, NULL},
    {"PyUnicode_GET_SIZE", capi_PyUnicode_GET_SIZE, METH_O, NULL},
    {"PyUnicode_GetLength", capi_PyUnicode_GetLength, METH_O, NULL},
    {"PyUnicode_GetSize", capi_PyUnicode_GetSize, METH_O, NULL},
    {"PyUnicode_Join", capi_PyUnicode_Join, METH_VARARGS, NULL},
    {"PyUnicode_KIND", capi_PyUnicode_KIND, METH_O, NULL},
    {"PyUnicode_READY", capi_PyUnicode_READY, METH_O, NULL},

    /* PyWeakref */

    {"PyWeakref_Check", capi_PyWeakref_Check, METH_O, NULL},
    {"PyWeakref_CheckProxy", capi_PyWeakref_CheckProxy, METH_O, NULL},
    {"PyWeakref_CheckRef", capi_PyWeakref_CheckRef, METH_O, NULL},
    {"PyWeakref_GET_OBJECT", capi_PyWeakref_GET_OBJECT, METH_O, NULL},
    {"PyWeakref_GetObject", capi_PyWeakref_GetObject, METH_O, NULL},
    {"PyWeakref_NewProxy", capi_PyWeakref_NewProxy, METH_VARARGS, NULL},
    {"PyWeakref_NewRef", capi_PyWeakref_NewRef, METH_VARARGS, NULL},

    /* PyWrapper */

    {"PyWrapper_New", capi_PyWrapper_New, METH_VARARGS, NULL},

    /* Py */

    {"Py_CLEAR", capi_Py_CLEAR, METH_O, NULL},
    {"Py_CompileString", capi_Py_CompileString, METH_VARARGS, NULL},
    {"Py_DECREF", capi_Py_DECREF, METH_O, NULL},
    {"Py_Exit", capi_Py_Exit, METH_VARARGS, NULL},
    {"Py_FatalError", capi_Py_FatalError, METH_VARARGS, NULL},
    {"Py_Finalize", capi_Py_Finalize, METH_NOARGS, NULL},
    {"Py_GetBuildInfo", capi_Py_GetBuildInfo, METH_NOARGS, NULL},
    {"Py_GetCompiler", capi_Py_GetCompiler, METH_NOARGS, NULL},
    {"Py_GetCopyright", capi_Py_GetCopyright, METH_NOARGS, NULL},
    {"Py_GetExecPrefix", capi_Py_GetExecPrefix, METH_NOARGS, NULL},
    {"Py_GetPath", capi_Py_GetPath, METH_NOARGS, NULL},
    {"Py_GetPlatform", capi_Py_GetPlatform, METH_NOARGS, NULL},
    {"Py_GetPrefix", capi_Py_GetPrefix, METH_NOARGS, NULL},
    {"Py_GetProgramFullPath", capi_Py_GetProgramFullPath, METH_NOARGS, NULL},
    {"Py_GetProgramName", capi_Py_GetProgramName, METH_NOARGS, NULL},
    {"Py_GetVersion", capi_Py_GetVersion, METH_NOARGS, NULL},
    {"Py_INCREF", capi_Py_INCREF, METH_O, NULL},
    {"Py_Initialize", capi_Py_Initialize, METH_NOARGS, NULL},
    {"Py_IsInitialized", capi_Py_IsInitialized, METH_NOARGS, NULL},
    {"Py_ReprEnter", capi_Py_ReprEnter, METH_O, NULL},
    {"Py_ReprLeave", capi_Py_ReprLeave, METH_O, NULL},
    {"Py_SetProgramName", capi_Py_SetProgramName, METH_VARARGS, NULL},
    {"Py_XDECREF", capi_Py_XDECREF, METH_O, NULL},
    {"Py_XINCREF", capi_Py_XINCREF, METH_O, NULL},

     /* End */

    {NULL, NULL, 0, NULL},
};


/* NULL */


// static int null_bool(PyObject *Py_UNUSED(null)) {
//     return 0;
// }

// static PyObject* null_repr(PyObject *Py_UNUSED(null)) {
//     return PyUnicode_FromString("NULL");
// }

// static PyNumberMethods null_as_number = {
//     0,         /* nb_add */
//     0,         /* nb_subtract */
//     0,         /* nb_multiply */
//     0,         /* nb_remainder */
//     0,         /* nb_divmod */
//     0,         /* nb_power */
//     0,         /* nb_negative */
//     0,         /* nb_positive */
//     0,         /* nb_absolute */
//     null_bool, /* nb_bool */
//     0,         /* nb_invert */
//     0,         /* nb_lshift */
//     0,         /* nb_rshift */
//     0,         /* nb_and */
//     0,         /* nb_xor */
//     0,         /* nb_or */
//     0,         /* nb_int */
//     0,         /* nb_reserved */
//     0,         /* nb_float */
//     0,         /* nb_inplace_add */
//     0,         /* nb_inplace_subtract */
//     0,         /* nb_inplace_multiply */
//     0,         /* nb_inplace_remainder */
//     0,         /* nb_inplace_power */
//     0,         /* nb_inplace_lshift */
//     0,         /* nb_inplace_rshift */
//     0,         /* nb_inplace_and */
//     0,         /* nb_inplace_xor */
//     0,         /* nb_inplace_or */
//     0,         /* nb_floor_divide */
//     0,         /* nb_true_divide */
//     0,         /* nb_inplace_floor_divide */
//     0,         /* nb_inplace_true_divide */
//     0,         /* nb_index */
// };

// static PyTypeObject NULLType = {
//     {PyObject_HEAD_INIT(&PyType_Type)},
//     "void *",        /* tp_name */
//     0,               /* tp_basicsize */
//     0,               /* tp_itemsize */
//     0,               /* tp_dealloc */
//     0,               /* tp_print */
//     0,               /* tp_getattr */
//     0,               /* tp_setattr */
//     0,               /* tp_reserved */
//     null_repr,       /* tp_repr */
//     &null_as_number, /* tp_as_number */
//     0,               /* tp_as_sequence */
//     0,               /* tp_as_mapping */
//     0,               /* tp_hash */
//     0,               /* tp_call */
//     0,               /* tp_str */
//     0,               /* tp_getattro */
//     0,               /* tp_setattro */
//     0,               /* tp_as_buffer */
//     0,               /* tp_flags */
//     0,               /* tp_doc */
//     0,               /* tp_traverse */
//     0,               /* tp_clear */
//     0,               /* tp_richcompare */
//     0,               /* tp_weaklistoffset */
//     0,               /* tp_iter */
//     0,               /* tp_iternext */
//     0,               /* tp_methods */
//     0,               /* tp_members */
//     0,               /* tp_getset */
//     0,               /* tp_base */
//     0,               /* tp_dict */
//     0,               /* tp_descr_get */
//     0,               /* tp_descr_set */
//     0,               /* tp_dictoffset */
//     0,               /* tp_init */
//     0,               /* tp_alloc */
//     0,               /* tp_new */
// };


/* Module initialization boilerplate: */


static struct PyModuleDef CAPIModule = {
    PyModuleDef_HEAD_INIT, "pycapi", NULL, -1, CAPIMethods,
};


PyObject* PyInit_pycapi(void) {

    PyObject* capi;
    //PyObject* capi_null;

    PyDateTime_IMPORT;

    capi = PyModule_Create(&CAPIModule);
    /*
    capi_null = PyObject_New(PyObject, &NULLType);

    if (!capi_null) {
        return NULL;
    }

    PyModule_AddObject(capi, "_NULL", capi_null);
    */
    return capi;
}
