From 22c45b74190ebde4b7d8fa3b8a5cf22110ece914 Mon Sep 17 00:00:00 2001 From: AlexandreAdam Date: Thu, 11 Jul 2024 16:20:20 -0400 Subject: [PATCH] Added milex-initialize bundle --- pyproject.toml | 1 + src/milex_scheduler/apps/milex_initialize.py | 27 ++++++++++++++++++++ tests/unit/test_save_load_jobs.py | 5 ++++ 3 files changed, 33 insertions(+) create mode 100644 src/milex_scheduler/apps/milex_initialize.py diff --git a/pyproject.toml b/pyproject.toml index 4efe756..f4bca6d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,3 +28,4 @@ lint = [ milex-configuration = "milex_scheduler.apps.milex_configuration:main" milex-submit = "milex_scheduler.apps.milex_submit:main" milex-schedule = "milex_scheduler.apps.milex_schedule:main" +milex-initialize = "milex_scheduler.apps.milex_initialize:main" diff --git a/src/milex_scheduler/apps/milex_initialize.py b/src/milex_scheduler/apps/milex_initialize.py new file mode 100644 index 0000000..e023406 --- /dev/null +++ b/src/milex_scheduler/apps/milex_initialize.py @@ -0,0 +1,27 @@ +import argparse +from ..save_load_jobs import save_bundle + + +def parse_args(): + # fmt: off + parser = argparse.ArgumentParser(description='Initialize a bundle of jobs to run with SLURM') + parser.add_argument('bundle', help='Name of the job bundle (JSON file containing multiple jobs/scripts to be scheduled).') + # fmt: on + args = parser.parse_known_args() + return args + + +def cli(): + import sys + import json + + args, script_args = parse_args() + if script_args is None: + sys.exit(1) + print(json.dumps(vars(args), indent=4)) + sys.exit(0) + + +def main(): + args = parse_args() + save_bundle({}, args.bundle) diff --git a/tests/unit/test_save_load_jobs.py b/tests/unit/test_save_load_jobs.py index de231de..25cc5e4 100644 --- a/tests/unit/test_save_load_jobs.py +++ b/tests/unit/test_save_load_jobs.py @@ -261,6 +261,11 @@ def test_save_bundle_no_script_error(mock_load_config): save_bundle(bundle, bundle_name) +def test_save_bundle_initialize(mock_load_config): + bundle_name = "mock" + save_bundle({}, bundle_name) + + def test_save_job_with_same_name_in_append_mode(mock_load_config): # Check that new bundle is created with an index appended mock_jobA = {"name": "JobA", "script": "run-joba"}