Tools and Workflows

Manage creation of tools and workflows using the Common Workflow Language (CWL).

Common Workflow language

Renku uses CWL to represent runnable steps (tools) along with their inputs and outputs. Similarly, tools can be chained together to form CWL-defined workflows.

Command-line tool

Represent a CommandLineTool from the Common Workflow Language.

class renku.models.cwl.command_line_tool.CommandLineTool(requirements=NOTHING, hints=NOTHING, label=None, doc=None, cwlVersion='v1.0', baseCommand='', arguments=NOTHING, stdin=None, stdout=None, stderr=None, inputs=NOTHING, outputs=NOTHING, successCodes=NOTHING, temporaryFailCodes=NOTHING, permanentFailCodes=NOTHING)[source]

Represent a command line tool.

STD_STREAMS_REPR = {'stderr': '2>', 'stdin': '<', 'stdout': '>'}

Format streams for a shell command representation.

create_run(**kwargs)[source]

Return an instance of process run.

get_output_id(path)[source]

Return an id of the matching path from default values.

to_argv(job=None)[source]

Generate arguments for system call.

class renku.models.cwl.command_line_tool.CommandLineToolFactory(command_line, explicit_inputs=[], explicit_outputs=[], directory='.', working_dir='.', stdin=None, stderr=None, stdout=None, successCodes=NOTHING)[source]

Command Line Tool Factory.

add_indirect_inputs()[source]

Read indirect inputs list and add them to explicit inputs.

add_indirect_outputs()[source]

Read indirect outputs list and add them to explicit outputs.

delete_indirect_files_list()[source]

Remove indirect inputs and outputs list.

file_candidate(candidate, ignore=None)[source]

Return a path instance if it exists in current directory.

find_explicit_inputs()[source]

Yield explicit inputs and command line input bindings if any.

find_explicit_outputs(starting_output_id)[source]

Yield explicit output and changed command input parameter.

generate_tool()[source]

Return an instance of command line tool.

guess_inputs(*arguments)[source]

Yield command input parameters and command line bindings.

guess_outputs(paths)[source]

Yield detected output and changed command input parameter.

guess_type(value, ignore_filenames=None)[source]

Return new value and CWL parameter type.

read_files_list(files_list)[source]

Read files list where each line is a filepath.

split_command_and_args()[source]

Return tuple with command and args from command line arguments.

validate_command_line(attribute, value)[source]

Check the command line structure.

validate_path(attribute, value)[source]

Path must exists.

watch(client, no_output=False)[source]

Watch a Renku repository for changes to detect outputs.

renku.models.cwl.command_line_tool.convert_arguments(value)[source]

Convert arguments from various input formats.

Parameter

Represent parameters from the Common Workflow Language.

class renku.models.cwl.parameter.CommandInputParameter(id=None, streamable=None, type='string', description=None, default=None, inputBinding=None)[source]

An input parameter for a CommandLineTool.

classmethod from_cwl(data)[source]

Create instance from type definition.

to_argv(**kwargs)[source]

Format command input parameter as shell argument.

class renku.models.cwl.parameter.CommandLineBinding(position=None, prefix=None, separate: bool = True, itemSeparator=None, valueFrom=None, shellQuote: bool = True)[source]

Define the binding behavior when building the command line.

to_argv(default=None)[source]

Format command line binding as shell argument.

class renku.models.cwl.parameter.CommandOutputBinding(glob=None)[source]

Define the binding behavior for outputs.

class renku.models.cwl.parameter.CommandOutputParameter(id=None, streamable=None, type='string', description=None, format=None, outputBinding=None)[source]

Define an output parameter for a CommandLineTool.

class renku.models.cwl.parameter.InputParameter(id=None, streamable=None, type='string', description=None, default=None, inputBinding=None)[source]

An input parameter.

class renku.models.cwl.parameter.OutputParameter(id=None, streamable=None, type='string', description=None, format=None, outputBinding=None)[source]

An output parameter.

class renku.models.cwl.parameter.Parameter(streamable=None)[source]

Define an input or output parameter to a process.

class renku.models.cwl.parameter.WorkflowOutputParameter(id=None, streamable=None, type='string', description=None, format=None, outputBinding=None, outputSource=None)[source]

Define an output parameter for a Workflow.

renku.models.cwl.parameter.convert_default(value)[source]

Convert a default value.

Process

Represent a Process from the Common Workflow Language.

class renku.models.cwl.process.Process[source]

Represent a process.

iter_input_files(basedir)[source]

Yield tuples with input id and path.

Types

Represent the Common Workflow Language types.

class renku.models.cwl.types.Directory(path=None, listing=NOTHING)[source]

Represent a directory.

class renku.models.cwl.types.Dirent(entryname=None, entry=None, writable=False)[source]

Define a file or subdirectory.

class renku.models.cwl.types.File(path)[source]

Represent a file.

class renku.models.cwl.types.PathFormatterMixin[source]

Format path property.

Workflow

Represent workflows from the Common Workflow Language.

class renku.models.cwl.workflow.Workflow(inputs=NOTHING, requirements=NOTHING, hints=NOTHING, label=None, doc=None, cwlVersion='v1.0', outputs=NOTHING, steps=NOTHING)[source]

Define a workflow representation.

add_step(**kwargs)[source]

Add a workflow step.

create_run(**kwargs)[source]

Return an instance of process run.

get_output_id(path)[source]

Return an id of the matching path from default values.

topological_steps

Return topologically sorted steps.

class renku.models.cwl.workflow.WorkflowStep(run, id=NOTHING, in_=None, out=None)[source]

Define an executable element of a workflow.

renku.models.cwl.workflow.convert_run(value)[source]

Convert value to CWLClass if dict is given.