-
Notifications
You must be signed in to change notification settings - Fork 1
/
plugin.template
54 lines (40 loc) · 2.43 KB
/
plugin.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#! /usr/bin/env python3
"""
PALADIN plugin template.
All output (both stdout and stderr) must be routed through
the "core.main.send_output" method. Argument parsing, initialization, and
main program body must be registered as callbacks (initialization is optional)
as shown below. Argument parsing will be called prior to initialization, to allow
usage to be displayed prior to the plugin running any time consuming operations.
core.main.PaladinEntry.get_entries can be used for getting UniProt report data
core.main.SamEntry.get_entries can be used for getting SAM data
core.filestore.FileStore provides file and download management
core.datastore.DataStore provides sqlite connectivity
The crossref module provides common ID lookups
See core and plugins for other API methods. When calling methods from other plugins,
be sure to list them as dependencies in the plugin definition.
Core modules must be included using Python import, while plugins must not.
"""
import argparse
import shlex
import core.main
def plugin_connect(definition):
""" Plugin definition """
definition.name = "pluginName" # Plugin name shown in plugin list (should match filename so user knows what to type eg @@pluginName)
definition.description = "Plugin Description" # Plugin description shown in plugin list
definition.version_major = 1 # Plugin version shown in plugin list
definition.version_minor = 0
definition.version_revision = 0
definition.dependencies = ['aggregation'] # If plugin depends on other plugins, specify their plugin name here
definition.callback_args = template_args # Reference plugin argument parsing method here. Will receive plugin arguments string. Required.
# definition.callback_init = template_init # Reference plugin initialization method here (run once at startup after arg parsing). Not required.
definition.callback_main = template_main # Reference plugin main method here. Will receive plugin arguments. Required.
def template_args(subargs):
""" Parse arguments """
arg_parser = argparse.ArgumentParser(description='PALADIN Pipeline Plugins: Your plugin', prog='your plugin')
arg_parser.add_argument('-a', metavar='ARG1', type=str, help='Arg 1')
arg_parser.add_argument('-b', metavar='ARG2', type=int, required=True, help='Arg 2')
return arg_parser.parse_known_args(shlex.split(subargs))
def template_main(args):
""" Main program """
core.main.send_output('Unimplemented', 'stderr')