Skip to content

bhaley/workflow

Repository files navigation

workflow

Python library for creating iterative workflows of local tasks

This simple workflow library is designed to iteratively execute a sequence of tasks, which can be simple Python functions or complex external simulators.
It does not support access to remote computers or batch systems; for that case see the Pegasus project.

The workflow is specified by a JSON file, with the following format:

{
    "workflow": {
        "echo_output": true,
        "tasks": [
            {
                "taskname": taskname,
                "iomap": {
                    "input_name": "prev_output_name"
                }
            }
        ]
    }
}

The tasks array determines the order of the specific tasks, and each task is specified by a JSON file, like the following:

{
    "task": {
        "name": "Task name",
        "command": "/path/to/exe input_file",
        "echo_output": true,
        "templates": {
            "input_file": "input_file_template",
        },
        "inputs": {
            "input_name": {
                "type":  "type_name",
                "value": "",
                "label": "",
                "units": "",
                "tags": []
            } 
        },
        "outputs": {},
    }
}

Each input and output parameter has a name, a type, and a value, and can include optional label, units, and metadata tags. The value field can be any of the following:

  • boolean
  • string
  • integer
  • real
  • array
  • uri

About

Python library for creating iterative workflows of local tasks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages