Source code for runtimepy.net.arbiter.imports.util

"""
Utility interfaces for arbiter runtime-import mechanisms.
"""

# built-in
from importlib import import_module as _import_module

# third-party
from vcorelib.names import import_str_and_item

# internal
from runtimepy.net.arbiter.config.codec import ConfigApps
from runtimepy.net.arbiter.info import ArbiterApps


[docs] def get_apps( module_path: ConfigApps, wait_for_stop: bool = False ) -> ArbiterApps: """ Attempt to update the application method from the provided string. """ if module_path is None: module_path = [] elif isinstance(module_path, str): module_path = [module_path] if wait_for_stop: module_path.append("runtimepy.net.apps.wait_for_stop") # Load all application methods. apps = [] for paths in module_path: if not isinstance(paths, list): paths = [paths] # type: ignore methods = [] for path in paths: module, app = import_str_and_item(path) methods.append(getattr(_import_module(module), app)) apps.append(methods) return apps