toil.server.wes.abstract_backend

Attributes

logger

TaskLog

Exceptions

VersionNotImplementedException

Raised when the requested workflow version is not implemented.

MalformedRequestException

Raised when the request is malformed.

WorkflowNotFoundException

Raised when the requested run ID is not found.

WorkflowConflictException

Raised when the requested workflow is not in the expected state.

OperationForbidden

Raised when the request is forbidden.

WorkflowExecutionException

Raised when an internal error occurred during the execution of the workflow.

Classes

WESBackend

A class to represent a GA4GH Workflow Execution Service (WES) API backend.

Functions

handle_errors(func)

This decorator catches errors from the wrapped function and returns a JSON

Module Contents

toil.server.wes.abstract_backend.logger
toil.server.wes.abstract_backend.TaskLog
exception toil.server.wes.abstract_backend.VersionNotImplementedException(wf_type, version=None, supported_versions=None)

Bases: Exception

Raised when the requested workflow version is not implemented.

Parameters:
  • wf_type (str)

  • version (Optional[str])

  • supported_versions (Optional[list[str]])

exception toil.server.wes.abstract_backend.MalformedRequestException(message)

Bases: Exception

Raised when the request is malformed.

Parameters:

message (str)

exception toil.server.wes.abstract_backend.WorkflowNotFoundException

Bases: Exception

Raised when the requested run ID is not found.

exception toil.server.wes.abstract_backend.WorkflowConflictException(run_id)

Bases: Exception

Raised when the requested workflow is not in the expected state.

Parameters:

run_id (str)

exception toil.server.wes.abstract_backend.OperationForbidden(message)

Bases: Exception

Raised when the request is forbidden.

Parameters:

message (str)

exception toil.server.wes.abstract_backend.WorkflowExecutionException(message)

Bases: Exception

Raised when an internal error occurred during the execution of the workflow.

Parameters:

message (str)

toil.server.wes.abstract_backend.handle_errors(func)

This decorator catches errors from the wrapped function and returns a JSON formatted error message with the appropriate status code defined by the GA4GH WES spec.

Parameters:

func (Callable[Ellipsis, Any])

Return type:

Callable[Ellipsis, Any]

class toil.server.wes.abstract_backend.WESBackend(options)

A class to represent a GA4GH Workflow Execution Service (WES) API backend. Intended to be inherited. Subclasses should implement all abstract methods to handle user requests when they hit different endpoints.

Parameters:

options (list[str])

options
resolve_operation_id(operation_id)

Map an operationId defined in the OpenAPI or swagger yaml file to a function.

Parameters:

operation_id (str) – The operation ID defined in the specification.

Returns:

A function that should be called when the given endpoint is reached.

Return type:

Any

abstract get_service_info()

Get information about the Workflow Execution Service.

GET /service-info

Return type:

dict[str, Any]

abstract list_runs(page_size=None, page_token=None)

List the workflow runs.

GET /runs

Parameters:
  • page_size (Optional[int])

  • page_token (Optional[str])

Return type:

dict[str, Any]

abstract run_workflow()

Run a workflow. This endpoint creates a new workflow run and returns a RunId to monitor its progress.

POST /runs

Return type:

dict[str, str]

abstract get_run_log(run_id)

Get detailed info about a workflow run.

GET /runs/{run_id}

Parameters:

run_id (str)

Return type:

dict[str, Any]

abstract cancel_run(run_id)

Cancel a running workflow.

POST /runs/{run_id}/cancel

Parameters:

run_id (str)

Return type:

dict[str, str]

abstract get_run_status(run_id)

Get quick status info about a workflow run, returning a simple result with the overall state of the workflow run.

GET /runs/{run_id}/status

Parameters:

run_id (str)

Return type:

dict[str, str]

static log_for_run(run_id, message)
Parameters:
  • run_id (Optional[str])

  • message (str)

Return type:

None

static secure_path(path)
Parameters:

path (str)

Return type:

str

collect_attachments(run_id, temp_dir)

Collect attachments from the current request by staging uploaded files to temp_dir, and return the temp_dir and parsed body of the request.

Parameters:
  • run_id (Optional[str]) – The run ID for logging.

  • temp_dir (Optional[str]) – The directory where uploaded files should be staged. If None, a temporary directory is created.

Return type:

tuple[str, dict[str, Any]]