Plugin Support

Plugins are supported using the pluggy library.

Plugins can be created as python packages that contain the respective entrypoint definition in their setup.py file, like so:

from setuptools import setup

setup(
    ...
    entry_points={"renku": ["name_of_plugin = myproject.pluginmodule"]},
    ...
)

where myproject.pluginmodule points to a Renku hookimpl e.g.:

from renku.core.plugins import hookimpl

@hookimpl
def plugin_hook_implementation(param1, param2):
    ...

renku run hooks

Plugin hooks for renku run customization.

renku.core.plugins.run.cmdline_tool_annotations(tool)[source]

Plugin Hook to add Annotation entry list to a WorkflowTool.

Parameters:run – A WorkflowTool object to get annotations for.
Returns:A list of renku.core.models.cwl.annotation.Annotation objects.
renku.core.plugins.run.pre_run(tool)[source]

Plugin Hook that gets called at the start of a renku run call.

Can be used to setup plugins that get executed during the run.

Parameters:run – A WorkflowTool object that will get executed by renku run.
renku.core.plugins.run.process_run_annotations(run)[source]

Plugin Hook to add Annotation entry list to a ProcessRun.

Parameters:run – A ProcessRun object to get annotations for.
Returns:A list of renku.core.models.cwl.annotation.Annotation objects.