Spaces:
Runtime error
Runtime error
Upload plugin_manager.py
Browse files- plugin_manager.py +20 -0
plugin_manager.py
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
class PluginManager:
|
3 |
+
def __init__(self):
|
4 |
+
self.tools = {}
|
5 |
+
|
6 |
+
def register(self, name, func):
|
7 |
+
if not callable(func):
|
8 |
+
raise ValueError(f"Plugin '{name}' is not callable.")
|
9 |
+
self.tools[name] = func
|
10 |
+
|
11 |
+
def list_plugins(self):
|
12 |
+
return list(self.tools.keys())
|
13 |
+
|
14 |
+
def call(self, name, *args, **kwargs):
|
15 |
+
if name not in self.tools:
|
16 |
+
return f"[PluginManager] Tool '{name}' not found."
|
17 |
+
try:
|
18 |
+
return self.tools[name](*args, **kwargs)
|
19 |
+
except Exception as e:
|
20 |
+
return f"[PluginManager Error] {str(e)}"
|