ConfigurablePluginManager¶
Role¶
Defines plugin managers that can handle configuration files similar to the ini files manipulated by Python’s ConfigParser module.
API¶
-
class
yapsy.ConfigurablePluginManager.
ConfigurablePluginManager
(configparser_instance=None, config_change_trigger=<function ConfigurablePluginManager.<lambda>>, decorated_manager=None, categories_filter=None, directories_list=None, plugin_info_ext='yapsy-plugin')¶ A plugin manager that also manages a configuration file.
The configuration file will be accessed through a
ConfigParser
derivated object. The file can be used for other purpose by the application using this plugin manager as it will only add a new specific section[Plugin Management]
for itself and also new sections for some plugins that will start with[Plugin:...]
(only the plugins that explicitly requires to save configuration options will have this kind of section).Warning
when giving/building the list of plugins to activate by default, there must not be any space in the list (neither in the names nor in between)
The
config_change_trigger
argument can be used to set a specific method to call when the configuration is altered. This will let the client application manage the way they want the configuration to be updated (e.g. write on file at each change or at precise time intervalls or whatever….)Warning
when no
config_change_trigger
is given and if the providedconfigparser_instance
doesn’t handle it implicitely, recording the changes persistently (ie writing on the config file) won’t happen.-
CONFIG_SECTION_NAME
= 'Plugin Management'¶
-
activatePluginByName
(plugin_name, category_name='Default', save_state=True)¶ Activate a plugin, , and remember it (in the config file).
If you want the plugin to benefit from the configuration utility defined by this manager, it is crucial to use this method to activate a plugin and not call the plugin object’s
activate
method. In fact, this method will also “decorate” the plugin object so that it can use this class’s methods to register its own options.By default, the plugin’s activation is registered in the config file but if you d’ont want this set the ‘save_state’ argument to False.
-
deactivatePluginByName
(plugin_name, category_name='Default', save_state=True)¶ Deactivate a plugin, and remember it (in the config file).
By default, the plugin’s deactivation is registered in the config file but if you d’ont want this set the
save_state
argument to False.
-
hasOptionFromPlugin
(category_name, plugin_name, option_name)¶ To be called from a plugin object, return True if the option has already been registered.
-
loadPlugins
(callback=None, callback_after=None)¶ Walk through the plugins’ places and look for plugins. Then for each plugin candidate look for its category, load it and stores it in the appropriate slot of the
category_mapping
.
-
readOptionFromPlugin
(category_name, plugin_name, option_name)¶ To be called from a plugin object, read a given option in the name of a given plugin.
-
registerOptionFromPlugin
(category_name, plugin_name, option_name, option_value)¶ To be called from a plugin object, register a given option in the name of a given plugin.
-
setConfigParser
(configparser_instance, config_change_trigger)¶ Set the ConfigParser instance.
-