codon/stdlib/internal/cpy_dlopen.codon

366 lines
16 KiB
Python

# Copyright (C) 2022-2023 Exaloop Inc. <https://exaloop.io>
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]