@samabbott and I had a productive discussion this morning about the prospects for an epinowcast command line interface (CLI).
In brief, the idea would be that for routine / pipeline style work, epinowcast could be invoked directly from the command line, specifying minimally the data + output location, but also various run configuration options. It should be installable via the standard R package installation process (possibly +1 step to tell command line where to find those scripts to run).
So rather than users writing their own invocation script (for use in, e.g., an HPC environment), they could do something like
$ enw mydata.csv -c myconfig.json # ... or flags for each arg, etc
… which would yield a results file when complete. Obviously, this would be a particular restricted way of running epinowcast, but the main limitation there seems to be not having the preprocessing functions.
Plausible there could also be a complementary distinct CLI for preprocessing, with its own mini language.
$ enwpre raw.csv -c preconfig.json # yields the processed file name
I can imagine that might not be enough, so of course users might still have to do some of their own gnarly preprocessing. If we provided them a template script generator that 1) takes arguments, 2) saves a file, 3) yields that file path and then they just have to fill in the internals, after they do that, could have:
$ enwcust custom.R superraw.csv -c ugly.json
(which might also do some things like check for a library(enwcli)
and then use of enwcli::emit()
and enwcli::store()
functions that ensure standardized outputs)
Then a workflow might look like:
$ enwcust custom.R superraw.csv -c ugly.json | enwpre -c preconfig.json | enw -c myconfig.json
Thoughts?