Allow to register callback after the pluginned classes got generated
This commit is contained in:
parent
fcfd428b54
commit
7153982981
1 changed files with 9 additions and 0 deletions
|
@ -15,6 +15,7 @@ class PluginManager:
|
||||||
self.subclass_order = {} # Record the load order of the plugins, to keep it after reload
|
self.subclass_order = {} # Record the load order of the plugins, to keep it after reload
|
||||||
self.pluggable = {}
|
self.pluggable = {}
|
||||||
self.plugin_names = [] # Loaded plugin names
|
self.plugin_names = [] # Loaded plugin names
|
||||||
|
self.after_load = [] # Execute functions after loaded plugins
|
||||||
|
|
||||||
sys.path.append(self.plugin_path)
|
sys.path.append(self.plugin_path)
|
||||||
|
|
||||||
|
@ -42,6 +43,9 @@ class PluginManager:
|
||||||
if dir_name not in self.plugin_names:
|
if dir_name not in self.plugin_names:
|
||||||
self.plugin_names.append(dir_name)
|
self.plugin_names.append(dir_name)
|
||||||
|
|
||||||
|
for func in self.after_load:
|
||||||
|
func()
|
||||||
|
|
||||||
# Reload all plugins
|
# Reload all plugins
|
||||||
def reloadPlugins(self):
|
def reloadPlugins(self):
|
||||||
self.plugins_before = self.plugins
|
self.plugins_before = self.plugins
|
||||||
|
@ -141,6 +145,11 @@ def registerTo(class_name):
|
||||||
return classDecorator
|
return classDecorator
|
||||||
|
|
||||||
|
|
||||||
|
def afterLoad(func):
|
||||||
|
plugin_manager.after_load.append(func)
|
||||||
|
return func
|
||||||
|
|
||||||
|
|
||||||
# - Example usage -
|
# - Example usage -
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue