mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2026-01-14 19:44:22 +01:00
Gracefully handle plugin loading failure (#4994)
Co-authored-by: Reinier van der Leer <github@pwuts.nl>
This commit is contained in:
@@ -230,7 +230,11 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl
|
||||
plugin_module_name = plugin_module_path[-1]
|
||||
qualified_module_name = ".".join(plugin_module_path)
|
||||
|
||||
__import__(qualified_module_name)
|
||||
try:
|
||||
__import__(qualified_module_name)
|
||||
except:
|
||||
logger.error(f"Failed to load {qualified_module_name}")
|
||||
continue
|
||||
plugin = sys.modules[qualified_module_name]
|
||||
|
||||
if not plugins_config.is_enabled(plugin_module_name):
|
||||
@@ -254,7 +258,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl
|
||||
module = Path(module)
|
||||
logger.debug(f"Zipped Plugin: {plugin}, Module: {module}")
|
||||
zipped_package = zipimporter(str(plugin))
|
||||
zipped_module = zipped_package.load_module(str(module.parent))
|
||||
try:
|
||||
zipped_module = zipped_package.load_module(str(module.parent))
|
||||
except:
|
||||
logger.error(f"Failed to load {str(module.parent)}")
|
||||
|
||||
for key in dir(zipped_module):
|
||||
if key.startswith("__"):
|
||||
@@ -287,9 +294,11 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl
|
||||
f"Zipped plugins should use the class name ({plugin_name}) as the key."
|
||||
)
|
||||
else:
|
||||
if a_module.__name__ != "AutoGPTPluginTemplate":
|
||||
if (
|
||||
module_name := getattr(a_module, "__name__", str(a_module))
|
||||
) != "AutoGPTPluginTemplate":
|
||||
logger.debug(
|
||||
f"Skipping '{key}' because it doesn't subclass AutoGPTPluginTemplate."
|
||||
f"Skipping '{module_name}' because it doesn't subclass AutoGPTPluginTemplate."
|
||||
)
|
||||
|
||||
# OpenAI plugins
|
||||
|
||||
Reference in New Issue
Block a user