Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Defs, Suite, Family, and Task from form a node hierarchy: Every Suite, Family, and Task must have a name. This name must be unique between the peers.

The following example show shows different ways of adding node hierarchy(they produce identical definitions)

...

The following examples show alternative styles of adding suites, families, and tasks: They produce exactly the same suite as above.


Code Block
languagepy
from ecflow import *
defs = Defs(
        Suite("s1",
            Family("f1",
              [ Task("t{0}".format(t)) for t in ("a", "b", "c")])))
defs.save_as_defs("test.def")    



Code Block
languagepy
from ecflow import *
defs = Defs().add( 
         Suite("s1").add(
            Family("f1").add(
               [ Task("t{}".format(t)) 
                 for t in ("a", "b", "c")])))     
defs.save_as_defs("test.def")    



Code Block
languagepy
from ecflow import *
defs = Defs()
defs += Suite("s1") 
defs.s1 += Family("f1") 
defs.s1.f1 += [ Task("t{}".format(t)) 
                for t in ("a", "b", "c")] 
defs.save_as_defs("test.def")     


...

The following example adds 5 suites, with 5 families with 5 tasks. However, care needs to be taken, to ensure that python is readable. It is recommended that you check your results

Code Block
from ecflow import *
defs = Defs( 
           [ Suite("s{0}".format(i),
               [ Family("f{0}".format(i),
                    [ Task("t{0}".format(i)) for i in range(1,6)] )
                for i in range(1,6)]  ) 
            for i in range(1,6) ] )
assert(len(defs)==5, " expected 5 suites but found " + str(len(defs)))
for suite in defs:
   assert(len(suite)==5, " expected 5 familesfamilies but found " + str(len(suite)))
   for fam in suite:
      assert(len(fam)==5, " expected 5 tasks but found " + str(len(fam)))

...