HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //proc/thread-self/root/usr/local/lib/python3.9/site-packages/wordfence/util/library.py
from ctypes import cdll, CDLL
from ctypes.util import find_library
from importlib import import_module


class LibraryNotAvailableException(Exception):
    pass


def load_library(name: str) -> CDLL:
    pathname = find_library(name)
    if pathname is None:
        raise LibraryNotAvailableException()
    try:
        library = cdll.LoadLibrary(pathname)
        return library
    except OSError:
        raise LibraryNotAvailableException


class OptionalUtility:

    def __init__(self, name):
        try:
            self.module = import_module('.' + name, 'wordfence.util')
        except LibraryNotAvailableException:
            self.module = None

    def is_available(self) -> bool:
        return self.module is not None