Add LbExec implementation
This merge request is adds the lbexec
command proposed in #198 (closed) and the associated Options
class. After Moore
and DaVinci
are adapted I'll make a follow-up merge request to remove the ApplicationOptions
class and start cleaning up/adapating the tests.
This turned into quite a lot of code when compared to the prototype to however the majority of it is test code and error handling. In particular it tries to give people a more helpful message when the application is already doomed to fail (expand below for examples).
lbexec --help
usage: lbexec [-h] [--dry-run] [--export EXPORT] function options [extra_args ...]
positional arguments:
function Function to call with the options that will return the configuration. Given in the form 'my_module:function_name'.
options YAML data to populate the Application.Options object with. Multiple files can merged using 'file1.yaml+file2.yaml'.
extra_args
optional arguments:
-h, --help show this help message and exit
--dry-run Do not run the application, just generate the configuration.
--export EXPORT Write a file containing the full options (use "-" for stdout)
Error handling examples
Wrong specification of the function to run
options.yaml
file(s)
Bad contents of the
lbexec
's implementation details
Tracebacks don't include
Related to DPA tasks lhcb-dpa/analysis-productions/LbAnalysisProductions#69 (closed) and lhcb-dpa/analysis-productions/LbAnalysisProductions#68 (closed).
Edited by Eduardo Rodrigues