Plugin mechanism¶
CliMetLab plugins rely on the python plugins system using entry_points
.
- climetlab.core.plugins.directories(owner: bool = False) list ¶
Return a list of directories that are used in the project .
If owner = False, return a list of directories where to search for plugins.
If owner = True, return a list of 2-uples to include the owner in the return value.
- Parameters
owner (bool, optional) –
- climetlab.core.plugins.find_plugin(directories: Union[str, List[str]], name: str, loader)¶
Find a plugin by name .
- Parameters
directories (list or str) – List of directories to be searched to find the plugin.
name (str) – Name of the plugin
loader (class) – Class implementing load_yaml() and load_module()
- Returns
- Return type
Return what the loader will returns when applied to the plugin with the right name name, found in one of the directories of the directories list.
- Raises
NameError – If plugin is not found.
- climetlab.core.plugins.load_plugins(kind)¶
Loads the plugins for a given kind. The plugin needs to have registered itself with entry_point.
- Parameters
kind (str) – Plugin type such as “dataset” or “source”.
- climetlab.core.plugins.register(kind, name_or_module, module_or_none=None)¶
Register a plugin manually.
When installing a plugin (for instance with !pip install in a notebook), the pip package with register the plugin with the entry_points mechanism, but the currently runnning kernel will need to be restarted to take the change into account. Using
register()
alleviates this issue.- Parameters
kind (str) – Type of plugind.
name_or_module (str or module) – Name of the installed plugin to registed.
module_or_none (module, optional) – Module recently installed to be registered.