...
Code Block |
---|
|
from ecflow import Defs,Suite,Family,Task,RepeatDay,RepeatEnumerated,RepeatString,RepeatInteger,RepeatDateList
def add_tasks(fam):
for i in range(1,3):
fam.add_task(Task("t{}".format(i)))
defs = Defs()
s1 = defs.add_suite("s1")
f1 = s1.add_family("f1")
f1.add_repeat( RepeatDate("YMD",20100111,20100115,2) )
add_tasks(f1)
f2 = s1.add_family("f2")
f2.add_repeat( RepeatInteger("count",0,100,2) )
add_tasks(f2)
f3 = s1.add_family("f3")
f3.add_repeat( RepeatEnumerated("enum",["red", "green", "blue" ] ) )
add_tasks(f3)
f4 = s1.add_family("f4")
f4.add_repeat( RepeatString("enum",["a", "b", "c" ] ) )
add_tasks(f4)
f5 = s1.add_family("f5")
f5.add_repeat( RepeatDay(1) )
add_tasks(f5)
f6 = s1.add_family("f6")
f6.add_repeat( RepeatDateList("YMD",[20130101, 20130102, 20130103 ]) ) # arbitary date list
add_tasks(f6)
|
The following examples show alternative styles that produce produces the same definition:
).add().add().add(
,
RepeatDate("YMD",20100111,20100115,2),
[ Task("t{}".format(i)) for i in range(1,3) ] ),
Family("f2" |
|
).add(
,
RepeatInteger("count",0,100,2),
[ Task("t{}".format(i)) for i in range(1,3) ] ),
Family("f3" |
|
).add(,
RepeatEnumerated("enum",["red", "green", "blue" ] ),
[ Task("t{}".format(i)) for i in range(1,3) ] ),
Family("f4" |
|
).add(,
RepeatString("enum",["a", "b", "c" ] ),
[ Task("t{}".format(i)) for i in range(1,3) ] ),
Family("f5",
RepeatDay(1) |
|
.add(
,
[ Task("t{}".format(i)) for i in range(1,3) ] ),
Family("f6",
|
|
RepeatDay(1RepeatDateList("YMD",[20130101,20130102,20130103]),
[ Task("t{}".format(i)) for i in range(1,3) ] ))) |
|
Code Block |
---|
| defs = Defs() + Suite("s1")
defs.s1 += [ Family("f{}".format(i)).add(
[ Task("t{}".format(i)) for i in range(1,3) ])
for i in range(1,6) ]
defs.s1.f1 += RepeatDate("YMD",20100111,20100115,2)
defs.s1.f2 += RepeatInteger("count",0,100,2)
defs.s1.f3 += RepeatEnumerated("enum",["red", "green", "blue" ] )
defs.s1.f4 += RepeatString("enum",["a", "b", "c" ] )
defs.s1.f5 += RepeatDay(1)
defs.s1.f6 += RepeatDateList("YMD",[20130101,20130102,20130103])
|
|
Warning |
---|
In the second example above we use 'defs.s1.*' to reference a node by name. This is useful in small designs but will produce maintenance issues in large designs IF the node names are changed. |