From 50fcf7a6862fa96e2ebcdc3ac271dd3a6648251d Mon Sep 17 00:00:00 2001 From: DanSava Date: Fri, 30 Aug 2019 14:24:27 +0300 Subject: [PATCH] update rms script to use argparse --- python/tests/res/fm/test_rms_run.py | 8 +++ share/ert/forward-models/old_style/RMS | 2 +- share/ert/forward-models/res/script/rms | 83 ++++++++++++++++++++----- 3 files changed, 76 insertions(+), 17 deletions(-) diff --git a/python/tests/res/fm/test_rms_run.py b/python/tests/res/fm/test_rms_run.py index 1e5bcebaa8..2d1d977c03 100644 --- a/python/tests/res/fm/test_rms_run.py +++ b/python/tests/res/fm/test_rms_run.py @@ -170,11 +170,15 @@ def test_rms_load_env(self): rms_exec = os.path.join(self.SOURCE_ROOT, 'share/ert/forward-models/res/script/rms') subprocess.check_call([ rms_exec, + '--run-path', 'run_path', '0', + '--version', '10.4', 'project', + '--import-path', './', + '--export-path', './', 'workflow', ]) @@ -221,11 +225,15 @@ def test_rms_drop_env(self): rms_exec = os.path.join(self.SOURCE_ROOT, 'share/ert/forward-models/res/script/rms') subprocess.check_call([ rms_exec, + '--run-path', 'run_path', '0', + '--version', '10.4', 'project', + '--import-path', './', + '--export-path', './', 'workflow', ]) diff --git a/share/ert/forward-models/old_style/RMS b/share/ert/forward-models/old_style/RMS index a470b91c87..958a5e006a 100644 --- a/share/ert/forward-models/old_style/RMS +++ b/share/ert/forward-models/old_style/RMS @@ -4,6 +4,6 @@ DEFAULT ./ DEFAULT ./ DEFAULT rms/model TARGET_FILE -ARGLIST +ARGLIST "--run-path=" "--target-file=" "--import-path=" "--version=" "--export-path=" EXEC_ENV PYTHONPATH diff --git a/share/ert/forward-models/res/script/rms b/share/ert/forward-models/res/script/rms index b858f61f41..1997c54845 100755 --- a/share/ert/forward-models/res/script/rms +++ b/share/ert/forward-models/res/script/rms @@ -1,21 +1,72 @@ #!/usr/bin/env python -import sys +import argparse from res.fm.rms import run -run_path = sys.argv[1] -iens = int(sys.argv[2]) -version = sys.argv[3] -project = sys.argv[4] -export_path = sys.argv[5] -import_path = sys.argv[6] -workflow = sys.argv[7] -run(iens, - project, - workflow, - run_path, - target_file=None, - import_path=import_path, - export_path=export_path, - version=version, +def _build_argument_parser(): + description = 'Wrapper script to run rms.' + usage = ('The script must be invoked with minimum three positional arguments:\n\n' + ' rms iens project workflow \n\n' + 'Optional arguments supported: \n' + ' target file [-t][--target-file]\n' + ' run path [-t][--run-path] default=rms/model\n' + ' import path [-i][--import-path] default=./ \n' + ' export path [-e][--export-path] default=./ \n' + ' version [-v][--version]\n') + parser = argparse.ArgumentParser(description=description, usage=usage) + parser.add_argument( + 'iens', + help='Realization number', ) + parser.add_argument( + 'project', + help='The RMS project we are running', + ) + parser.add_argument( + 'workflow', + help='The rms workflow we intend to run', + ) + parser.add_argument( + '-r', '--run-path', + default='rms/model', + help='The directory which will be used as cwd when running rms', + ) + parser.add_argument( + '-t', '--target-file', + default=None, + help='name of file which should be created/updated by rms', + ) + parser.add_argument( + '-i', '--import-path', + default='./', + help='the prefix of all relative paths when rms is importing', + ) + parser.add_argument( + '-e', '--export-path', + default='./', + help='the prefix of all relative paths when rms is exporting', + ) + parser.add_argument( + '-v', '--version', + default=None, + help='the prefix of all relative paths when rms is exporting', + ) + return parser + + +# The first three arguments; iens, project and workflow are positional +# and *must* be supplied. The run_path and target_file arguments are optional. + +if __name__ == '__main__': + arg_parser = _build_argument_parser() + args = arg_parser.parse_args() + + run(args.iens, + args.project, + args.workflow, + run_path=args.run_path, + target_file=args.target_file, + import_path=args.import_path, + export_path=args.export_path, + version=args.version + )