Plugin Support — Renku 0.10.5.dev72+dirty documentation

Join us on GitHub

# 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)

  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)

  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)

  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.