Uranium
Application Framework
UM.PluginRegistry.PluginRegistry Class Reference

A central object to dynamically load modules as plugins. More...

Inherits QObject.

Public Member Functions

None __init__ (self, "Application" application, QObject parent=None)
 
None initializeBeforePluginsAreLoaded (self)
 
None initializeAfterPluginsAreLoaded (self)
 
None addPluginLocation (self, str location)
 
bool checkRequiredPlugins (self, List[str] required_plugins)
 
None disablePlugin (self, str plugin_id)
 
None enablePlugin (self, str plugin_id)
 
List[str] getActivePlugins (self)
 
def getAllMetaData (self, **Any kwargs)
 
List[str] getDisabledPlugins (self)
 
List[str] getInstalledPlugins (self)
 
Dict[str, Any] getMetaData (self, str plugin_id)
 
Optional[Dict[str, str]] installPlugin (self, str plugin_path)
 
bool isActivePlugin (self, str plugin_id)
 
bool isBundledPlugin (self, str plugin_id)
 
None loadPlugins (self, Optional[Dict[str, Any]] metadata=None)
 Load all plugins matching a certain set of metadata. More...
 
bool isPluginApiVersionCompatible (self, "Version" plugin_api_version)
 
None loadPlugin (self, str plugin_id)
 
Dict[str, str] uninstallPlugin (self, str plugin_id)
 
PluginObject getPluginObject (self, str plugin_id)
 Get a speficic plugin object given an ID. More...
 
None addSupportedPluginExtension (self, str extension, str description)
 
List[str] supportedPluginExtensions (self)
 
Optional[str] getPluginPath (self, str plugin_id)
 Get the path to a plugin. More...
 
None addType (cls, str plugin_type, Callable[[Any], None] register_function)
 Add a new plugin type. More...
 
None removeType (cls, str plugin_type)
 Remove a plugin type. More...
 
"PluginRegistry" getInstance (cls, *args, **kwargs)
 

Static Public Attributes

 str
 
 result
 
 supportedPluginExtensionsChanged = pyqtSignal()
 
 notify
 

Detailed Description

A central object to dynamically load modules as plugins.

The PluginRegistry class can load modules dynamically and use them as plugins. Each plugin module is expected to be a directory with and __init__ file defining a getMetaData and a register function.

For more details, see the plugins file.

Member Function Documentation

◆ addType()

None UM.PluginRegistry.PluginRegistry.addType (   cls,
str  plugin_type,
Callable[[Any], None]  register_function 
)

Add a new plugin type.

This function is used to add new plugin types. Plugin types are simple string identifiers that match a certain plugin to a registration function.

The callable register_function is responsible for handling the object. Usually it will add the object to a list of objects in the relevant class. For example, the plugin type 'tool' has Controller::addTool as register function.

register_function will be called every time a plugin of type is loaded.

Parameters
typestring The name of the plugin type to add.
register_functioncallable A callable that takes an object as parameter.

◆ getPluginObject()

PluginObject UM.PluginRegistry.PluginRegistry.getPluginObject (   self,
str  plugin_id 
)

Get a speficic plugin object given an ID.

If not loaded, load it.

Parameters
plugin_idstring The ID of the plugin object to get.

◆ getPluginPath()

Optional[str] UM.PluginRegistry.PluginRegistry.getPluginPath (   self,
str  plugin_id 
)

Get the path to a plugin.

Parameters
plugin_idstring The ID of the plugin.
Returns
string The absolute path to the plugin or an empty string if the plugin could not be found.

◆ loadPlugins()

None UM.PluginRegistry.PluginRegistry.loadPlugins (   self,
Optional[Dict[str, Any]]   metadata = None 
)

Load all plugins matching a certain set of metadata.

Parameters
meta_datadict The meta data that needs to be matched.
See also
loadPlugin NOTE: This is the method which kicks everything off at app launch.

◆ removeType()

None UM.PluginRegistry.PluginRegistry.removeType (   cls,
str  plugin_type 
)

Remove a plugin type.

Parameters
typeThe plugin type to remove.

The documentation for this class was generated from the following file: