diff --git a/code.yaml b/code.yaml new file mode 100644 index 0000000..7bd66d8 --- /dev/null +++ b/code.yaml @@ -0,0 +1,8 @@ +append_text: '' +computer: localhost +default_calc_job_plugin: core.shell +description: '' +filepath_executable: /home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/scripts/shell_task.sh +label: tests/files/scripts/shell_task.sh +prepend_text: '' +use_double_quotes: 'False' diff --git a/examples/files/configs/example_config.yaml b/examples/files/configs/example_config.yaml new file mode 100644 index 0000000..41167d6 --- /dev/null +++ b/examples/files/configs/example_config.yaml @@ -0,0 +1,181 @@ +start_date: '2026-01-01T00:00' +end_date: '2027-01-01T00:00' +cycles: + init: + tasks: + extpar: + inputs: + - obs_data: + arg_option: "--input" + outputs: + - extpar_file + icon_bimonthly: + period: 'P2M' + tasks: + preproc: + inputs: + - grid_file: + arg_option: "-g" + - extpar_file: + date: '2026-01-01T00:00' + arg_option: "-p" + - ERA5: + arg_option: "-e" + outputs: + - icon_input + depends: + - icon: + lag: '-P4M' + icon: + inputs: + - grid_file: + arg_option: "-g" + - icon_input: + arg_option: "--input" + #- icon_restart: + # lag: '-P2M' + outputs: + - stream_1 + - stream_2 + #- icon_restart + postproc_1: + inputs: + - stream_1: + arg_option: "--input" + outputs: + - postout_1 + store_and_clean_1: + inputs: + - postout_1: + arg_option: "--input" + - stream_1: + arg_option: "--stream" + - icon_input: + arg_option: "--icon_input" + outputs: + - stored_data_1 + yearly: + period: 'P1Y' + tasks: + postproc_2: + inputs: + - stream_2: + lag: + - 'P0M' + arg_option: "--input" + outputs: + - postout_2 + store_and_clean_2: + inputs: + - postout_2: + arg_option: "--input" + - stream_2: + lag: + - 'P0M' + outputs: + - stored_data_2 +# Each task and piece of data (input and output of tasks) used to +# define the graph is described in that section +tasks: + root: + # All tasks inherit the root task properties + host: santis + account: g110 + extpar: + plugin: extpar + command: $PWD/files/scripts/extpar + command_option: "--verbose" # todo implement support + config: path/to/namelists/dir + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + nodes: 1 + walltime: '00:02:00' + preproc: + plugin: AiiDA Shell + command: $PWD/files/scripts/cleanup.sh + nodes: 4 + walltime: '00:02:00' + config: path/to/config/dir + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + icon: + plugin: icon + command: $PWD/files/scripts/icon + nodes: 40 + walltime: '23:59:59' + config: path/to/namelists/dir + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + postproc_1: + plugin: AiiDA Shell + command: $PWD/files/scripts/main_script_ocn.sh + nodes: 2 + walltime: '00:05:00' + conda_env: path/to/yaml/env/file + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + postproc_2: + plugin: AiiDA Shell + command: $PWD/files/scripts/main_script_atm.sh + nodes: 2 + walltime: '00:05:00' + src: path/to/src/dir + conda_env: path/to/yaml/env/file + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + store_and_clean_1: + plugin: AiiDA Shell + command: $PWD/files/scripts/post_clean.sh + nodes: 1 + walltime: '00:01:00' + store_and_clean_2: + plugin: AiiDA Shell + command: $PWD/files/scripts/post_clean.sh + nodes: 1 + walltime: '00:01:00' +data: + preproc_output: + type: file + src: $PWD/files/data/file.ncdf + grid_file: + type: file + src: $PWD/files/data/grid + obs_data: + type: file + src: $PWD/files/data/obs_data + ERA5: + type: file + src: $PWD/files/data/era5 + extpar_file: + type: file + src: output + icon_input: + type: file + src: output + icon_restart: + type: file + format: ncdf + src: restart + stream_1: + type: file + src: output_1 + stream_2: + type: file + src: output_2 + postout_1: + type: file + src: postout + postout_2: + type: file + src: postout + stored_data_1: + type: file + src: stored_data + stored_data_2: + type: file + src: stored_data diff --git a/examples/files/data/era5 b/examples/files/data/era5 new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/data/file.ncdf b/examples/files/data/file.ncdf new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/data/grid b/examples/files/data/grid new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/data/input b/examples/files/data/input new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/data/obs_data b/examples/files/data/obs_data new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/scripts/argparse b/examples/files/scripts/argparse new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/scripts/cleanup.py b/examples/files/scripts/cleanup.py new file mode 100755 index 0000000..ff9c30e --- /dev/null +++ b/examples/files/scripts/cleanup.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python + +def main(): + # Main script execution continues here + print("Cleaning") + + +if __name__ == '__main__': + main() diff --git a/examples/files/scripts/cleanup.sh b/examples/files/scripts/cleanup.sh new file mode 100755 index 0000000..bc5435d --- /dev/null +++ b/examples/files/scripts/cleanup.sh @@ -0,0 +1 @@ +echo "cleanup" > output diff --git a/examples/files/scripts/extpar b/examples/files/scripts/extpar new file mode 100755 index 0000000..66dc5ac --- /dev/null +++ b/examples/files/scripts/extpar @@ -0,0 +1 @@ +echo "extpar" > output diff --git a/examples/files/scripts/icon b/examples/files/scripts/icon new file mode 100755 index 0000000..ec409b0 --- /dev/null +++ b/examples/files/scripts/icon @@ -0,0 +1,4 @@ +echo "icon" > restart +echo "icon" > output +echo "icon" > output_1 +echo "icon" > output_2 diff --git a/examples/files/scripts/icon.py b/examples/files/scripts/icon.py new file mode 100755 index 0000000..f5ec27b --- /dev/null +++ b/examples/files/scripts/icon.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +import argparse +from pathlib import Path + +def main(): + parser = argparse.ArgumentParser(description='A simple script with an optional restart argument.') + parser.add_argument('icon_input', type=str, help='The icon input.') + parser.add_argument('--restart', nargs='?', type=str, help='The icon restart file.') + #parser.add_argument('--restart', nargs='?', const='default', type=str, help='Initiate a restart operation with an optional string argument.') + + + args = parser.parse_args() + + output = Path('output') + output.write_text("") + + if args.restart: + restart = Path(args.restart) + restart.read_text() + text = "Restart operation initiated..." + print(text) + with output.open("a") as f: + f.write(text) + else: + text = "No restart option provided. Continuing without restart." + print(text) + with output.open("a") as f: + f.write(text) + + # Main script execution continues here + text = "Script execution continues..." + print(text) + with output.open("a") as f: + f.write(text) + + restart = Path('restart') + restart.write_text("") + +if __name__ == '__main__': + main() diff --git a/examples/files/scripts/icon.sh b/examples/files/scripts/icon.sh new file mode 100644 index 0000000..dde2cf8 --- /dev/null +++ b/examples/files/scripts/icon.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Function to write text to the output file +write_to_output() { + local text="$1" + echo "$text" + echo "$text" >> output +} + +# Check if at least one argument is provided +if [ "$#" -lt 1 ]; then + echo "Usage: $0 icon_input [--restart [restart_file]]" + exit 1 +fi + +# Positional argument +icon_input="$1" + +# Optional restart argument +restart_file="" + +if [ "$2" == "--restart" ]; then + if [ -n "$3" ]; then + restart_file="$3" + fi +fi + +# Create/empty the output file +> output + +# Handling restart if the argument is provided +if [ -n "$restart_file" ]; then + if [ -f "$restart_file" ]; then + cat "$restart_file" > /dev/null + write_to_output "Restart operation initiated..." + else + echo "Restart file $restart_file does not exist." + exit 1 + fi +else + write_to_output "No restart option provided. Continuing without restart." +fi + +# Main script execution continues here +write_to_output "Script execution continues..." + +# Create/empty the restart file +> restart diff --git a/examples/files/scripts/main_script_atm.sh b/examples/files/scripts/main_script_atm.sh new file mode 100755 index 0000000..2a361f8 --- /dev/null +++ b/examples/files/scripts/main_script_atm.sh @@ -0,0 +1 @@ +echo "main_script_atm.sh" > postout diff --git a/examples/files/scripts/main_script_ocn.sh b/examples/files/scripts/main_script_ocn.sh new file mode 100755 index 0000000..1d01b24 --- /dev/null +++ b/examples/files/scripts/main_script_ocn.sh @@ -0,0 +1 @@ +echo "python main_script_ocn.sh" > postout diff --git a/examples/files/scripts/post_clean.sh b/examples/files/scripts/post_clean.sh new file mode 100755 index 0000000..b91319f --- /dev/null +++ b/examples/files/scripts/post_clean.sh @@ -0,0 +1 @@ +echo "store_and_clean" > stored_data diff --git a/examples/files/scripts/shell_cli b/examples/files/scripts/shell_cli new file mode 100644 index 0000000..e69de29 diff --git a/pyproject.toml b/pyproject.toml index d5863fc..8cfb96d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,8 +32,9 @@ dependencies = [ "pydantic-yaml", "aiida-core>=2.5", "termcolor", - "pygraphviz", - "lxml" + "aiida-core~=2.5", + "aiida-workgraph==0.3.14", + "node_graph==0.0.11", ] license = {file = "LICENSE"} diff --git a/src/sirocco/core/graph_items.py b/src/sirocco/core/graph_items.py index 4f99605..ecffa73 100644 --- a/src/sirocco/core/graph_items.py +++ b/src/sirocco/core/graph_items.py @@ -2,6 +2,8 @@ from dataclasses import dataclass, field from itertools import chain, product +from os.path import expandvars +from pathlib import Path from typing import TYPE_CHECKING, Any, ClassVar, Self from sirocco.parsing._yaml_data_models import ( @@ -106,6 +108,11 @@ def from_config(cls, config: ConfigBaseData, coordinates: dict) -> Self: coordinates=coordinates, ) + @property + def path(self) -> Path: + # TODO yaml level? + return Path(expandvars(self.src)) + @dataclass class Cycle(GraphItem): diff --git a/src/sirocco/parsing/_yaml_data_models.py b/src/sirocco/parsing/_yaml_data_models.py index 30f2b79..ce5f32b 100644 --- a/src/sirocco/parsing/_yaml_data_models.py +++ b/src/sirocco/parsing/_yaml_data_models.py @@ -5,6 +5,7 @@ from datetime import datetime from pathlib import Path from typing import Annotated, Any, ClassVar, Literal +from os.path import expandvars from isoduration import parse_duration from isoduration.types import Duration # pydantic needs type # noqa: TCH002 @@ -88,7 +89,7 @@ class _CliArgsBaseModel(BaseModel): # 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) + keyword: dict[str, str | int] | None = Field(default_factory=dict) flags: str | list[str] | None = None source_file: str | list[str] | None = None @@ -316,6 +317,13 @@ class ConfigShellTaskSpecs: class ConfigShellTask(ConfigBaseTask, ConfigShellTaskSpecs): pass + # PR(COMMENT) tmp hack to make script work, need to find better solution than PWD for tests + # @field_validator("command", "src") + # @classmethod + # def expand_var(cls, value: str) -> str: + # """Expand environemnt variables""" + # # TODO this might be not intended if we want to use environment variables on remote HPC + # return expandvars(value) @dataclass @@ -323,7 +331,6 @@ class ConfigIconTaskSpecs: plugin: ClassVar[Literal["icon"]] = "icon" namelists: dict[str, str] | None = None - class ConfigIconTask(ConfigBaseTask, ConfigIconTaskSpecs): pass @@ -341,6 +348,9 @@ class ConfigBaseData(_NamedBaseModel, ConfigBaseDataSpecs): """ parameters: list[str] = [] + type: str | None = None + src: str | None = None + format: str | None = None @field_validator("type") @classmethod @@ -351,6 +361,13 @@ def is_file_or_dir(cls, value: str) -> str: raise ValueError(msg) return value + @field_validator("type", "src", "format") + @classmethod + def expand_var(cls, value: str | None) -> str | None: + """Expand environemnt variables""" + # TODO this might be not intended if we want to use environment variables on remote HPC + return None if value is None else expandvars(value) + class ConfigAvailableData(ConfigBaseData): pass diff --git a/src/sirocco/workgraph.py b/src/sirocco/workgraph.py new file mode 100644 index 0000000..171adca --- /dev/null +++ b/src/sirocco/workgraph.py @@ -0,0 +1,388 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Any + +import aiida.common +import aiida.orm +import aiida_workgraph.engine.utils # type: ignore[import-untyped] +from aiida_workgraph import WorkGraph # type: ignore[import-untyped] + +from sirocco import core +from sirocco.core import graph_items +from sirocco.core._tasks.icon_task import IconTask +from sirocco.core._tasks.shell_task import ShellTask + +if TYPE_CHECKING: + from aiida_workgraph.socket import TaskSocket # type: ignore[import-untyped] + + +# This is hack to aiida-workgraph, merging this into aiida-workgraph properly would require +# some major refactor see issue https://github.com/aiidateam/aiida-workgraph/issues/168 +# It might be better to give up on the graph like construction and just create the task +# directly with inputs, arguments and outputs +def _prepare_for_shell_task(task: dict, kwargs: dict) -> dict: + """Prepare the inputs for ShellTask""" + from aiida.common import lang + from aiida.orm import AbstractCode + from aiida_shell.launch import convert_nodes_single_file_data, prepare_code + + command = kwargs.pop("command", None) + resolve_command = kwargs.pop("resolve_command", False) + metadata = kwargs.pop("metadata", {}) + # setup code + if isinstance(command, str): + computer = (metadata or {}).get("options", {}).pop("computer", None) + code = prepare_code(command, computer, resolve_command) + else: + lang.type_check(command, AbstractCode) + code = command + # update the tasks with links + nodes = convert_nodes_single_file_data(kwargs.pop("nodes", {})) + # find all keys in kwargs start with "nodes." + for key in list(kwargs.keys()): + if key.startswith("nodes."): + nodes[key[6:]] = kwargs.pop(key) + metadata.update({"call_link_label": task["name"]}) + + default_outputs = {"remote_folder", "remote_stash", "retrieved", "_outputs", "_wait", "stdout", "stderr"} + task_outputs = {task["outputs"][i]["name"] for i in range(len(task["outputs"]))} + task_outputs = task_outputs.union(set(kwargs.pop("outputs", []))) + missing_outputs = task_outputs.difference(default_outputs) + # ? kwargs['arguments'] = ['{initial_conditions}', '{data1}'] + breakpoint() + return { + "code": code, + "nodes": nodes, + "filenames": kwargs.pop("filenames", {}), + "arguments": kwargs.pop("arguments", []), + "outputs": list(missing_outputs), + "parser": kwargs.pop("parser", None), + "metadata": metadata or {}, + } + + +aiida_workgraph.engine.utils.prepare_for_shell_task = _prepare_for_shell_task + + +class AiidaWorkGraph: + def __init__(self, core_workflow: core.Workflow): + # Needed for date indexing + self._core_workflow = core_workflow + + self._validate_workflow() + + self._workgraph = WorkGraph() # core_workflow.name TODO use filename + + # stores the input data available on initialization + self._aiida_data_nodes: dict[str, aiida_workgraph.orm.Data] = {} + # stores the outputs sockets of tasks + self._aiida_socket_nodes: dict[str, TaskSocket] = {} + self._aiida_task_nodes: dict[str, aiida_workgraph.Task] = {} + + self._add_aiida_initial_data_nodes() + self._add_aiida_task_nodes() + self._add_aiida_links() + + def _validate_workflow(self): + """Checks if the defined workflow is correctly referencing key names.""" + for cycle in self._core_workflow.cycles: + try: + aiida.common.validate_link_label(cycle.name) + except ValueError as exception: + msg = f"Raised error when validating cycle name '{cycle.name}': {exception.args[0]}" + raise ValueError(msg) from exception + for task in cycle.tasks: + try: + aiida.common.validate_link_label(task.name) + except ValueError as exception: + msg = f"Raised error when validating task name '{cycle.name}': {exception.args[0]}" + raise ValueError(msg) from exception + for input_ in task.inputs: + try: + aiida.common.validate_link_label(task.name) + except ValueError as exception: + msg = f"Raised error when validating input name '{input_.name}': {exception.args[0]}" + raise ValueError(msg) from exception + for output in task.outputs: + try: + aiida.common.validate_link_label(task.name) + except ValueError as exception: + msg = f"Raised error when validating output name '{output.name}': {exception.args[0]}" + raise ValueError(msg) from exception + # - Warning if output nodes that are overwritten by other tasks before usage, if this actually happens? + + def _add_aiida_initial_data_nodes(self): + """ + Nodes that correspond to data that are available on initialization of the workflow + """ + for cycle in self._core_workflow.cycles: + for task in cycle.tasks: + for input_ in task.inputs: + if input_.available: + self._add_aiida_input_data_node(input_) + + @staticmethod + def parse_to_aiida_label(label: str) -> str: + invalid_chars = ["-", " ", ":", "."] + for invalid_char in invalid_chars: + label = label.replace(invalid_char, "_") + return label + + @staticmethod + def get_aiida_label_from_unrolled_data(obj: graph_items.GraphItem) -> str: + """ """ + return AiidaWorkGraph.parse_to_aiida_label( + f"{obj.name}" + "__".join(f"_{key}_{value}" for key, value in obj.coordinates.items()) + ) + + @staticmethod + def get_aiida_label_from_unrolled_task(obj: graph_items.GraphItem) -> str: + """ """ + # TODO task is not anymore using cycle name because information is not there + # so do we check somewhere that a task is not used in multiple cycles? + # Otherwise the label is not unique + # --> task name + date + parameters + return AiidaWorkGraph.parse_to_aiida_label( + "__".join([f"{obj.name}"] + [f"_{key}_{value}" for key, value in obj.coordinates.items()]) + ) + + def _add_aiida_input_data_node(self, input_: graph_items.Data): + """ + Create an :class:`aiida.orm.Data` instance from this wc data instance. + + :param input: ... + """ + label = AiidaWorkGraph.get_aiida_label_from_unrolled_data(input_) + if input_.type == "file": + self._aiida_data_nodes[label] = aiida.orm.SinglefileData(label=label, file=input_.path.resolve()) + elif input_.type == "dir": + self._aiida_data_nodes[label] = aiida.orm.FolderData(label=label, tree=input_.path.resolve()) + else: + msg = f"Data type {input_.type!r} not supported. Please use 'file' or 'dir'." + raise ValueError(msg) + + def _add_aiida_task_nodes(self): + for cycle in self._core_workflow.cycles: + for task in cycle.tasks: + self._add_aiida_task_node(task) + # after creation we can link the wait_on tasks + # TODO check where this is now + #for cycle in self._core_workflow.cycles: + # for task in cycle.tasks: + # self._link_wait_on_to_task(task) + + def _add_aiida_task_node(self, task: graph_items.Task): + label = AiidaWorkGraph.get_aiida_label_from_unrolled_task(task) + if isinstance(task, ShellTask): + if task.command is None: + msg = f"The command is None of task {task}." + raise ValueError(msg) + + command = task.command + argument_str: str = '' + + cli_arguments = task.cli_arguments + + # ? Positional + # ? -> Seem to already be resolved in the WG creation, see `_link_input_to_task` + positional_args = cli_arguments.positional + positional_args = [positional_args] if isinstance(positional_args, str) else positional_args + + def resolve_positional_and_keyword(input_args): # -> dict(str, str|dict): + + argument_str = '' + node_dict = {} + + for input_arg in input_args: + print(f'INPUT_ARG: {input_arg}') + if isinstance(input_arg, dict): + node_identifier = list(input_arg.values())[0] + # append_str = f' {list(input_arg.keys())[0]} {{{node_identifier}}}' + # print(f"APPEND_STR: {append_str}") + elif isinstance(input_arg, str): + node_identifier = input_arg + # append_str = f' {{{node_identifier}}}' + else: + raise TypeError("Something went wrong.") + + aiida_data_node = self._aiida_data_nodes.get(node_identifier, None) + aiida_data_socket = self._aiida_socket_nodes.get(node_identifier, None) + # THis will be either an existing aiida_data_node, or aiida_data_socket, otherwise None + # as aiida_data_socket will be assigned to the new variable, irrespective if None or not + aiida_entity = aiida_data_node or aiida_data_socket + if aiida_entity is None: + if isinstance(input_arg, dict): + append_str = f' {list(input_arg.keys())[0]} {node_identifier}' + elif isinstance(input_arg, str): + append_str = f' {node_identifier}' + argument_str += append_str + # ! Don't resolve the nodes here, as this is done somewhere else, and otherwise excepts + # argument_str += f' {{{positional_arg}}}' + # node_dict[positional_arg] = aiida_entity + + # TODO: Final cleanup of non-existing ones + # TODO: Check for absolute path, and if absolute path provided, directly use as input argument, as we + # cannot create Singlefiledata from a file that doesn't live on the localhost -> Maybe create RemoteData instead + return {'arguments': argument_str, 'nodes': node_dict} + + positional_resolved = resolve_positional_and_keyword(positional_args) + print(f"POSITIONAL_RESOLVED: {positional_resolved}") + argument_str = f"{argument_str} {positional_resolved['arguments']}" + # nodes = positional_resolved['nodes'] + + # ? Keywords + keyword_args = cli_arguments.keyword + print(f"KEYWORD_ARGS: {keyword_args}") + # ? Resolve to list of dictionaries with one key-value pair each (just for current implementation) + keyword_resolved = resolve_positional_and_keyword([{key: value} for key, value in keyword_args.items()]) + print(f"KEYWORD_RESOLVED: {keyword_resolved}") + # argument_str = f"{argument_str} {keyword_resolved['arguments']}" + # nodes = positional_resolved['nodes'] + + # ? Flags + flags = cli_arguments.flags # append to string + flags = [flags] if isinstance(flags, str) else flags + + argument_str = ' '.join([argument_str] + flags) + # command = ' '.join([command] + flags) + + # ? Source file + source_files = cli_arguments.source_file # into prepend-text + source_files = [source_files] if isinstance(source_files, str) else source_files + prepend_text = '\n'.join([f"source {source_file}" for source_file in source_files]) + + # breakpoint() + # from aiida_shell.launch import prepare_computer, prepare_code + # breakpoint() + # TODO: Need access to the root task here, to get access to the host/computer + # TODO: Take care of proper code creation. Either a `PortableCode` or splitting the name, only using the + # TODO: actual script name, but resolving the path to the full path + # localhost = prepare_computer() + # command = task.command + # code = prepare_code(command=command, computer=localhost) + + # TODO: Add the additional outputs here + breakpoint() + # ? argument_str = ' {data2} --test' + # ? `data1` and `initial_conditions` are added _somewhere_ else, either in `TaskCollection.new()`, + # ? `build_shelljob_task`, `build_task_from_AiiDA`, or `AiiDAWorkGraph._link_input_to_task()`, which is + # ? where the input/output nodes/sockets are being attached + workgraph_task = self._workgraph.tasks.new( + "ShellJob", + name=label, + # TODO: Currently use command to allow for flags. Ideally, should be also `Code` possible, and arguments + # passed through + command=command, + # TODO: Flags are not being passed to the submission script? + arguments=argument_str, + # arguments=argument_str.split(' ')[2:], + # nodes=nodes, + metadata={ + 'options': { + 'prepend_text': prepend_text + } + } + ) + + # arguments='{file_a} {file_b}', + # nodes={ + # 'file_a': SinglefileData.from_string('string a'), + # 'file_b': SinglefileData.from_string('string b'), + # } + # arguments_str = '' + + # workgraph_task.set({"arguments": []}) + workgraph_task.set({"nodes": {}}) + self._aiida_task_nodes[label] = workgraph_task + + # elif isinstance(task, IconTask): + # exc = f"Task: {task.name} not implemented yet." + # raise NotImplementedError(exc) + else: + exc = f"Task: {task.name} not implemented yet." + raise NotImplementedError(exc) + + def _link_wait_on_to_task(self, task: graph_items.Task): + # TODO + msg = "" + raise NotImplementedError(msg) + label = AiidaWorkGraph.get_aiida_label_from_unrolled_task(task) + workgraph_task = self._aiida_task_nodes[label] + wait_on_tasks = [] + for depend in task.unrolled_depends: + wait_on_task_label = AiidaWorkGraph.get_aiida_label_from_unrolled_task(depend.depend_on_task) + wait_on_tasks.append(self._aiida_task_nodes[wait_on_task_label]) + workgraph_task.wait = wait_on_tasks + + def _add_aiida_links(self): + for cycle in self._core_workflow.cycles: + self._add_aiida_links_from_cycle(cycle) + + def _add_aiida_links_from_cycle(self, cycle: core.UnrolledCycle): + for task in cycle.tasks: + for input_ in task.inputs: + self._link_input_to_task(task, input_) + for output in task.outputs: + self._link_output_to_task(task, output) + + def _link_input_to_task(self, task: graph_items.Task, input_: graph_items.Data): + """ + task: the task corresponding to the input + input: ... + """ + task_label = AiidaWorkGraph.get_aiida_label_from_unrolled_task(task) + input_label = AiidaWorkGraph.get_aiida_label_from_unrolled_data(input_) + workgraph_task = self._aiida_task_nodes[task_label] + try: + workgraph_task.inputs.new("Any", f"nodes.{input_label}") + workgraph_task.kwargs.append(f"nodes.{input_label}") + + # resolve data + if (data_node := self._aiida_data_nodes.get(input_label)) is not None: + if (nodes := workgraph_task.inputs.get("nodes")) is None: + msg = f"Workgraph task {workgraph_task.name!r} did not initialize input nodes in the workgraph before linking. This is a bug in the code, please contact the developers by making an issue." + raise ValueError(msg) + nodes.value.update({f"{input_label}": data_node}) + elif (output_socket := self._aiida_socket_nodes.get(input_label)) is not None: + self._workgraph.links.new(output_socket, workgraph_task.inputs[f"nodes.{input_label}"]) + else: + msg = f"Input data node {input_label!r} was neither found in socket nodes nor in data nodes. The task {task_label!r} must have dependencies on inputs before they are created." + raise ValueError(msg) + + # resolve arg_option + if (workgraph_task_arguments := workgraph_task.inputs.get("arguments")) is None: + msg = f"Workgraph task {workgraph_task.name!r} did not initialize arguments nodes in the workgraph before linking. This is a bug in the code, please contact devevlopers." + raise ValueError(msg) + # TODO think about that the yaml file should have aiida valid labels + # if (arg_option := task.input_arg_options.get(input_.name, None)) is not None: + # workgraph_task_arguments.value.append(f"{arg_option}") + workgraph_task_arguments.value.append(f"{{{input_label}}}") + except Exception: + breakpoint() + + def _link_output_to_task(self, task: graph_items.Task, output: graph_items.Data): + """ + task: the task corresponding to the output + output: ... + """ + workgraph_task = self._aiida_task_nodes[AiidaWorkGraph.get_aiida_label_from_unrolled_task(task)] + output_label = AiidaWorkGraph.get_aiida_label_from_unrolled_data(output) + output_socket = workgraph_task.outputs.new("Any", output.src) + self._aiida_socket_nodes[output_label] = output_socket + + def run( + self, + inputs: None | dict[str, Any] = None, + metadata: None | dict[str, Any] = None, + ) -> dict[str, Any]: + return self._workgraph.run(inputs=inputs, metadata=metadata) + + def submit( + self, + *, + inputs: None | dict[str, Any] = None, + wait: bool = False, + timeout: int = 60, + metadata: None | dict[str, Any] = None, + ) -> dict[str, Any]: + return self._workgraph.submit(inputs=inputs, wait=wait, timeout=timeout, metadata=metadata) diff --git a/test_config_large_no_icon.svg b/test_config_large_no_icon.svg new file mode 100644 index 0000000..567196d --- /dev/null +++ b/test_config_large_no_icon.svg @@ -0,0 +1,1569 @@ + + + +test_config_large_no_icon + + +cluster_shell_bimonthly_7 + + +shell_bimonthly +  date: 2025-11-01 00:00:00 + + + + +cluster_shell_bimonthly_5 + + +shell_bimonthly +  date: 2025-07-01 00:00:00 + + + + +cluster_shell_bimonthly_3 + + +shell_bimonthly +  date: 2025-03-01 00:00:00 + + + + +cluster_shell_bimonthly_2 + + +shell_bimonthly +  date: 2025-01-01 00:00:00 + + + + +cluster_yearly_8 + + +yearly +  date: 2025-01-01 00:00:00 + + + + +cluster_shell_bimonthly_4 + + +shell_bimonthly +  date: 2025-05-01 00:00:00 + + + + +cluster_shell_bimonthly_6 + + +shell_bimonthly +  date: 2025-09-01 00:00:00 + + + + +cluster_init_1 + + +init + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + +store_and_clean_2 + + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + +postproc_2 + + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + +shell_task + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_2 + + + + + +Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_2 + + + + + +ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None)--Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir')--Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + +preproc + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + +shell_input + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + +store_and_clean_1 + + + + + +Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + +stream_1 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + +stream_2 + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False) + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + +shell_restart + + + + + +ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False) + + + + +Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + +stored_data_1 + + + + + +ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None)--Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False) + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + +postproc_1 + + + + + +Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)--ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='store_and_clean_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='stored_data_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_2'}, flags=None, source_file=None), src=None) + + + + +Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)--ShellTask(name='postproc_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False)], outputs=[Data(name='postout_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_atm.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_2'}, flags=None, source_file=None), src='path/to/src/dir') + + + + +Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + +postout_1 + + + + + +ShellTask(name='postproc_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=2, 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), inputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False)], outputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/main_script_ocn.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'stream_1'}, flags=None, source_file=None), src=None)--Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False) + + + + +Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False)--ShellTask(name='store_and_clean_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv=None, nodes=1, 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), inputs=[Data(name='postout_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='postout', format=None, available=False), Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stored_data_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='stored_data', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/post_clean.sh', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'postout_1', '--stream': 'stream_1', '--shell_input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None)--Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False) + + +extpar_file + + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +ShellTask(name='extpar', coordinates={}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=1, 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), inputs=[Data(name='obs_data', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/obs_data', format=None, available=True)], outputs=[Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/extpar', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'obs_data'}, flags=['--verbose'], source_file=None), src=None) + + +extpar + + + + + +ShellTask(name='extpar', coordinates={}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=1, 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), inputs=[Data(name='obs_data', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/obs_data', format=None, available=True)], outputs=[Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/extpar', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'obs_data'}, flags=['--verbose'], source_file=None), src=None)--Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True) + + +grid_file + + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None) + + + + +Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='obs_data', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/obs_data', format=None, available=True) + + +obs_data + + + + + +Data(name='obs_data', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/obs_data', format=None, available=True)--ShellTask(name='extpar', coordinates={}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=1, 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), inputs=[Data(name='obs_data', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/obs_data', format=None, available=True)], outputs=[Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/extpar', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'--input': 'obs_data'}, flags=['--verbose'], source_file=None), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True) + + +ERA5 + + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 11, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 7, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 1, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)--ShellTask(name='preproc', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=4, 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), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='extpar_file', coordinates={}, type='file', src='output', format=None, available=False), Data(name='ERA5', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/era5', format=None, available=True)], outputs=[Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 9, 1, 0, 0)}, type='file', src='output', format=None, available=False)], wait_on=[ShellTask(name='shell_task', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, host=None, account=None, uenv={'squashfs': 'path/to/squashfs', 'mount_point': 'runtime/mount/point'}, nodes=40, walltime=time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=59, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=-1), inputs=[Data(name='grid_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/grid', format=None, available=True), Data(name='shell_input', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 3, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], outputs=[Data(name='stream_1', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_1', format=None, available=False), Data(name='stream_2', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='output_2', format=None, available=False), Data(name='shell_restart', coordinates={'date': datetime.datetime(2025, 5, 1, 0, 0)}, type='file', src='restart', format=None, available=False)], wait_on=[], command='$PWD/examples/files/scripts/shell_cli', cli_arguments=_CliArgsBaseModel(positional=None, keyword={'-g': 'grid_file', '--input': 'shell_input'}, flags=None, source_file=None), src=None)], command='$PWD/examples/files/scripts/cleanup.sh', cli_arguments=_CliArgsBaseModel(positional=['grid_file'], keyword={'-p': 'extpar_file', '-e': 'ERA5'}, flags=None, source_file='dummy_source_file'), src=None) + + + + +Data(name='dummy_source_file', coordinates={}, type='file', src='/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/examples/files/data/dummy_source_file.sh', format=None, available=True) + + +dummy_source_file + + + + + \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index e69de29..66b9686 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -0,0 +1 @@ +pytest_plugins = ['aiida.tools.pytest_fixtures'] diff --git a/tests/files/configs/test_config_large_no_icon.yml b/tests/files/configs/test_config_large_no_icon.yml new file mode 100644 index 0000000..e331f55 --- /dev/null +++ b/tests/files/configs/test_config_large_no_icon.yml @@ -0,0 +1,190 @@ +--- +start_date: &root_start_date '2025-01-01T00:00' +end_date: &root_end_date '2026-01-01T00:00' +cycles: + - init: + tasks: + - extpar: + inputs: [obs_data] + outputs: [extpar_file] + - shell_bimonthly: + start_date: *root_start_date + end_date: *root_end_date + period: 'P2M' + tasks: + - preproc: + inputs: [grid_file, extpar_file, ERA5] + outputs: [shell_input] + wait_on: + - shell_task: + when: + after: '2025-03-01T00:00' + lag: '-P4M' + - shell_task: + inputs: + - grid_file + - shell_input + - shell_restart: + when: + after: *root_start_date + lag: '-P2M' + outputs: [stream_1, stream_2, shell_restart] + - postproc_1: + inputs: [stream_1] + outputs: [postout_1] + - store_and_clean_1: + inputs: [postout_1, stream_1, shell_input] + outputs: [stored_data_1] + - yearly: + start_date: *root_start_date + end_date: *root_end_date + period: 'P1Y' + tasks: + - postproc_2: + inputs: + - stream_2: + lag: ['P0M', 'P2M', 'P4M', 'P6M', 'P8M', 'P10M'] + outputs: [postout_2] + - store_and_clean_2: + inputs: + - postout_2 + - stream_2: + lag: ['P0M', 'P2M', 'P4M', 'P6M', 'P8M', 'P10M'] + outputs: + - stored_data_2 +# Each task and piece of data (input and output of tasks) used to +# define the graph is described in that section +tasks: + - ROOT: + # All tasks inherit the root task properties + host: localhost + # account: g110 + - extpar: + plugin: shell # no extpar plugin available yet + command: ./examples/files/scripts/extpar + cli_arguments: + keyword: + --input: obs_data + flags: + - --verbose + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + nodes: 1 + walltime: 00:02:00 + - preproc: + plugin: shell + command: ./examples/files/scripts/cleanup.sh + cli_arguments: + positional: + - grid_file + keyword: + -p: extpar_file + -e: ERA5 + nodes: 4 + walltime: 00:02:00 + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + - shell_task: + plugin: shell + command: ./examples/files/scripts/shell_cli + cli_arguments: + keyword: + -g: grid_file + --input: shell_input + nodes: 40 + walltime: 23:59:59 + # namelists: + # master: path/to/mater_nml + # model: path/to/model_nml + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + - postproc_1: + plugin: shell + command: ./examples/files/scripts/main_script_ocn.sh + cli_arguments: + keyword: + --input: stream_1 + nodes: 2 + walltime: 00:05:00 + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + - postproc_2: + plugin: shell + command: ./examples/files/scripts/main_script_atm.sh + 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 + uenv: + squashfs: path/to/squashfs + mount_point: runtime/mount/point + - store_and_clean_1: + plugin: shell + command: ./examples/files/scripts/post_clean.sh + cli_arguments: + keyword: + --input: postout_1 + --stream: stream_1 + --shell_input: shell_input + nodes: 1 + walltime: 00:01:00 + - store_and_clean_2: + plugin: shell + command: ./examples/files/scripts/post_clean.sh + cli_arguments: + keyword: + --input: postout_2 + nodes: 1 + walltime: 00:01:00 +data: + available: + - grid_file: + type: file + src: ./examples/files/data/grid + - obs_data: + type: file + src: ./examples/files/data/obs_data + - ERA5: + type: file + src: ./examples/files/data/era5 + - dummy_source_file: + type: file + src: ./examples/files/data/dummy_source_file.sh + generated: + - extpar_file: + type: file + src: output + - shell_input: + type: file + src: output + - shell_restart: + type: file + format: ncdf + src: restart + - stream_1: + type: file + src: output_1 + - stream_2: + type: file + src: output_2 + - postout_1: + type: file + src: postout + - postout_2: + type: file + src: postout + - stored_data_1: + type: file + src: stored_data + - stored_data_2: + type: file + src: stored_data diff --git a/tests/files/configs/test_config_parameters.yml b/tests/files/configs/test_config_parameters.yml index ec993af..87933a8 100644 --- a/tests/files/configs/test_config_parameters.yml +++ b/tests/files/configs/test_config_parameters.yml @@ -1,6 +1,6 @@ --- start_date: &root_start_date '2026-01-01T00:00' -end_date: &root_end_date '2028-01-01T00:00' +end_date: &root_end_date '2026-03-01T00:00' cycles: - bimonthly_tasks: @@ -10,7 +10,7 @@ cycles: tasks: - icon: inputs: - - initial conditions: + - initial_conditions: when: at: *root_start_date - icon_restart: @@ -26,6 +26,7 @@ cycles: inputs: - icon_output: parameters: + # PR COMMENT: Is this the intention that multiple files can be taken by statistics.py here? it gets the icon_output for all the foo values bar: single outputs: [analysis_foo] - statistics_foo_bar: @@ -39,7 +40,7 @@ cycles: - merge: inputs: - analysis_foo_bar: - lag: ['P0M', 'P2M', 'P4M', 'P6M', 'P8M', 'P10M'] + lag: ['P0M'] outputs: [yearly_analysis] tasks: @@ -49,6 +50,8 @@ tasks: cli_arguments: keyword: --restart: icon_restart + --init: initial_conditions + --forcing: forcing parameters: [foo, bar] - statistics_foo: plugin: shell @@ -63,16 +66,16 @@ tasks: data: available: - - initial conditions: + - initial_conditions: type: file - src: . + src: $PWD/tests/files/data/initial_conditions - forcing: type: file - src: . + src: $PWD/tests/files/data/forcing generated: - icon_output: type: file - src: output + src: icon_output parameters: [foo, bar] - icon_restart: type: file @@ -80,15 +83,15 @@ data: parameters: [foo, bar] - analysis_foo: type: file - src: analysis_foo + src: analysis parameters: [bar] - analysis_foo_bar: type: file - src: foo_analysis_bar + src: analysis - yearly_analysis: type: file - src: yearly_analysis + src: analysis parameters: - foo: [0, 1, 2] + foo: [0, 1] bar: [3.0, 3.5] diff --git a/tests/files/configs/test_config_small.yml b/tests/files/configs/test_config_small.yml index 8b163fc..de777e3 100644 --- a/tests/files/configs/test_config_small.yml +++ b/tests/files/configs/test_config_small.yml @@ -9,6 +9,10 @@ cycles: tasks: - icon: inputs: + - icon_namelist + - initial_conditions: + when: + at: *root_start_date - icon_restart: when: after: *root_start_date @@ -27,18 +31,22 @@ tasks: cli_arguments: keyword: --restart: icon_restart + --init: initial_conditions - cleanup: plugin: shell command: $PWD/tests/files/scripts/cleanup.py data: available: - - icon_input: + - icon_namelist: type: file src: $PWD/tests/files/data/input + - initial_conditions: + type: file + src: $PWD/tests/files/data/initial_conditions generated: - icon_output: type: file - src: output + src: icon_output - icon_restart: type: file src: restart diff --git a/tests/files/configs/test_config_small_no_icon.yml b/tests/files/configs/test_config_small_no_icon.yml new file mode 100644 index 0000000..f28e02a --- /dev/null +++ b/tests/files/configs/test_config_small_no_icon.yml @@ -0,0 +1,51 @@ +--- +start_date: &root_start_date '2026-01-01T00:00' +end_date: &root_end_date '2026-02-01T00:00' +cycles: + - bimonthly_tasks: + start_date: *root_start_date + end_date: *root_end_date + period: P2M + tasks: + - shell_task: + inputs: + - initial_conditions: + when: + at: *root_start_date + - data1: + when: + at: *root_start_date + outputs: [restart] +tasks: + - shell_task: + plugin: shell + # Currently full task, so running the script actually works + command: /home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/scripts/shell_task.sh + cli_arguments: + # f"--restart_kwarg restart_value --init {initial_conditions} -a data1 -p 1" + # TODO: How to differentiate between string and data node/socket + keyword: # To be thought about + --restart_kwarg: restart_value # This doesn't map to a file, so is just an option + # --restart_kwarg: {restart_value} # This doesn't map to a file, so is just an option + # --verbosity: 2 + --init: {initial_conditions} # This maps to a file, and should therefore be resolved to a SinglefileData + positional: + # - data1 # This maps to an actual existing file, specified in data section + - data2 # This is just an arbitrary positional argument + flags: + - --test-flag + # - --verbosity=2 # Didn't actually consider this + source_file: + - tests/files/data/dummy_source_file.sh +data: + available: + - initial_conditions: + type: file + src: tests/files/data/initial_conditions + - data1: + type: file + src: tests/files/data/data1 + generated: + - restart: + type: file + src: restart diff --git a/tests/files/data/data1 b/tests/files/data/data1 new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/dummy_source_file.sh b/tests/files/data/dummy_source_file.sh new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/era5 b/tests/files/data/era5 new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/file.ncdf b/tests/files/data/file.ncdf new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/grid b/tests/files/data/grid new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/initial_conditions b/tests/files/data/initial_conditions new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/input b/tests/files/data/input new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/obs_data b/tests/files/data/obs_data new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/data/test_config_parameters.txt b/tests/files/data/test_config_parameters.txt index e64a52c..486bb61 100644 --- a/tests/files/data/test_config_parameters.txt +++ b/tests/files/data/test_config_parameters.txt @@ -3,7 +3,7 @@ cycles: tasks: - icon [date: 2026-01-01 00:00:00, foo: 0, bar: 3.0]: input: - - initial conditions + - initial_conditions - forcing output: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.0] @@ -15,7 +15,7 @@ cycles: 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 + - initial_conditions - forcing output: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.5] @@ -27,7 +27,7 @@ cycles: 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 + - initial_conditions - forcing output: - icon_output [date: 2026-01-01 00:00:00, foo: 1, bar: 3.0] @@ -39,7 +39,7 @@ cycles: 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 + - initial_conditions - forcing output: - icon_output [date: 2026-01-01 00:00:00, foo: 1, bar: 3.5] @@ -77,7 +77,6 @@ cycles: input: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.0] - icon_output [date: 2026-01-01 00:00:00, foo: 1, bar: 3.0] - - icon_output [date: 2026-01-01 00:00:00, foo: 2, bar: 3.0] output: - analysis_foo [date: 2026-01-01 00:00:00, bar: 3.0] name: 'statistics_foo' @@ -88,7 +87,6 @@ cycles: input: - icon_output [date: 2026-01-01 00:00:00, foo: 0, bar: 3.5] - icon_output [date: 2026-01-01 00:00:00, foo: 1, bar: 3.5] - - icon_output [date: 2026-01-01 00:00:00, foo: 2, bar: 3.5] output: - analysis_foo [date: 2026-01-01 00:00:00, bar: 3.5] name: 'statistics_foo' @@ -1276,11 +1274,6 @@ cycles: - merge [date: 2026-01-01 00:00:00]: input: - analysis_foo_bar [date: 2026-01-01 00:00:00] - - analysis_foo_bar [date: 2026-03-01 00:00:00] - - analysis_foo_bar [date: 2026-05-01 00:00:00] - - analysis_foo_bar [date: 2026-07-01 00:00:00] - - analysis_foo_bar [date: 2026-09-01 00:00:00] - - analysis_foo_bar [date: 2026-11-01 00:00:00] output: - yearly_analysis [date: 2026-01-01 00:00:00] name: 'merge' diff --git a/tests/files/data/test_config_small.txt b/tests/files/data/test_config_small.txt index ec105f3..8c58ab8 100644 --- a/tests/files/data/test_config_small.txt +++ b/tests/files/data/test_config_small.txt @@ -2,6 +2,9 @@ cycles: - bimonthly_tasks [date: 2026-01-01 00:00:00]: tasks: - icon [date: 2026-01-01 00:00:00]: + input: + - icon_namelist + - initial_conditions output: - icon_output [date: 2026-01-01 00:00:00] - icon_restart [date: 2026-01-01 00:00:00] @@ -14,6 +17,7 @@ cycles: tasks: - icon [date: 2026-03-01 00:00:00]: input: + - icon_namelist - icon_restart [date: 2026-01-01 00:00:00] output: - icon_output [date: 2026-03-01 00:00:00] @@ -27,6 +31,7 @@ cycles: tasks: - icon [date: 2026-05-01 00:00:00]: input: + - icon_namelist - icon_restart [date: 2026-03-01 00:00:00] output: - icon_output [date: 2026-05-01 00:00:00] diff --git a/tests/files/scripts/argparse b/tests/files/scripts/argparse new file mode 100644 index 0000000..e69de29 diff --git a/tests/files/scripts/cleanup.py b/tests/files/scripts/cleanup.py new file mode 100755 index 0000000..ff9c30e --- /dev/null +++ b/tests/files/scripts/cleanup.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python + +def main(): + # Main script execution continues here + print("Cleaning") + + +if __name__ == '__main__': + main() diff --git a/tests/files/scripts/cleanup.sh b/tests/files/scripts/cleanup.sh new file mode 100755 index 0000000..bc5435d --- /dev/null +++ b/tests/files/scripts/cleanup.sh @@ -0,0 +1 @@ +echo "cleanup" > output diff --git a/tests/files/scripts/extpar b/tests/files/scripts/extpar new file mode 100755 index 0000000..66dc5ac --- /dev/null +++ b/tests/files/scripts/extpar @@ -0,0 +1 @@ +echo "extpar" > output diff --git a/tests/files/scripts/icon b/tests/files/scripts/icon new file mode 100755 index 0000000..ec409b0 --- /dev/null +++ b/tests/files/scripts/icon @@ -0,0 +1,4 @@ +echo "icon" > restart +echo "icon" > output +echo "icon" > output_1 +echo "icon" > output_2 diff --git a/tests/files/scripts/icon.py b/tests/files/scripts/icon.py new file mode 100755 index 0000000..ac9e6c5 --- /dev/null +++ b/tests/files/scripts/icon.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +"""usage: icon.py [-h] [--init [INIT]] [--restart [RESTART]] [--forcing [FORCING]] [namelist] + +A script mocking parts of icon in a form of a shell script + +options: + -h, --help show this help message and exit + --init [INIT] The icon init file. + --restart [RESTART] The icon restart file. + --forcing [FORCING] The icon forcing file. +""" + +import argparse +from pathlib import Path + +LOG_FILE = Path("icon.log") + +def log(text: str): + print(text) + with LOG_FILE.open("a") as f: + f.write(text) + +def main(): + parser = argparse.ArgumentParser(description='A script mocking parts of icon in a form of a shell script.') + parser.add_argument('--init', nargs='?', type=str, help='The icon init file.') + parser.add_argument('namelist', nargs='?', default=None) + parser.add_argument('--restart', nargs='?', type=str, help='The icon restart file.') + parser.add_argument('--forcing', nargs='?', type=str, help='The icon forcing file.') + + + args = parser.parse_args() + + + output = Path('icon_output') + output.write_text("") + + if args.restart and args.init: + msg = "Cannot use '--init' and '--restart' option at the same time." + raise ValueError(msg) + elif args.restart: + if not Path(args.restart).exists(): + msg = f"The icon restart file {args.restart!r} was not found." + raise FileNotFoundError(msg) + restart = Path(args.restart) + + log(f"Restarting from file {args.restart!r}.") + elif args.init: + if not Path(args.init).exists(): + msg = f"The icon init file {args.init!r} was not found." + raise FileNotFoundError(msg) + + log(f"Starting from init file {args.init!r}.") + else: + msg = "Please provide a restart or init file with the corresponding option." + raise ValueError(msg) + + if args.namelist: + log(f"Namelist {args.namelist} provided. Continue with it.") + else: + log("No namelist provided. Continue with default one.") + + # Main script execution continues here + log("Script finished running calculations") + + restart = Path('restart') + restart.write_text("") + +if __name__ == '__main__': + main() + + diff --git a/tests/files/scripts/icon.sh b/tests/files/scripts/icon.sh new file mode 100644 index 0000000..dde2cf8 --- /dev/null +++ b/tests/files/scripts/icon.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Function to write text to the output file +write_to_output() { + local text="$1" + echo "$text" + echo "$text" >> output +} + +# Check if at least one argument is provided +if [ "$#" -lt 1 ]; then + echo "Usage: $0 icon_input [--restart [restart_file]]" + exit 1 +fi + +# Positional argument +icon_input="$1" + +# Optional restart argument +restart_file="" + +if [ "$2" == "--restart" ]; then + if [ -n "$3" ]; then + restart_file="$3" + fi +fi + +# Create/empty the output file +> output + +# Handling restart if the argument is provided +if [ -n "$restart_file" ]; then + if [ -f "$restart_file" ]; then + cat "$restart_file" > /dev/null + write_to_output "Restart operation initiated..." + else + echo "Restart file $restart_file does not exist." + exit 1 + fi +else + write_to_output "No restart option provided. Continuing without restart." +fi + +# Main script execution continues here +write_to_output "Script execution continues..." + +# Create/empty the restart file +> restart diff --git a/tests/files/scripts/main_script_atm.sh b/tests/files/scripts/main_script_atm.sh new file mode 100755 index 0000000..2a361f8 --- /dev/null +++ b/tests/files/scripts/main_script_atm.sh @@ -0,0 +1 @@ +echo "main_script_atm.sh" > postout diff --git a/tests/files/scripts/main_script_ocn.sh b/tests/files/scripts/main_script_ocn.sh new file mode 100755 index 0000000..1d01b24 --- /dev/null +++ b/tests/files/scripts/main_script_ocn.sh @@ -0,0 +1 @@ +echo "python main_script_ocn.sh" > postout diff --git a/tests/files/scripts/merge.py b/tests/files/scripts/merge.py new file mode 100755 index 0000000..2fa9415 --- /dev/null +++ b/tests/files/scripts/merge.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +import argparse +from pathlib import Path + + +def main(): + parser = argparse.ArgumentParser(description="A script mocking parts of icon in a form of a shell script.") + parser.add_argument("file", nargs="+", type=str, help="The files to analyse.") + args = parser.parse_args() + Path("analysis").write_text(f"analysis for file {args.file}") + + +if __name__ == "__main__": + main() diff --git a/tests/files/scripts/post_clean.sh b/tests/files/scripts/post_clean.sh new file mode 100755 index 0000000..b91319f --- /dev/null +++ b/tests/files/scripts/post_clean.sh @@ -0,0 +1 @@ +echo "store_and_clean" > stored_data diff --git a/tests/files/scripts/shell_task.sh b/tests/files/scripts/shell_task.sh new file mode 100755 index 0000000..9740fd7 --- /dev/null +++ b/tests/files/scripts/shell_task.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# Dummy script to validate inputs passed via CLI arguments + +# Function to extract and print positional arguments, keywords, and flags +process_args() { + echo "Processing inputs..." + + # Arrays to store different types of arguments + positional=() + keywords=() + flags=() + + while [[ $# -gt 0 ]]; do + case "$1" in + --*) # Keyword arguments or flags + if [[ "$2" && ! "$2" =~ ^-- ]]; then + keywords+=("$1=$2") + shift 2 + else + flags+=("$1") + shift + fi + ;; + *) # Positional arguments + positional+=("$1") + shift + ;; + esac + done + + # Print positional arguments + echo "Positional arguments:" + for arg in "${positional[@]}"; do + echo " $arg" + done + + # Print keyword arguments + echo "Keyword arguments:" + for keyword in "${keywords[@]}"; do + echo " $keyword" + done + + # Print flags + echo "Flags:" + for flag in "${flags[@]}"; do + echo " $flag" + done +} + +# Process all passed arguments +process_args "$@" + +# Test complete +echo "Test complete. All inputs received and categorized." | tee restart diff --git a/tests/test_wc_workflow.py b/tests/test_wc_workflow.py index 29dcd5c..1448490 100644 --- a/tests/test_wc_workflow.py +++ b/tests/test_wc_workflow.py @@ -5,20 +5,26 @@ from sirocco.core import Workflow from sirocco.pretty_print import PrettyPrinter from sirocco.vizgraph import VizGraph +from sirocco.workgraph import AiidaWorkGraph -@pytest.fixture -def pprinter(): - return PrettyPrinter() - - +@pytest.mark.parametrize("config_path", [ + "tests/files/configs/test_config_small.yml", + "tests/files/configs/test_config_parameters.yml", +]) +def test_run_workgraph(config_path): + core_workflow = Workflow.from_yaml(config_path) + aiida_workflow = AiidaWorkGraph(core_workflow) + out = aiida_workflow.run() + assert out.get('execution_count', None).value == 0 # TODO should be 1 but we need to update workgraph for this + +# configs that are tested only tested parsing config_test_files = [ "tests/files/configs/test_config_small.yml", "tests/files/configs/test_config_large.yml", "tests/files/configs/test_config_parameters.yml", ] - @pytest.fixture(params=config_test_files) def config_paths(request): config_path = Path(request.param) @@ -28,6 +34,9 @@ def config_paths(request): "svg": (config_path.parent.parent / "svgs" / config_path.name).with_suffix(".svg"), } +@pytest.fixture +def pprinter(): + return PrettyPrinter() def test_parse_config_file(config_paths, pprinter): reference_str = config_paths["txt"].read_text() @@ -35,8 +44,7 @@ def test_parse_config_file(config_paths, pprinter): if test_str != reference_str: new_path = Path(config_paths["txt"]).with_suffix(".new.txt") new_path.write_text(test_str) - msg = f"Workflow graph doesn't match serialized data. New graph string dumped to {new_path}." - raise ValueError(msg) + assert reference_str == test_str, f"Workflow graph doesn't match serialized data. New graph string dumped to {new_path}." @pytest.mark.skip(reason="don't run it each time, uncomment to regenerate serilaized data") diff --git a/workgraph-dev.py b/workgraph-dev.py new file mode 100644 index 0000000..55369cd --- /dev/null +++ b/workgraph-dev.py @@ -0,0 +1,40 @@ +#%% + +from sirocco.core import Workflow +from sirocco.parsing import load_workflow_config +from sirocco.pretty_print import PrettyPrinter +from sirocco.vizgraph import VizGraph +from sirocco.workgraph import AiidaWorkGraph +from rich.pretty import pprint + +from aiida import orm, load_profile + +load_profile() + +config_test_files = [ + # "/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/configs/test_config_small.yml", + "/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/configs/test_config_small_no_icon.yml", + # "/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/configs/test_config_large_no_icon.yml", + # "/home/geiger_j/aiida_projects/swiss-twins/git-repos/Sirocco/tests/files/configs/test_config_parameters.yml", +] +# config_path = Path(config_test_files[0]) + +for config_path in config_test_files: + loaded_workflow_config = load_workflow_config(workflow_config=config_path) + # pprint(loaded_workflow_config) + + core_workflow = Workflow.from_yaml(config_path) + # pprint(core_workflow) + # pprint(wf_from_yaml) + + test_str = PrettyPrinter().format(core_workflow) + print(test_str) + + # vizgraph = VizGraph.from_yaml(config_path) + # # print(vizgraph) + # vizgraph.draw() + + aiida_wg = AiidaWorkGraph(core_workflow=core_workflow) + aiida_wg.run() + + # # break