diff options
author | Peter Petermann <ppetermann80@googlemail.com> | 2023-06-26 21:25:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-26 15:25:21 -0400 |
commit | 9e99db1d3eece38df7509b4797ec63cad26cb8de (patch) | |
tree | 7ba621c45668eeae339a582da5afbf1c08c649f5 | |
parent | Prevent docker-compose.yml and Dockerfile from being written (#4761) (diff) | |
download | Auto-GPT-9e99db1d3eece38df7509b4797ec63cad26cb8de.tar.gz Auto-GPT-9e99db1d3eece38df7509b4797ec63cad26cb8de.tar.bz2 Auto-GPT-9e99db1d3eece38df7509b4797ec63cad26cb8de.zip |
Only take subclasses of AutoGPTPluginTemplate as plugins
Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | autogpt/plugins/__init__.py | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore index 29a0285a8..1376ba5dd 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,7 @@ __pycache__/ build/ develop-eggs/ dist/ -plugins/ +/plugins/ plugins_config.yaml downloads/ eggs/ diff --git a/autogpt/plugins/__init__.py b/autogpt/plugins/__init__.py index d0a4864c5..30a43d9f0 100644 --- a/autogpt/plugins/__init__.py +++ b/autogpt/plugins/__init__.py @@ -259,9 +259,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl if key.startswith("__"): continue a_module = getattr(zipped_module, key) - a_keys = dir(a_module) + if ( - "_abc_impl" in a_keys + inspect.isclass(a_module) + and issubclass(a_module, AutoGPTPluginTemplate) and a_module.__name__ != "AutoGPTPluginTemplate" ): plugin_name = a_module.__name__ @@ -284,6 +285,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl f"they are enabled in plugins_config.yaml. Zipped plugins should use the class " f"name ({plugin_name}) as the key." ) + else: + logger.debug( + f"Skipping {key}: {a_module.__name__} because it doesn't subclass AutoGPTPluginTemplate." + ) # OpenAI plugins if config.plugins_openai: |