ecflow.NodeContainer

class ecflow.NodeContainer

Bases: Node

NodeContainer is the abstract base class for a Suite and Family

A NodeContainer can have Families and Tasks as children

NodeContainer.add_family((NodeContainer)arg1, (str)arg2) Family :

Add a family. See ecflow.Family.

Multiple families can be added. However family names must be unique. for a given parent. Families can be hierarchical.

Exception:

  • Throws RuntimeError if a duplicate is added

Usage:

suite = Suite('suite')          # create a suite
f1 = Family('f1')               # create a family
suite.add_family(f1)            # add family to suite
f2 = suite.add_family('f2')     # create a family and add to suite

add_family( (NodeContainer)arg1, (Family)arg2) -> Family

NodeContainer.add_task((NodeContainer)arg1, (str)arg2) Task :

Add a task. See ecflow.Task

Multiple Tasks can be added. However Task names must be unique, for a given parent. Task can be added to Familiy’s or Suites.

Exception:

  • Throws RuntimeError if a duplicate is added

Usage:

f1 = Family('f1')      # create a family
t1 = Task('t1')          # create a task
f1.add_task(t1)          # add task to family
t2 = f1.add_task('t2') # create task 't2' and add to family

add_task( (NodeContainer)arg1, (Task)arg2) -> Task

NodeContainer.find_family((NodeContainer)arg1, (str)arg2) Family :

Find a family given a name

NodeContainer.find_node((NodeContainer)arg1, (str)arg2) Node :

Find immediate child node given a name

NodeContainer.find_task((NodeContainer)arg1, (str)arg2) Task :

Find a task given a name

property NodeContainer.nodes

Returns a list of Node’s