cement.ext.ext_plugin

The Plugin Extension handles application plugin support, and is the default plugin handler used by Cement.

Requirements

  • No external dependencies

Configuration

This extension does not directly honor any configuration settings.

Usage

For usage information see Application Plugins.

class cement.ext.ext_plugin.CementPluginHandler

Bases: cement.core.plugin.CementPluginHandler

This class is an internal implementation of the IPlugin interface. It does not take any parameters on initialization.

class Meta

Handler meta-data.

interface

The interface that this class implements.

alias of cement.core.plugin.IPlugin

label = 'cement'

The string identifier for this class.

_load_plugin_from_bootstrap(plugin_name, base_package)

Load a plugin from a python package. Returns True if no ImportError is encountered.

Parameters:
  • plugin_name (str) – The name of the plugin, also the name of the module to load from base_package. I.e. myapp.bootstrap.myplugin
  • base_package (str) – The base python package to load the plugin module from. I.e.’myapp.bootstrap’ or similar.
Returns:

True is the plugin was loaded, False otherwise

Raises:

ImportError

_load_plugin_from_dir(plugin_name, plugin_dir)

Load a plugin from a directory path rather than a python package within sys.path. This would either be myplugin.py or myplugin/__init__.py within the given plugin_dir.

Parameters:
  • plugin_name – The name of the plugin.
  • plugin_dir – The filesystem directory path where the plugin exists.
_setup(app_obj)

The _setup function is called during application initialization and must setup the handler object making it ready for the framework or the application to make further calls to it.

Parameters:app_obj – The application object.
Returns:None
get_disabled_plugins()

List of disabled plugins

get_enabled_plugins()

List of plugins that are enabled (not necessary loaded yet).

get_loaded_plugins()

List of plugins that have been loaded.

load_plugin(plugin_name)

Load a plugin whose name is plugin_name. First attempt to load from a plugin directory (plugin_dir), secondly attempt to load from a bootstrap module (plugin_bootstrap) determined by CementApp.Meta.plugin_bootstrap.

Upon successful loading of a plugin, the plugin name is appended to the self._loaded_plugins list.

Parameters:plugin_name (str) – The name of the plugin to load.
Raises:cement.core.exc.FrameworkError
load_plugins(plugin_list)

Load a list of plugins. Each plugin name is passed to self.load_plugin().

Parameters:plugin_list – A list of plugin names to load.