CLI reference#

ewoks install#

Install the packages required to run a workflow.

ewoks install relies on the existence of the requirements field in the graph field of the workflow.

If no requirements field exist, ewoks install will try to extract requirements from the tasks in the workflows before installing them.

Unless --yes is provided, ewoks install will ask for confirmation before installing the packages.

By default, packages are installed in the current Python environment: if ewoks install is run in a virtual environment, the packages will be installed in this virtual environment.

usage: ewoks install [-h] [--test] [--search] [--workflow-dir ROOT_DIR]
                     [--workflow-module ROOT_MODULE] [--yes] [-p PYTHON]
                     workflows [workflows ...]

Positional Arguments#

workflows

Workflow(s) to install (e.g. JSON filename, JSON string).

Named Arguments#

--test

The ‘workflow’ argument refers to the name of a test graph.

Default: False

--search

The ‘workflow’ argument is a pattern to search for.Ignored when –test is provided.

Default: False

--workflow-dir

Directory for path-like workflow representations or task identifiers of sub-workflows (cwd by default).

--workflow-module

Python root module for module-like workflow representations or task identifiers of sub-workflows (cwd by default).

--yes

Automatically accept installation prompts.

Default: False

-p, --python

Python interpreter of the environment where the packages should be installed. Default: current environment Python.

ewoks convert#

Convert a source workflow in another format supported by Ewoks.

The source workflow is untouched: a new destination workflow is created.

Important

ewoks convert will save the packages installed in the current environment as requirements in the destination workflow.

⚠️ If the source workflow has a requirements field, it will therefore be replaced by this package list.

This can be disabled by using the --exclude-requirements argument.

ewoks convert can also be used to store inputs inside the destination workflow.

usage: ewoks convert [-h] [--test] [--search] [--workflow-dir ROOT_DIR]
                     [--workflow-module ROOT_MODULE] [-p [NODE:]NAME=VALUE]
                     [--input-node-id {id,label,taskid}]
                     [--inputs {start,all}]
                     [--src-format {json,json_dict,json_module,json_string,ows,test_core,yaml}]
                     [--dst-format {json,json_dict,json_module,json_string,ows,test_core,yaml}]
                     [-o OPTION=VALUE] [-s OPTION=VALUE]
                     [--exclude-requirements]
                     workflows [workflows ...] destination

Positional Arguments#

workflows

Workflow(s) to convert (e.g. JSON filename, JSON string).

destination

Destination of the conversion (e.g., JSON filename).

Named Arguments#

--test

The ‘workflow’ argument refers to the name of a test graph.

Default: False

--search

The ‘workflow’ argument is a pattern to search for.Ignored when –test is provided.

Default: False

--workflow-dir

Directory for path-like workflow representations or task identifiers of sub-workflows (cwd by default).

--workflow-module

Python root module for module-like workflow representations or task identifiers of sub-workflows (cwd by default).

-p, --parameter

Input variable for a particular node (or all start nodes when missing)

Default: []

--input-node-id

Possible choices: id, label, taskid

The NODE attribute used when specifying an input parameter

Default: 'id'

--inputs

Possible choices: start, all

Inputs without a specific node go to start/all nodes

Default: 'start'

--src-format

Possible choices: json, json_dict, json_module, json_string, ows, test_core, yaml

Source format.

--dst-format

Possible choices: json, json_dict, json_module, json_string, ows, test_core, yaml

Destination format.

-o, --load-option

Load options.

Default: []

-s, --save-option

Save options.

Default: []

--exclude-requirements

Do not include the packages of the current Python environment as requirements in the destination workflow.

Default: False

ewoks execute#

Execute a workflow using one of the Ewoks-supported engine.

The workflow can have any format as long it is supported by Ewoks.

Inputs can be provided only for this execution.

Tip

Using the execution option convert_destination (-o convert_destination=<new_workflow_name>) runs ewoks convert on the executed workflow, producing a new workflow that stored the inputs and the requirements inside.

The produced workflow can then be used as a provenance document since it can reproduce the source workflow execution in exactly the same way.

usage: ewoks execute [-h] [--test] [--search] [--workflow-dir ROOT_DIR]
                     [--workflow-module ROOT_MODULE] [-p [NODE:]NAME=VALUE]
                     [--input-node-id {id,label,taskid}]
                     [--inputs {start,all}] [--workflow-format REPRESENTATION]
                     [--data-root-uri DATA_ROOT_URI]
                     [--data-scheme {nexus,json}] [-o OPTION=VALUE]
                     [-t OPTION=VALUE] [-j JOB_ID] [--disable-events]
                     [--sqlite3 SQLITE3_URI] [--outputs {none,end,all}]
                     [--merge-outputs] [--engine ENGINE]
                     workflows [workflows ...]

Positional Arguments#

workflows

Workflow(s) to execute (e.g. JSON filename, JSON string).

Named Arguments#

--test

The ‘workflow’ argument refers to the name of a test graph.

Default: False

--search

The ‘workflow’ argument is a pattern to search for.Ignored when –test is provided.

Default: False

--workflow-dir

Directory for path-like workflow representations or task identifiers of sub-workflows (cwd by default).

--workflow-module

Python root module for module-like workflow representations or task identifiers of sub-workflows (cwd by default).

-p, --parameter

Input variable for a particular node (or all start nodes when missing)

Default: []

--input-node-id

Possible choices: id, label, taskid

The NODE attribute used when specifying an input parameter

