Skip to content

Spec Design Analysis

Jennings Zhang edited this page Jan 25, 2022 · 1 revision

Fundamentally, the spec of a ChRIS plugin is that it can be executed as

/path/to/interpreter /path/to/program [args...] /data/incoming/ /data/outgoing/

Existing programs cannot usually be executed in ChRIS as is: it is almost always necessary to write a (Python) wrapper around an existing program.

The spec is very minimal so much is left to the responsibility of plugin code, such as the logic for common and menial functionality such as getting the name for input files and creating a name for output files.

Examples:

Plugins following the naming convention pl-pfdo-* have duplicated code for reading input files and output files.

https://github.com/fnndsc/?q=pl-pfdo&type=all&language=&sort=

It is common for plugins to implement some kind of argument to select input files.