--- title: Plugins keywords: fastai sidebar: home_sidebar nb_path: "nbs/plugin.pluginbase.ipynb" ---
{% raw %}
{% endraw %} {% raw %}
{% endraw %} {% raw %}
{% endraw %}

Let's use the following plugin as an example of how we can start plugins.

class MyPlugin(PluginBase):
    properties = PluginBase.properties
    edges= PluginBase.edges

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.pluginPackage="pymemri.plugin.pluginbase"

    def run(self, run, client):
        print("running")
{% raw %}
from pymemri.pod.client import PodClient
client = PodClient()
{% endraw %} {% raw %}
assert client.add_to_schema(MyPlugin(name="abc", data_query="abc"))
assert client.add_to_schema(PluginRun())
{% endraw %} {% raw %}
plugin = MyPlugin(name="abc", data_query="abc")
run = PluginRun()
run.add_edge("plugin", plugin)
{% endraw %} {% raw %}
client.create(run)
client.create(plugin)
client.create_edge(run.get_edges("plugin")[0])
True
{% endraw %}

Running your plugin

Plugins can be started using the pymemri run_plugin CLI. To use the CLI, you can either pass your run arguments as parameters, or set them as environment variables. If both are set, the CLI will prefer the passed arguments.

{% raw %}
{% endraw %}

CLI

{% raw %}

run_plugin[source]

run_plugin(pod_full_address:Param object at 0x7f8b44dde250>=None, plugin_run_id:Param object at 0x7f8b44dde190>=None, database_key:Param object at 0x7f8b40d085d0>=None, owner_key:Param object at 0x7f8b44fafc90>=None)

{% endraw %} {% raw %}
{% endraw %} {% raw %}
!run_plugin --pod_full_address=$DEFAULT_POD_ADDRESS --plugin_run_id=$run.id --owner_key=$client.owner_key \
            --database_key=$client.database_key
Used arguments passed to `run_plugin()` (ignoring environment)
pod_full_address=http://localhost:3030
plugin_run_id=61274342a226fe9ecb5d0efeb50ebc64
database_key=2275799687202554321586156394256447011413538728384161840804653842
owner_key=7877526860202989541720539875881419199482049862866439964933736900

running
{% endraw %}