HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.8/dist-packages/java.py
import builtins
import os
import sys
import types


class JavaPackage(types.ModuleType):
    'An on-demand Java class loader.'

    def __getattribute__(self, attr):
        if attr.startswith('__'):
            return super().__getattribute__(attr)

        class_name = self.__name__ + '.' + attr
        try:
            return autoclass(class_name)
        except JavaException:
            raise ModuleNotFoundError(class_name)


def class_path():
    'Read the $CLASSPATH environment variable.'
    return os.environ.get('CLASSPATH', '').split(os.pathsep)


class Context(types.ModuleType):
    'Patch or recover the __import__ function.'

    __dict__ = globals()

    def new_import(self, name, globals=None, locals=None, fromlist=(), *args):
        try:
            return self.old_import(name, globals, locals, fromlist, *args)
        except ModuleNotFoundError as e:
            if not fromlist:
                raise e
            # shortcut for the default package
            if name == '_':
                name = 'java.lang'
            return JavaPackage(name)

    def __enter__(self):
        self.old_import = builtins.__import__
        builtins.__import__ = self.new_import

    def __exit__(self, *_):
        builtins.__import__ = self.old_import


if 'ModuleNotFoundError' not in dir(builtins):
    ModuleNotFoundError = ImportError
try:
    from jnius import autoclass, JavaException
except ModuleNotFoundError:
    from javabridge import JClassWrapper as autoclass, JavaException

    import javabridge as jb
    if not jb.get_env():
        jb.start_vm(class_path=class_path() + jb.JARS)
finally:
    sys.modules[__name__] = Context(__name__)