# Copyright (C) 2022-2023 Exaloop Inc. from internal.dlopen import * # general Py_DecRef = Function[[cobj], NoneType](cobj()) Py_IncRef = Function[[cobj], NoneType](cobj()) Py_Initialize = Function[[], NoneType](cobj()) PyImport_AddModule = Function[[cobj], cobj](cobj()) PyImport_AddModuleObject = Function[[cobj], cobj](cobj()) PyImport_ImportModule = Function[[cobj], cobj](cobj()) PyRun_SimpleString = Function[[cobj], NoneType](cobj()) PyEval_GetGlobals = Function[[], cobj](cobj()) PyEval_GetBuiltins = Function[[], cobj](cobj()) # conversions PyLong_AsLong = Function[[cobj], int](cobj()) PyLong_FromLong = Function[[int], cobj](cobj()) PyFloat_AsDouble = Function[[cobj], float](cobj()) PyFloat_FromDouble = Function[[float], cobj](cobj()) PyBool_FromLong = Function[[int], cobj](cobj()) PyBytes_AsString = Function[[cobj], cobj](cobj()) PyList_New = Function[[int], cobj](cobj()) PyList_GetItem = Function[[cobj, int], cobj](cobj()) PyList_SetItem = Function[[cobj, int, cobj], cobj](cobj()) PyDict_New = Function[[], cobj](cobj()) PyDict_Next = Function[[cobj, Ptr[int], Ptr[cobj], Ptr[cobj]], int](cobj()) PyDict_GetItem = Function[[cobj, cobj], cobj](cobj()) PyDict_SetItem = Function[[cobj, cobj, cobj], cobj](cobj()) PySet_Add = Function[[cobj, cobj], cobj](cobj()) PySet_New = Function[[cobj], cobj](cobj()) PyTuple_New = Function[[int], cobj](cobj()) PyTuple_Size = Function[[cobj], int](cobj()) PyTuple_GetItem = Function[[cobj, int], cobj](cobj()) PyTuple_SetItem = Function[[cobj, int, cobj], NoneType](cobj()) PyUnicode_AsEncodedString = Function[[cobj, cobj, cobj], cobj](cobj()) PyUnicode_DecodeFSDefaultAndSize = Function[[cobj, int], cobj](cobj()) PyUnicode_FromString = Function[[cobj], cobj](cobj()) PyComplex_FromDoubles = Function[[float, float], cobj](cobj()) PyComplex_RealAsDouble = Function[[cobj], float](cobj()) PyComplex_ImagAsDouble = Function[[cobj], float](cobj()) PyIter_Next = Function[[cobj], cobj](cobj()) PySlice_New = Function[[cobj, cobj, cobj], cobj](cobj()) PySlice_Unpack = Function[[cobj, Ptr[int], Ptr[int], Ptr[int]], int](cobj()) # number PyNumber_Add = Function[[cobj, cobj], cobj](cobj()) PyNumber_Subtract = Function[[cobj, cobj], cobj](cobj()) PyNumber_Multiply = Function[[cobj, cobj], cobj](cobj()) PyNumber_MatrixMultiply = Function[[cobj, cobj], cobj](cobj()) PyNumber_FloorDivide = Function[[cobj, cobj], cobj](cobj()) PyNumber_TrueDivide = Function[[cobj, cobj], cobj](cobj()) PyNumber_Remainder = Function[[cobj, cobj], cobj](cobj()) PyNumber_Divmod = Function[[cobj, cobj], cobj](cobj()) PyNumber_Power = Function[[cobj, cobj, cobj], cobj](cobj()) PyNumber_Negative = Function[[cobj], cobj](cobj()) PyNumber_Positive = Function[[cobj], cobj](cobj()) PyNumber_Absolute = Function[[cobj], cobj](cobj()) PyNumber_Invert = Function[[cobj], cobj](cobj()) PyNumber_Lshift = Function[[cobj, cobj], cobj](cobj()) PyNumber_Rshift = Function[[cobj, cobj], cobj](cobj()) PyNumber_And = Function[[cobj, cobj], cobj](cobj()) PyNumber_Xor = Function[[cobj, cobj], cobj](cobj()) PyNumber_Or = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceAdd = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceSubtract = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceMultiply = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceMatrixMultiply = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceFloorDivide = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceTrueDivide = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceRemainder = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlacePower = Function[[cobj, cobj, cobj], cobj](cobj()) PyNumber_InPlaceLshift = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceRshift = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceAnd = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceXor = Function[[cobj, cobj], cobj](cobj()) PyNumber_InPlaceOr = Function[[cobj, cobj], cobj](cobj()) PyNumber_Long = Function[[cobj], cobj](cobj()) PyNumber_Float = Function[[cobj], cobj](cobj()) PyNumber_Index = Function[[cobj], cobj](cobj()) # object PyObject_Call = Function[[cobj, cobj, cobj], cobj](cobj()) PyObject_GetAttr = Function[[cobj, cobj], cobj](cobj()) PyObject_GetAttrString = Function[[cobj, cobj], cobj](cobj()) PyObject_GetIter = Function[[cobj], cobj](cobj()) PyObject_HasAttrString = Function[[cobj, cobj], int](cobj()) PyObject_IsTrue = Function[[cobj], int](cobj()) PyObject_Length = Function[[cobj], int](cobj()) PyObject_LengthHint = Function[[cobj, int], int](cobj()) PyObject_SetAttrString = Function[[cobj, cobj, cobj], cobj](cobj()) PyObject_Str = Function[[cobj], cobj](cobj()) PyObject_Repr = Function[[cobj], cobj](cobj()) PyObject_Hash = Function[[cobj], int](cobj()) PyObject_GetItem = Function[[cobj, cobj], cobj](cobj()) PyObject_SetItem = Function[[cobj, cobj, cobj], int](cobj()) PyObject_DelItem = Function[[cobj, cobj], int](cobj()) PyObject_RichCompare = Function[[cobj, cobj, i32], cobj](cobj()) PyObject_IsInstance = Function[[cobj, cobj], i32](cobj()) # error handling PyErr_Fetch = Function[[Ptr[cobj], Ptr[cobj], Ptr[cobj]], NoneType](cobj()) PyErr_NormalizeException = Function[[Ptr[cobj], Ptr[cobj], Ptr[cobj]], NoneType](cobj()) PyErr_SetString = Function[[cobj, cobj], NoneType](cobj()) # constants Py_None = cobj() Py_True = cobj() Py_False = cobj() Py_LT = 0 Py_LE = 1 Py_EQ = 2 Py_NE = 3 Py_GT = 4 Py_GE = 5 # exceptions PyExc_BaseException = cobj() PyExc_Exception = cobj() PyExc_NameError = cobj() PyExc_OSError = cobj() PyExc_IOError = cobj() PyExc_ValueError = cobj() PyExc_LookupError = cobj() PyExc_IndexError = cobj() PyExc_KeyError = cobj() PyExc_TypeError = cobj() PyExc_ArithmeticError = cobj() PyExc_ZeroDivisionError = cobj() PyExc_OverflowError = cobj() PyExc_AttributeError = cobj() PyExc_RuntimeError = cobj() PyExc_NotImplementedError = cobj() PyExc_StopIteration = cobj() PyExc_AssertionError = cobj() PyExc_SystemExit = cobj() def init_dl_handles(py_handle: cobj): global Py_DecRef global Py_IncRef global Py_Initialize global PyImport_AddModule global PyImport_AddModuleObject global PyImport_ImportModule global PyRun_SimpleString global PyEval_GetGlobals global PyEval_GetBuiltins global PyLong_AsLong global PyLong_FromLong global PyFloat_AsDouble global PyFloat_FromDouble global PyBool_FromLong global PyBytes_AsString global PyList_New global PyList_GetItem global PyList_SetItem global PyDict_New global PyDict_Next global PyDict_GetItem global PyDict_SetItem global PySet_Add global PySet_New global PyTuple_New global PyTuple_Size global PyTuple_GetItem global PyTuple_SetItem global PyUnicode_AsEncodedString global PyUnicode_DecodeFSDefaultAndSize global PyUnicode_FromString global PyComplex_FromDoubles global PyComplex_RealAsDouble global PyComplex_ImagAsDouble global PyIter_Next global PySlice_New global PySlice_Unpack global PyNumber_Add global PyNumber_Subtract global PyNumber_Multiply global PyNumber_MatrixMultiply global PyNumber_FloorDivide global PyNumber_TrueDivide global PyNumber_Remainder global PyNumber_Divmod global PyNumber_Power global PyNumber_Negative global PyNumber_Positive global PyNumber_Absolute global PyNumber_Invert global PyNumber_Lshift global PyNumber_Rshift global PyNumber_And global PyNumber_Xor global PyNumber_Or global PyNumber_InPlaceAdd global PyNumber_InPlaceSubtract global PyNumber_InPlaceMultiply global PyNumber_InPlaceMatrixMultiply global PyNumber_InPlaceFloorDivide global PyNumber_InPlaceTrueDivide global PyNumber_InPlaceRemainder global PyNumber_InPlacePower global PyNumber_InPlaceLshift global PyNumber_InPlaceRshift global PyNumber_InPlaceAnd global PyNumber_InPlaceXor global PyNumber_InPlaceOr global PyNumber_Long global PyNumber_Float global PyNumber_Index global PyObject_Call global PyObject_GetAttr global PyObject_GetAttrString global PyObject_GetIter global PyObject_HasAttrString global PyObject_IsTrue global PyObject_Length global PyObject_LengthHint global PyObject_SetAttrString global PyObject_Str global PyObject_Repr global PyObject_Hash global PyObject_GetItem global PyObject_SetItem global PyObject_DelItem global PyObject_RichCompare global PyObject_IsInstance global PyErr_Fetch global PyErr_NormalizeException global PyErr_SetString global Py_None global Py_True global Py_False global PyExc_BaseException global PyExc_Exception global PyExc_NameError global PyExc_OSError global PyExc_IOError global PyExc_ValueError global PyExc_LookupError global PyExc_IndexError global PyExc_KeyError global PyExc_TypeError global PyExc_ArithmeticError global PyExc_ZeroDivisionError global PyExc_OverflowError global PyExc_AttributeError global PyExc_RuntimeError global PyExc_NotImplementedError global PyExc_StopIteration global PyExc_AssertionError global PyExc_SystemExit Py_DecRef = dlsym(py_handle, "Py_DecRef") Py_IncRef = dlsym(py_handle, "Py_IncRef") Py_Initialize = dlsym(py_handle, "Py_Initialize") PyImport_AddModule = dlsym(py_handle, "PyImport_AddModule") PyImport_AddModuleObject = dlsym(py_handle, "PyImport_AddModuleObject") PyImport_ImportModule = dlsym(py_handle, "PyImport_ImportModule") PyRun_SimpleString = dlsym(py_handle, "PyRun_SimpleString") PyEval_GetGlobals = dlsym(py_handle, "PyEval_GetGlobals") PyEval_GetBuiltins = dlsym(py_handle, "PyEval_GetBuiltins") PyLong_AsLong = dlsym(py_handle, "PyLong_AsLong") PyLong_FromLong = dlsym(py_handle, "PyLong_FromLong") PyFloat_AsDouble = dlsym(py_handle, "PyFloat_AsDouble") PyFloat_FromDouble = dlsym(py_handle, "PyFloat_FromDouble") PyBool_FromLong = dlsym(py_handle, "PyBool_FromLong") PyBytes_AsString = dlsym(py_handle, "PyBytes_AsString") PyList_New = dlsym(py_handle, "PyList_New") PyList_GetItem = dlsym(py_handle, "PyList_GetItem") PyList_SetItem = dlsym(py_handle, "PyList_SetItem") PyDict_New = dlsym(py_handle, "PyDict_New") PyDict_Next = dlsym(py_handle, "PyDict_Next") PyDict_GetItem = dlsym(py_handle, "PyDict_GetItem") PyDict_SetItem = dlsym(py_handle, "PyDict_SetItem") PySet_Add = dlsym(py_handle, "PySet_Add") PySet_New = dlsym(py_handle, "PySet_New") PyTuple_New = dlsym(py_handle, "PyTuple_New") PyTuple_Size = dlsym(py_handle, "PyTuple_Size") PyTuple_GetItem = dlsym(py_handle, "PyTuple_GetItem") PyTuple_SetItem = dlsym(py_handle, "PyTuple_SetItem") PyUnicode_AsEncodedString = dlsym(py_handle, "PyUnicode_AsEncodedString") PyUnicode_DecodeFSDefaultAndSize = dlsym(py_handle, "PyUnicode_DecodeFSDefaultAndSize") PyUnicode_FromString = dlsym(py_handle, "PyUnicode_FromString") PyComplex_FromDoubles = dlsym(py_handle, "PyComplex_FromDoubles") PyComplex_RealAsDouble = dlsym(py_handle, "PyComplex_RealAsDouble") PyComplex_ImagAsDouble = dlsym(py_handle, "PyComplex_ImagAsDouble") PyIter_Next = dlsym(py_handle, "PyIter_Next") PySlice_New = dlsym(py_handle, "PySlice_New") PySlice_Unpack = dlsym(py_handle, "PySlice_Unpack") PyNumber_Add = dlsym(py_handle, "PyNumber_Add") PyNumber_Subtract = dlsym(py_handle, "PyNumber_Subtract") PyNumber_Multiply = dlsym(py_handle, "PyNumber_Multiply") PyNumber_MatrixMultiply = dlsym(py_handle, "PyNumber_MatrixMultiply") PyNumber_FloorDivide = dlsym(py_handle, "PyNumber_FloorDivide") PyNumber_TrueDivide = dlsym(py_handle, "PyNumber_TrueDivide") PyNumber_Remainder = dlsym(py_handle, "PyNumber_Remainder") PyNumber_Divmod = dlsym(py_handle, "PyNumber_Divmod") PyNumber_Power = dlsym(py_handle, "PyNumber_Power") PyNumber_Negative = dlsym(py_handle, "PyNumber_Negative") PyNumber_Positive = dlsym(py_handle, "PyNumber_Positive") PyNumber_Absolute = dlsym(py_handle, "PyNumber_Absolute") PyNumber_Invert = dlsym(py_handle, "PyNumber_Invert") PyNumber_Lshift = dlsym(py_handle, "PyNumber_Lshift") PyNumber_Rshift = dlsym(py_handle, "PyNumber_Rshift") PyNumber_And = dlsym(py_handle, "PyNumber_And") PyNumber_Xor = dlsym(py_handle, "PyNumber_Xor") PyNumber_Or = dlsym(py_handle, "PyNumber_Or") PyNumber_InPlaceAdd = dlsym(py_handle, "PyNumber_InPlaceAdd") PyNumber_InPlaceSubtract = dlsym(py_handle, "PyNumber_InPlaceSubtract") PyNumber_InPlaceMultiply = dlsym(py_handle, "PyNumber_InPlaceMultiply") PyNumber_InPlaceMatrixMultiply = dlsym(py_handle, "PyNumber_InPlaceMatrixMultiply") PyNumber_InPlaceFloorDivide = dlsym(py_handle, "PyNumber_InPlaceFloorDivide") PyNumber_InPlaceTrueDivide = dlsym(py_handle, "PyNumber_InPlaceTrueDivide") PyNumber_InPlaceRemainder = dlsym(py_handle, "PyNumber_InPlaceRemainder") PyNumber_InPlacePower = dlsym(py_handle, "PyNumber_InPlacePower") PyNumber_InPlaceLshift = dlsym(py_handle, "PyNumber_InPlaceLshift") PyNumber_InPlaceRshift = dlsym(py_handle, "PyNumber_InPlaceRshift") PyNumber_InPlaceAnd = dlsym(py_handle, "PyNumber_InPlaceAnd") PyNumber_InPlaceXor = dlsym(py_handle, "PyNumber_InPlaceXor") PyNumber_InPlaceOr = dlsym(py_handle, "PyNumber_InPlaceOr") PyNumber_Long = dlsym(py_handle, "PyNumber_Long") PyNumber_Float = dlsym(py_handle, "PyNumber_Float") PyNumber_Index = dlsym(py_handle, "PyNumber_Index") PyObject_Call = dlsym(py_handle, "PyObject_Call") PyObject_GetAttr = dlsym(py_handle, "PyObject_GetAttr") PyObject_GetAttrString = dlsym(py_handle, "PyObject_GetAttrString") PyObject_GetIter = dlsym(py_handle, "PyObject_GetIter") PyObject_HasAttrString = dlsym(py_handle, "PyObject_HasAttrString") PyObject_IsTrue = dlsym(py_handle, "PyObject_IsTrue") PyObject_Length = dlsym(py_handle, "PyObject_Length") PyObject_LengthHint = dlsym(py_handle, "PyObject_LengthHint") PyObject_SetAttrString = dlsym(py_handle, "PyObject_SetAttrString") PyObject_Str = dlsym(py_handle, "PyObject_Str") PyObject_Repr = dlsym(py_handle, "PyObject_Repr") PyObject_Hash = dlsym(py_handle, "PyObject_Hash") PyObject_GetItem = dlsym(py_handle, "PyObject_GetItem") PyObject_SetItem = dlsym(py_handle, "PyObject_SetItem") PyObject_DelItem = dlsym(py_handle, "PyObject_DelItem") PyObject_RichCompare = dlsym(py_handle, "PyObject_RichCompare") PyObject_IsInstance = dlsym(py_handle, "PyObject_IsInstance") PyErr_Fetch = dlsym(py_handle, "PyErr_Fetch") PyErr_NormalizeException = dlsym(py_handle, "PyErr_NormalizeException") PyErr_SetString = dlsym(py_handle, "PyErr_SetString") Py_None = dlsym(py_handle, "_Py_NoneStruct") Py_True = dlsym(py_handle, "_Py_TrueStruct") Py_False = dlsym(py_handle, "_Py_FalseStruct") PyExc_BaseException = Ptr[cobj](dlsym(py_handle, "PyExc_BaseException"))[0] PyExc_Exception = Ptr[cobj](dlsym(py_handle, "PyExc_Exception"))[0] PyExc_NameError = Ptr[cobj](dlsym(py_handle, "PyExc_NameError"))[0] PyExc_OSError = Ptr[cobj](dlsym(py_handle, "PyExc_OSError"))[0] PyExc_IOError = Ptr[cobj](dlsym(py_handle, "PyExc_IOError"))[0] PyExc_ValueError = Ptr[cobj](dlsym(py_handle, "PyExc_ValueError"))[0] PyExc_LookupError = Ptr[cobj](dlsym(py_handle, "PyExc_LookupError"))[0] PyExc_IndexError = Ptr[cobj](dlsym(py_handle, "PyExc_IndexError"))[0] PyExc_KeyError = Ptr[cobj](dlsym(py_handle, "PyExc_KeyError"))[0] PyExc_TypeError = Ptr[cobj](dlsym(py_handle, "PyExc_TypeError"))[0] PyExc_ArithmeticError = Ptr[cobj](dlsym(py_handle, "PyExc_ArithmeticError"))[0] PyExc_ZeroDivisionError = Ptr[cobj](dlsym(py_handle, "PyExc_ZeroDivisionError"))[0] PyExc_OverflowError = Ptr[cobj](dlsym(py_handle, "PyExc_OverflowError"))[0] PyExc_AttributeError = Ptr[cobj](dlsym(py_handle, "PyExc_AttributeError"))[0] PyExc_RuntimeError = Ptr[cobj](dlsym(py_handle, "PyExc_RuntimeError"))[0] PyExc_NotImplementedError = Ptr[cobj](dlsym(py_handle, "PyExc_NotImplementedError"))[0] PyExc_StopIteration = Ptr[cobj](dlsym(py_handle, "PyExc_StopIteration"))[0] PyExc_AssertionError = Ptr[cobj](dlsym(py_handle, "PyExc_AssertionError"))[0] PyExc_SystemExit = Ptr[cobj](dlsym(py_handle, "PyExc_SystemExit"))[0]