diff --git a/src/sirocco/core/workflow.py b/src/sirocco/core/workflow.py index 00fa1f6..6a3b3a1 100644 --- a/src/sirocco/core/workflow.py +++ b/src/sirocco/core/workflow.py @@ -18,7 +18,7 @@ class Workflow: - """Internal reprensentation of a workflow""" + """Internal representation of a workflow""" def __init__(self, workflow_config: ConfigWorkflow) -> None: self.name = workflow_config.name diff --git a/src/sirocco/parsing/_yaml_data_models.py b/src/sirocco/parsing/_yaml_data_models.py index 1bf7b6c..30f2b79 100644 --- a/src/sirocco/parsing/_yaml_data_models.py +++ b/src/sirocco/parsing/_yaml_data_models.py @@ -82,6 +82,43 @@ def convert_datetime(cls, value) -> datetime: return datetime.fromisoformat(value) +class _CliArgsBaseModel(BaseModel): + """Base class for cli_arguments specifications""" + + # TODO: Even allow for `str`, or always require list? + positional: str | list[str] | None = None + # Field needed for child class doing pydantic parsing + keyword: dict[str, str] | None = Field(default_factory=dict) + flags: str | list[str] | None = None + source_file: str | list[str] | None = None + + # TODO: Should we allow users to pass it without the hyphen(s), and prepend them automatically? + # TODO: While convenient, it could be a bad idea, if users put in wrong things. Better to be explicit. + @field_validator("keyword", mode="before") + @classmethod + def validate_keyword_args(cls, value): + """Ensure keyword arguments start with '-' or '--'.""" + if value is not None: + invalid_keys = [key for key in value if not key.startswith(("-", "--"))] + if invalid_keys: + invalid_kwarg_exc = f"Invalid keyword arguments: {', '.join(invalid_keys)}" + raise ValueError(invalid_kwarg_exc) + return value + + @field_validator("flags", mode="before") + @classmethod + def validate_flag_args(cls, value): + """Ensure positional arguments start with '-' or '--'.""" + if value is not None: + if isinstance(value, str): + value = [value] + invalid_flags = [arg for arg in value if not arg.startswith(("-", "--"))] + if invalid_flags: + invalid_flags_exc = f"Invalid positional arguments: {', '.join(invalid_flags)}" + raise ValueError(invalid_flags_exc) + return value + + class TargetNodesBaseModel(_NamedBaseModel): """class for targeting other task or data nodes in the graph @@ -273,9 +310,7 @@ class ConfigRootTask(ConfigBaseTask): class ConfigShellTaskSpecs: plugin: ClassVar[Literal["shell"]] = "shell" command: str = "" - command_option: str = "" - input_arg_options: dict[str, str] = Field(default_factory=dict) # noqa: RUF009 Field needed - # for child class doing pydantic parsing + cli_arguments: _CliArgsBaseModel | None = None src: str | None = None diff --git a/tests/files/configs/test_config_large.yml b/tests/files/configs/test_config_large.yml index 2326e53..05c261b 100644 --- a/tests/files/configs/test_config_large.yml +++ b/tests/files/configs/test_config_large.yml @@ -44,7 +44,6 @@ cycles: inputs: - stream_2: lag: ['P0M', 'P2M', 'P4M', 'P6M', 'P8M', 'P10M'] - arg_option: --input outputs: [postout_2] - store_and_clean_2: inputs: @@ -63,9 +62,11 @@ tasks: - extpar: plugin: shell # no extpar plugin available yet command: $PWD/examples/files/scripts/extpar - command_option: '--verbose' # todo implement support - input_arg_options: - obs_data: '--input' + cli_arguments: + keyword: + --input: obs_data + flags: + - --verbose uenv: squashfs: path/to/squashfs mount_point: runtime/mount/point @@ -74,10 +75,13 @@ tasks: - preproc: plugin: shell command: $PWD/examples/files/scripts/cleanup.sh - input_arg_options: - grid_file: '-g' - extpar_file : '-p' - ERA5: '-e' + cli_arguments: + positional: + - grid_file + keyword: + -p: extpar_file + -e: ERA5 + source_file: dummy_source_file nodes: 4 walltime: 00:02:00 uenv: @@ -86,9 +90,10 @@ tasks: - icon: plugin: icon command: $PWD/examples/files/scripts/icon - input_arg_options: - grid_file: '-g' - icon_input: '--input' + cli_arguments: + keyword: + -g: grid_file + --input: icon_input nodes: 40 walltime: 23:59:59 namelists: @@ -100,8 +105,9 @@ tasks: - postproc_1: plugin: shell command: $PWD/examples/files/scripts/main_script_ocn.sh - input_arg_options: - stream_1: '--input' + cli_arguments: + keyword: + --input: stream_1 nodes: 2 walltime: 00:05:00 uenv: @@ -110,8 +116,12 @@ tasks: - postproc_2: plugin: shell command: $PWD/examples/files/scripts/main_script_atm.sh - input_arg_options: - stream_2: '--input' + cli_arguments: + keyword: + --input: stream_2 + # `arg_option` should be in `tasks` section instead + # How to implement this? Even needed with keyword-arguments? + # arg_option: --input nodes: 2 walltime: 00:05:00 src: path/to/src/dir @@ -121,17 +131,19 @@ tasks: - store_and_clean_1: plugin: shell command: $PWD/examples/files/scripts/post_clean.sh - input_arg_options: - postout_1: '--input' - stream_1: '--stream' - icon_input: '--icon_input' + cli_arguments: + keyword: + --input: postout_1 + --stream: stream_1 + --icon_input: icon_input nodes: 1 walltime: 00:01:00 - store_and_clean_2: plugin: shell command: $PWD/examples/files/scripts/post_clean.sh - input_arg_options: - postout_2: '--input' + cli_arguments: + keyword: + --input: postout_2 nodes: 1 walltime: 00:01:00 data: @@ -145,6 +157,9 @@ data: - ERA5: type: file src: $PWD/examples/files/data/era5 + - dummy_source_file: + type: file + src: $PWD/examples/files/data/dummy_source_file.sh generated: - extpar_file: type: file diff --git a/tests/files/configs/test_config_parameters.yml b/tests/files/configs/test_config_parameters.yml index 8cccac9..ec993af 100644 --- a/tests/files/configs/test_config_parameters.yml +++ b/tests/files/configs/test_config_parameters.yml @@ -46,8 +46,9 @@ tasks: - icon: plugin: shell command: $PWD/tests/files/scripts/icon.py - input_arg_options: - icon_restart: '--restart' + cli_arguments: + keyword: + --restart: icon_restart parameters: [foo, bar] - statistics_foo: plugin: shell diff --git a/tests/files/configs/test_config_small.yml b/tests/files/configs/test_config_small.yml index 1c72188..8b163fc 100644 --- a/tests/files/configs/test_config_small.yml +++ b/tests/files/configs/test_config_small.yml @@ -24,8 +24,9 @@ tasks: - icon: plugin: shell command: $PWD/tests/files/scripts/icon.py - input_arg_options: - icon_restart: '--restart' + cli_arguments: + keyword: + --restart: icon_restart - cleanup: plugin: shell command: $PWD/tests/files/scripts/cleanup.py diff --git a/tests/files/data/test_config_large.txt b/tests/files/data/test_config_large.txt index c05bd6d..41ab797 100644 --- a/tests/files/data/test_config_large.txt +++ b/tests/files/data/test_config_large.txt @@ -13,8 +13,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/extpar' - command option: '--verbose' - input arg options: {'obs_data': '--input'} + cli arguments: positional=None keyword={'--input': 'obs_data'} flags=['--verbose'] source_file=None - icon_bimonthly [date: 2025-01-01 00:00:00]: tasks: - preproc [date: 2025-01-01 00:00:00]: @@ -31,8 +30,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-01-01 00:00:00]: input: - grid_file @@ -60,8 +58,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-01-01 00:00:00]: input: - postout_1 [date: 2025-01-01 00:00:00] @@ -75,8 +72,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2025-03-01 00:00:00]: tasks: - preproc [date: 2025-03-01 00:00:00]: @@ -93,8 +89,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-03-01 00:00:00]: input: - grid_file @@ -123,8 +118,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-03-01 00:00:00]: input: - postout_1 [date: 2025-03-01 00:00:00] @@ -138,8 +132,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2025-05-01 00:00:00]: tasks: - preproc [date: 2025-05-01 00:00:00]: @@ -158,8 +151,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-05-01 00:00:00]: input: - grid_file @@ -188,8 +180,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-05-01 00:00:00]: input: - postout_1 [date: 2025-05-01 00:00:00] @@ -203,8 +194,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2025-07-01 00:00:00]: tasks: - preproc [date: 2025-07-01 00:00:00]: @@ -223,8 +213,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-07-01 00:00:00]: input: - grid_file @@ -253,8 +242,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-07-01 00:00:00]: input: - postout_1 [date: 2025-07-01 00:00:00] @@ -268,8 +256,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2025-09-01 00:00:00]: tasks: - preproc [date: 2025-09-01 00:00:00]: @@ -288,8 +275,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-09-01 00:00:00]: input: - grid_file @@ -318,8 +304,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-09-01 00:00:00]: input: - postout_1 [date: 2025-09-01 00:00:00] @@ -333,8 +318,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2025-11-01 00:00:00]: tasks: - preproc [date: 2025-11-01 00:00:00]: @@ -353,8 +337,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2025-11-01 00:00:00]: input: - grid_file @@ -383,8 +366,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2025-11-01 00:00:00]: input: - postout_1 [date: 2025-11-01 00:00:00] @@ -398,8 +380,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-01-01 00:00:00]: tasks: - preproc [date: 2026-01-01 00:00:00]: @@ -418,8 +399,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-01-01 00:00:00]: input: - grid_file @@ -448,8 +428,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-01-01 00:00:00]: input: - postout_1 [date: 2026-01-01 00:00:00] @@ -463,8 +442,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-03-01 00:00:00]: tasks: - preproc [date: 2026-03-01 00:00:00]: @@ -483,8 +461,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-03-01 00:00:00]: input: - grid_file @@ -513,8 +490,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-03-01 00:00:00]: input: - postout_1 [date: 2026-03-01 00:00:00] @@ -528,8 +504,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-05-01 00:00:00]: tasks: - preproc [date: 2026-05-01 00:00:00]: @@ -548,8 +523,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-05-01 00:00:00]: input: - grid_file @@ -578,8 +552,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-05-01 00:00:00]: input: - postout_1 [date: 2026-05-01 00:00:00] @@ -593,8 +566,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-07-01 00:00:00]: tasks: - preproc [date: 2026-07-01 00:00:00]: @@ -613,8 +585,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-07-01 00:00:00]: input: - grid_file @@ -643,8 +614,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-07-01 00:00:00]: input: - postout_1 [date: 2026-07-01 00:00:00] @@ -658,8 +628,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-09-01 00:00:00]: tasks: - preproc [date: 2026-09-01 00:00:00]: @@ -678,8 +647,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-09-01 00:00:00]: input: - grid_file @@ -708,8 +676,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-09-01 00:00:00]: input: - postout_1 [date: 2026-09-01 00:00:00] @@ -723,8 +690,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - icon_bimonthly [date: 2026-11-01 00:00:00]: tasks: - preproc [date: 2026-11-01 00:00:00]: @@ -743,8 +709,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=2, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/cleanup.sh' - command option: '' - input arg options: {'grid_file': '-g', 'extpar_file': '-p', 'ERA5': '-e'} + cli arguments: positional=['grid_file'] keyword={'-p': 'extpar_file', '-e': 'ERA5'} flags=None source_file='dummy_source_file' - icon [date: 2026-11-01 00:00:00]: input: - grid_file @@ -773,8 +738,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_ocn.sh' - command option: '' - input arg options: {'stream_1': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_1'} flags=None source_file=None - store_and_clean_1 [date: 2026-11-01 00:00:00]: input: - postout_1 [date: 2026-11-01 00:00:00] @@ -788,8 +752,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_1': '--input', 'stream_1': '--stream', 'icon_input': '--icon_input'} + cli arguments: positional=None keyword={'--input': 'postout_1', '--stream': 'stream_1', '--icon_input': 'icon_input'} flags=None source_file=None - yearly [date: 2025-01-01 00:00:00]: tasks: - postproc_2 [date: 2025-01-01 00:00:00]: @@ -809,8 +772,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_atm.sh' - command option: '' - input arg options: {'stream_2': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_2'} flags=None source_file=None src: 'path/to/src/dir' - store_and_clean_2 [date: 2025-01-01 00:00:00]: input: @@ -829,8 +791,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_2': '--input'} + cli arguments: positional=None keyword={'--input': 'postout_2'} flags=None source_file=None - yearly [date: 2026-01-01 00:00:00]: tasks: - postproc_2 [date: 2026-01-01 00:00:00]: @@ -850,8 +811,7 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=5, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/main_script_atm.sh' - command option: '' - input arg options: {'stream_2': '--input'} + cli arguments: positional=None keyword={'--input': 'stream_2'} flags=None source_file=None src: 'path/to/src/dir' - store_and_clean_2 [date: 2026-01-01 00:00:00]: input: @@ -870,5 +830,4 @@ cycles: walltime: time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) plugin: 'shell' command: '$PWD/examples/files/scripts/post_clean.sh' - command option: '' - input arg options: {'postout_2': '--input'} \ No newline at end of file + cli arguments: positional=None keyword={'--input': 'postout_2'} flags=None source_file=None \ No newline at end of file diff --git a/tests/files/data/test_config_parameters.txt b/tests/files/data/test_config_parameters.txt index 05702b0..e64a52c 100644 --- a/tests/files/data/test_config_parameters.txt +++ b/tests/files/data/test_config_parameters.txt @@ -12,8 +12,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-01-01 00:00:00, foo: 0, bar: 3.5]: input: - initial conditions @@ -25,8 +24,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-01-01 00:00:00, foo: 1, bar: 3.0]: input: - initial conditions @@ -38,8 +36,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-01-01 00:00:00, foo: 1, bar: 3.5]: input: - initial conditions @@ -51,8 +48,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-01-01 00:00:00, foo: 2, bar: 3.0]: input: - initial conditions @@ -64,8 +60,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-01-01 00:00:00, foo: 2, bar: 3.5]: input: - initial conditions @@ -77,8 +72,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-01-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.0] @@ -90,8 +84,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-01-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.5] @@ -103,8 +95,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-01-01 00:00:00]: input: - analysis_foo [date: 2026-01-01 00:00:00, bar: 3.5] @@ -115,8 +105,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2026-03-01 00:00:00]: tasks: - icon [date: 2026-03-01 00:00:00, foo: 0, bar: 3.0]: @@ -130,8 +118,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-03-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-01-01 00:00:00, foo: 0, bar: 3.5] @@ -143,8 +130,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-03-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-01-01 00:00:00, foo: 1, bar: 3.0] @@ -156,8 +142,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-03-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-01-01 00:00:00, foo: 1, bar: 3.5] @@ -169,8 +154,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-03-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-01-01 00:00:00, foo: 2, bar: 3.0] @@ -182,8 +166,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-03-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-01-01 00:00:00, foo: 2, bar: 3.5] @@ -195,8 +178,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-03-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-03-01 00:00:00, foo: 0, bar: 3.0] @@ -208,8 +190,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-03-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-03-01 00:00:00, foo: 0, bar: 3.5] @@ -221,8 +201,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-03-01 00:00:00]: input: - analysis_foo [date: 2026-03-01 00:00:00, bar: 3.5] @@ -233,8 +211,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2026-05-01 00:00:00]: tasks: - icon [date: 2026-05-01 00:00:00, foo: 0, bar: 3.0]: @@ -248,8 +224,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-05-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-03-01 00:00:00, foo: 0, bar: 3.5] @@ -261,8 +236,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-05-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-03-01 00:00:00, foo: 1, bar: 3.0] @@ -274,8 +248,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-05-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-03-01 00:00:00, foo: 1, bar: 3.5] @@ -287,8 +260,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-05-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-03-01 00:00:00, foo: 2, bar: 3.0] @@ -300,8 +272,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-05-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-03-01 00:00:00, foo: 2, bar: 3.5] @@ -313,8 +284,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-05-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-05-01 00:00:00, foo: 0, bar: 3.0] @@ -326,8 +296,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-05-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-05-01 00:00:00, foo: 0, bar: 3.5] @@ -339,8 +307,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-05-01 00:00:00]: input: - analysis_foo [date: 2026-05-01 00:00:00, bar: 3.5] @@ -351,8 +317,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2026-07-01 00:00:00]: tasks: - icon [date: 2026-07-01 00:00:00, foo: 0, bar: 3.0]: @@ -366,8 +330,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-07-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-05-01 00:00:00, foo: 0, bar: 3.5] @@ -379,8 +342,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-07-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-05-01 00:00:00, foo: 1, bar: 3.0] @@ -392,8 +354,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-07-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-05-01 00:00:00, foo: 1, bar: 3.5] @@ -405,8 +366,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-07-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-05-01 00:00:00, foo: 2, bar: 3.0] @@ -418,8 +378,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-07-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-05-01 00:00:00, foo: 2, bar: 3.5] @@ -431,8 +390,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-07-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-07-01 00:00:00, foo: 0, bar: 3.0] @@ -444,8 +402,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-07-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-07-01 00:00:00, foo: 0, bar: 3.5] @@ -457,8 +413,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-07-01 00:00:00]: input: - analysis_foo [date: 2026-07-01 00:00:00, bar: 3.5] @@ -469,8 +423,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 7, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2026-09-01 00:00:00]: tasks: - icon [date: 2026-09-01 00:00:00, foo: 0, bar: 3.0]: @@ -484,8 +436,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-09-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-07-01 00:00:00, foo: 0, bar: 3.5] @@ -497,8 +448,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-09-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-07-01 00:00:00, foo: 1, bar: 3.0] @@ -510,8 +460,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-09-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-07-01 00:00:00, foo: 1, bar: 3.5] @@ -523,8 +472,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-09-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-07-01 00:00:00, foo: 2, bar: 3.0] @@ -536,8 +484,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-09-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-07-01 00:00:00, foo: 2, bar: 3.5] @@ -549,8 +496,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-09-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-09-01 00:00:00, foo: 0, bar: 3.0] @@ -562,8 +508,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-09-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-09-01 00:00:00, foo: 0, bar: 3.5] @@ -575,8 +519,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-09-01 00:00:00]: input: - analysis_foo [date: 2026-09-01 00:00:00, bar: 3.5] @@ -587,8 +529,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 9, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2026-11-01 00:00:00]: tasks: - icon [date: 2026-11-01 00:00:00, foo: 0, bar: 3.0]: @@ -602,8 +542,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-11-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-09-01 00:00:00, foo: 0, bar: 3.5] @@ -615,8 +554,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-11-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-09-01 00:00:00, foo: 1, bar: 3.0] @@ -628,8 +566,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-11-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-09-01 00:00:00, foo: 1, bar: 3.5] @@ -641,8 +578,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-11-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-09-01 00:00:00, foo: 2, bar: 3.0] @@ -654,8 +590,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2026-11-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-09-01 00:00:00, foo: 2, bar: 3.5] @@ -667,8 +602,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2026-11-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2026-11-01 00:00:00, foo: 0, bar: 3.0] @@ -680,8 +614,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2026-11-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2026-11-01 00:00:00, foo: 0, bar: 3.5] @@ -693,8 +625,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2026-11-01 00:00:00]: input: - analysis_foo [date: 2026-11-01 00:00:00, bar: 3.5] @@ -705,8 +635,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 11, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-01-01 00:00:00]: tasks: - icon [date: 2027-01-01 00:00:00, foo: 0, bar: 3.0]: @@ -720,8 +648,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-01-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2026-11-01 00:00:00, foo: 0, bar: 3.5] @@ -733,8 +660,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-01-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2026-11-01 00:00:00, foo: 1, bar: 3.0] @@ -746,8 +672,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-01-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2026-11-01 00:00:00, foo: 1, bar: 3.5] @@ -759,8 +684,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-01-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2026-11-01 00:00:00, foo: 2, bar: 3.0] @@ -772,8 +696,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-01-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2026-11-01 00:00:00, foo: 2, bar: 3.5] @@ -785,8 +708,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-01-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-01-01 00:00:00, foo: 0, bar: 3.0] @@ -798,8 +720,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-01-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-01-01 00:00:00, foo: 0, bar: 3.5] @@ -811,8 +731,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-01-01 00:00:00]: input: - analysis_foo [date: 2027-01-01 00:00:00, bar: 3.5] @@ -823,8 +741,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-03-01 00:00:00]: tasks: - icon [date: 2027-03-01 00:00:00, foo: 0, bar: 3.0]: @@ -838,8 +754,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-03-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2027-01-01 00:00:00, foo: 0, bar: 3.5] @@ -851,8 +766,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-03-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2027-01-01 00:00:00, foo: 1, bar: 3.0] @@ -864,8 +778,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-03-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2027-01-01 00:00:00, foo: 1, bar: 3.5] @@ -877,8 +790,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-03-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2027-01-01 00:00:00, foo: 2, bar: 3.0] @@ -890,8 +802,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-03-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2027-01-01 00:00:00, foo: 2, bar: 3.5] @@ -903,8 +814,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-03-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-03-01 00:00:00, foo: 0, bar: 3.0] @@ -916,8 +826,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-03-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-03-01 00:00:00, foo: 0, bar: 3.5] @@ -929,8 +837,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-03-01 00:00:00]: input: - analysis_foo [date: 2027-03-01 00:00:00, bar: 3.5] @@ -941,8 +847,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 3, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-05-01 00:00:00]: tasks: - icon [date: 2027-05-01 00:00:00, foo: 0, bar: 3.0]: @@ -956,8 +860,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-05-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2027-03-01 00:00:00, foo: 0, bar: 3.5] @@ -969,8 +872,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-05-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2027-03-01 00:00:00, foo: 1, bar: 3.0] @@ -982,8 +884,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-05-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2027-03-01 00:00:00, foo: 1, bar: 3.5] @@ -995,8 +896,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-05-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2027-03-01 00:00:00, foo: 2, bar: 3.0] @@ -1008,8 +908,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-05-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2027-03-01 00:00:00, foo: 2, bar: 3.5] @@ -1021,8 +920,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-05-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-05-01 00:00:00, foo: 0, bar: 3.0] @@ -1034,8 +932,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-05-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-05-01 00:00:00, foo: 0, bar: 3.5] @@ -1047,8 +943,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-05-01 00:00:00]: input: - analysis_foo [date: 2027-05-01 00:00:00, bar: 3.5] @@ -1059,8 +953,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 5, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-07-01 00:00:00]: tasks: - icon [date: 2027-07-01 00:00:00, foo: 0, bar: 3.0]: @@ -1074,8 +966,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-07-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2027-05-01 00:00:00, foo: 0, bar: 3.5] @@ -1087,8 +978,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-07-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2027-05-01 00:00:00, foo: 1, bar: 3.0] @@ -1100,8 +990,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-07-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2027-05-01 00:00:00, foo: 1, bar: 3.5] @@ -1113,8 +1002,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-07-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2027-05-01 00:00:00, foo: 2, bar: 3.0] @@ -1126,8 +1014,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-07-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2027-05-01 00:00:00, foo: 2, bar: 3.5] @@ -1139,8 +1026,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-07-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-07-01 00:00:00, foo: 0, bar: 3.0] @@ -1152,8 +1038,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-07-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-07-01 00:00:00, foo: 0, bar: 3.5] @@ -1165,8 +1049,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-07-01 00:00:00]: input: - analysis_foo [date: 2027-07-01 00:00:00, bar: 3.5] @@ -1177,8 +1059,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 7, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-09-01 00:00:00]: tasks: - icon [date: 2027-09-01 00:00:00, foo: 0, bar: 3.0]: @@ -1192,8 +1072,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-09-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2027-07-01 00:00:00, foo: 0, bar: 3.5] @@ -1205,8 +1084,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-09-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2027-07-01 00:00:00, foo: 1, bar: 3.0] @@ -1218,8 +1096,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-09-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2027-07-01 00:00:00, foo: 1, bar: 3.5] @@ -1231,8 +1108,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-09-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2027-07-01 00:00:00, foo: 2, bar: 3.0] @@ -1244,8 +1120,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-09-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2027-07-01 00:00:00, foo: 2, bar: 3.5] @@ -1257,8 +1132,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-09-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-09-01 00:00:00, foo: 0, bar: 3.0] @@ -1270,8 +1144,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-09-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-09-01 00:00:00, foo: 0, bar: 3.5] @@ -1283,8 +1155,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-09-01 00:00:00]: input: - analysis_foo [date: 2027-09-01 00:00:00, bar: 3.5] @@ -1295,8 +1165,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 9, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - bimonthly_tasks [date: 2027-11-01 00:00:00]: tasks: - icon [date: 2027-11-01 00:00:00, foo: 0, bar: 3.0]: @@ -1310,8 +1178,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 0, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-11-01 00:00:00, foo: 0, bar: 3.5]: input: - icon_restart [date: 2027-09-01 00:00:00, foo: 0, bar: 3.5] @@ -1323,8 +1190,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 0, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-11-01 00:00:00, foo: 1, bar: 3.0]: input: - icon_restart [date: 2027-09-01 00:00:00, foo: 1, bar: 3.0] @@ -1336,8 +1202,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 1, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-11-01 00:00:00, foo: 1, bar: 3.5]: input: - icon_restart [date: 2027-09-01 00:00:00, foo: 1, bar: 3.5] @@ -1349,8 +1214,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 1, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-11-01 00:00:00, foo: 2, bar: 3.0]: input: - icon_restart [date: 2027-09-01 00:00:00, foo: 2, bar: 3.0] @@ -1362,8 +1226,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 2, 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - icon [date: 2027-11-01 00:00:00, foo: 2, bar: 3.5]: input: - icon_restart [date: 2027-09-01 00:00:00, foo: 2, bar: 3.5] @@ -1375,8 +1238,7 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'foo': 2, 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - statistics_foo [date: 2027-11-01 00:00:00, bar: 3.0]: input: - icon_output [date: 2027-11-01 00:00:00, foo: 0, bar: 3.0] @@ -1388,8 +1250,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'bar': 3.0} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo [date: 2027-11-01 00:00:00, bar: 3.5]: input: - icon_output [date: 2027-11-01 00:00:00, foo: 0, bar: 3.5] @@ -1401,8 +1261,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0), 'bar': 3.5} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - statistics_foo_bar [date: 2027-11-01 00:00:00]: input: - analysis_foo [date: 2027-11-01 00:00:00, bar: 3.5] @@ -1413,8 +1271,6 @@ cycles: coordinates: {'date': datetime.datetime(2027, 11, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/statistics.py' - command option: '' - input arg options: {} - yearly [date: 2026-01-01 00:00:00]: tasks: - merge [date: 2026-01-01 00:00:00]: @@ -1431,8 +1287,6 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/merge.py' - command option: '' - input arg options: {} - yearly [date: 2027-01-01 00:00:00]: tasks: - merge [date: 2027-01-01 00:00:00]: @@ -1448,6 +1302,4 @@ cycles: name: 'merge' coordinates: {'date': datetime.datetime(2027, 1, 1, 0, 0)} plugin: 'shell' - command: '$PWD/tests/files/scripts/merge.py' - command option: '' - input arg options: {} \ No newline at end of file + command: '$PWD/tests/files/scripts/merge.py' \ No newline at end of file diff --git a/tests/files/data/test_config_small.txt b/tests/files/data/test_config_small.txt index edd0d51..ec105f3 100644 --- a/tests/files/data/test_config_small.txt +++ b/tests/files/data/test_config_small.txt @@ -9,8 +9,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 1, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - bimonthly_tasks [date: 2026-03-01 00:00:00]: tasks: - icon [date: 2026-03-01 00:00:00]: @@ -23,8 +22,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 3, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - bimonthly_tasks [date: 2026-05-01 00:00:00]: tasks: - icon [date: 2026-05-01 00:00:00]: @@ -37,8 +35,7 @@ cycles: coordinates: {'date': datetime.datetime(2026, 5, 1, 0, 0)} plugin: 'shell' command: '$PWD/tests/files/scripts/icon.py' - command option: '' - input arg options: {'icon_restart': '--restart'} + cli arguments: positional=None keyword={'--restart': 'icon_restart'} flags=None source_file=None - lastly: tasks: - cleanup: @@ -47,6 +44,4 @@ cycles: name: 'cleanup' coordinates: {} plugin: 'shell' - command: '$PWD/tests/files/scripts/cleanup.py' - command option: '' - input arg options: {} \ No newline at end of file + command: '$PWD/tests/files/scripts/cleanup.py' \ No newline at end of file