2024-05-04 22:57:24 +00:00
|
|
|
from importlib import import_module
|
|
|
|
|
|
|
|
|
|
|
|
def load_plugin(name: str, override_function: str | None = None):
|
|
|
|
plugin_entry = get_plugin_function(name, override_function)
|
|
|
|
return plugin_entry()
|
|
|
|
|
|
|
|
|
|
|
|
def get_plugin_function(name: str, override_function: str | None = None):
|
2024-06-16 22:52:15 +00:00
|
|
|
module_name, *rest = name.rsplit(":", 1)
|
|
|
|
function_name = rest[0] if rest else "init"
|
2024-05-04 22:57:24 +00:00
|
|
|
plugin_module = import_module(module_name)
|
|
|
|
return getattr(plugin_module, override_function or function_name)
|