from llvmlite.binding import ffi def create_context(): return ContextRef(ffi.lib.LLVMPY_ContextCreate()) def get_global_context(): return GlobalContextRef(ffi.lib.LLVMPY_GetGlobalContext()) class ContextRef(ffi.ObjectRef): def __init__(self, context_ptr): super(ContextRef, self).__init__(context_ptr) def _dispose(self): ffi.lib.LLVMPY_ContextDispose(self) class GlobalContextRef(ContextRef): def _dispose(self): pass ffi.lib.LLVMPY_GetGlobalContext.restype = ffi.LLVMContextRef ffi.lib.LLVMPY_ContextCreate.restype = ffi.LLVMContextRef ffi.lib.LLVMPY_ContextDispose.argtypes = [ffi.LLVMContextRef]