This plugin manager is inspired by nose PluginManager(s) released under LGPL license. You can get a full copy of this license on nosetest repository:lgpl.txt You can get original nose code on github

Plugin Manager

A plugin manager class is used to load plugins, search among it and manage the list of loaded plugins. Plugins are loaded from entry points or can be added dynamically to manager.

  • To list plugins, see PluginManager.plugin() and PluginManager.plugins().
  • To add plugins dynamically, see PluginManager.add_plugin() and PluginManager.add_plugins().

All plugin are sorted in categories, each group defining a contract. This contract is generally described in an interface class or documentation.

If you want to use third party plugins that doesn't fit perfectly to your contract, you can embed its in plugin proxies. To do that, you can specify a proxy class for an entire group or for one plugin. See PluginManager.set_proxy() and "plugin_proxy" parameter in PluginManager.add_plugin().

class core.plugin.manager.PluginManager(items=None, item_proxy=None, autoload=['entry_points'])[source]

Bases: openalea.core.manager.GenericManager

discover(group=None, item_proxy=None)[source]
generate_item_id(plugin)[source]
classmethod generate_item_name(item)[source]
instantiate(item)[source]
patch_ep_plugin(plugin, ep)[source]
patch_item(item)[source]

Previous topic

<no title>

Next topic

<no title>

This Page