Default: 'id'

--inputs

Possible choices: start, all

Inputs without a specific node go to start/all nodes

Default: 'start'

--workflow-format

Source format. Ignored when –test is provided.

Default: ````

--data-root-uri

Root for Ewoks task result caching.

Default: ''

--data-scheme

Possible choices: nexus, json

Data format for Ewoks task result caching.

Default: 'nexus'

-o, --option

Engine execution option.

Default: []

-t, --task-option

Ewoks task option.

Default: []

-j, --jobid

Job ID for Ewoks events.

--disable-events

Disable Ewoks events

Default: False

--sqlite3

Store Ewoks events in an SQLite3 DB.

--outputs

Possible choices: none, end, all

Print Ewoks task outputs.

Default: 'none'

--merge-outputs

Print merged Ewoks task outputs.

Default: False

--engine

Execution engine.

Default: 'core'

ewoks submit#

Execute a workflow remotely, in a worker.

Very similar to ewoks execute except the execution does not run in this environment (client) but in a remote one (worker).

Requires the EWOKS_CONFIG_URI environment variable to be set.

Tip

Before running this command, the client and the worker must have agreed on a messaging protocol to communicate.

See the ewoksjob documentation to see how to set-up this.

usage: ewoks submit [-h] [--test] [--search] [--workflow-dir ROOT_DIR]
                    [--workflow-module ROOT_MODULE] [-p [NODE:]NAME=VALUE]
                    [--input-node-id {id,label,taskid}] [--inputs {start,all}]
                    [--workflow-format REPRESENTATION]
                    [--data-root-uri DATA_ROOT_URI]
                    [--data-scheme {nexus,json}] [-o OPTION=VALUE]
                    [-t OPTION=VALUE] [-j JOB_ID] [--disable-events]
                    [--sqlite3 SQLITE3_URI] [--outputs {none,end,all}]
                    [--merge-outputs] [--engine ENGINE] [--wait WAIT]
                    [-c NAME=VALUE] [--load-remote]
                    workflows [workflows ...]

Positional Arguments#

workflows

Workflow(s) to execute (e.g. JSON filename, JSON string).

Named Arguments#

--test

The ‘workflow’ argument refers to the name of a test graph.

Default: False

--search

The ‘workflow’ argument is a pattern to search for.Ignored when –test is provided.

Default: False

--workflow-dir

Directory for path-like workflow representations or task identifiers of sub-workflows (cwd by default).

--workflow-module

Python root module for module-like workflow representations or task identifiers of sub-workflows (cwd by default).

-p, --parameter

Input variable for a particular node (or all start nodes when missing)

Default: []

--input-node-id

Possible choices: id, label, taskid

The NODE attribute used when specifying an input parameter

Default: 'id'

--inputs

Possible choices: start, all

Inputs without a specific node go to start/all nodes

Default: 'start'

--workflow-format

Source format. Ignored when –test is provided.

Default: ````

--data-root-uri

Root for Ewoks task result caching.

Default: ''

--data-scheme

Possible choices: nexus, json

Data format for Ewoks task result caching.

Default: 'nexus'

-o, --option

Engine execution option.

Default: []

-t, --task-option

Ewoks task option.

Default: []

-j, --jobid

Job ID for Ewoks events.

--disable-events

Disable Ewoks events

Default: False

--sqlite3

Store Ewoks events in an SQLite3 DB.

--outputs

Possible choices: none, end, all

Print Ewoks task outputs.

Default: 'none'

--merge-outputs

Print merged Ewoks task outputs.

Default: False

--engine

Execution engine.

Default: 'core'

--wait

Timeout for receiving the result. Negative number to disable.

Default: -1

-c, --cparameter

Job scheduling parameter.

Default: []

--load-remote

Load the workflow remotely instead of locally.

Default: False

ewoks show#

Display the workflow parameters with their default values and descriptions.

Required parameters without default value are highlighted. Parameters which get their value at runtime from upstream nodes in the workflow are not shown.

Parameters values in the displayed table can be provided in the same way as inputs for ewoks execute.

usage: ewoks show [-h] [--test] [--search] [--workflow-dir ROOT_DIR]
                  [--workflow-module ROOT_MODULE] [-p [NODE:]NAME=VALUE]
                  [--input-node-id {id,label,taskid}] [--inputs {start,all}]
                  [--src-format {json,json_dict,json_module,json_string,ows,test_core,yaml}]
                  [-o OPTION=VALUE]
                  workflows [workflows ...]

Positional Arguments#

workflows

Workflow(s) to show (e.g. JSON filename, JSON string).

Named Arguments#

--test

The ‘workflow’ argument refers to the name of a test graph.

Default: False

--search

The ‘workflow’ argument is a pattern to search for.Ignored when –test is provided.

Default: False

--workflow-dir

Directory for path-like workflow representations or task identifiers of sub-workflows (cwd by default).

--workflow-module

Python root module for module-like workflow representations or task identifiers of sub-workflows (cwd by default).

-p, --parameter

Input variable for a particular node (or all start nodes when missing)

Default: []

--input-node-id

Possible choices: id, label, taskid

The NODE attribute used when specifying an input parameter

Default: 'id'

--inputs

Possible choices: start, all

Inputs without a specific node go to start/all nodes

Default: 'start'

--src-format

Possible choices: json, json_dict, json_module, json_string, ows, test_core, yaml

Source format.

-o, --load-option

Load options.

Default: []