Source code for msa.core.loader

import importlib


# builtin modules to load
builtin_module_names = [
    "time",
    "tty",
    "command_registry",
    "echo",
    "command",
]


[docs]def load_builtin_modules(): """Loads builtin modules.""" plugin_modules = [] for module_name in builtin_module_names: module = importlib.import_module("msa.builtins.{}".format(module_name)) module.module_name = module_name plugin_modules.append(module) return plugin_modules
[docs]def load_plugin_modules(plugin_module_names, mode): """Loads plugin modules as specified in the configuration file. Parameters ---------- plugin_module_names : List[str] Plugin module names to load. Module names should be fully qualified modules existing in `msa.plugins`. mode : `msa.core.RunMode` The mode the system is being run in. Returns ------- """ plugin_modules = [] for module_name in plugin_module_names: module = importlib.import_module("msa.plugins.{}".format(module_name)) module.module_name = module_name if mode in module.PluginModule.allowed_modes: plugin_modules.append(module) return plugin_modules