...
Horizontal Navigation Bar |
---|
Button Group |
---|
Button Hyperlink |
---|
title | Previous |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Time+Dependencies |
---|
|
Button Hyperlink |
---|
title | Up |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Going+Further |
---|
|
Button Hyperlink |
---|
title | Next |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Advanced+Topics |
---|
|
|
|
Another approach is to use ecf.py module to benefit from object oriented polymorphismFor alternative styles:
Code Block |
---|
| #!/usr/bin/env python2.7
import os
|
|
...
for ecflow import *
print "Creating suite definition"
home = os.path.join(os.getenv("HOME"), "course")
defs = Defs().add( |
|
...
Suite("test").add(
Edit(ECF_INCLUDE=home,ECF_HOME=home),
|
|
...
Family("f1").add(
Edit(SLEEP=20),
Task(" |
|
...
t1").add(Meter("progress", 1, 100, 90)),
|
|
...
...
Task("t2").add( Trigger("t1 eq complete"), Event("a"),Event("b")),
|
|
...
...
t3").add(Trigger("t2:a")),
|
|
...
Task("t4").add(Trigger("t2 eq complete"), Complete("t2:b")),
Task("t5").add(Trigger("t1:progress ge 30")),
Task("t6").add( |
|
...
Trigger("t1:progress ge 60")), |
|
...
Task("t7").add(Trigger("t1:progress ge 90")),),
|
|
...
...
f2").add(
Edit(SLEEP=20),
|
|
...
...
").add(Time( "00:30 23:30 00:30" )),
|
|
...
Task("t2").add(Day( "sunday" )),
|
|
...
Task("t3").add(Date("1.*.*"), Time("12:00")),
Task(" |
|
...
...
...
...
...
...
(Time("00:02")))))
print defs
print "Checking job creation: .ecf -> .job0"
print defs.check_job_creation()
print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def") |
|
Code Block |
---|
| #!/usr/bin/env python2.7
import os
for ecflow import *
print "Creating suite definition"
home = os.path.join(os.getenv("HOME"), "course")
with Defs() as defs:
with defs.add_suite("test") as suite:
suite += [ Edit(ECF_INCLUDE=home,ECF_HOME=home) ]
with |
|
...
...
f1") as f1:
for i in range(1,8):
f1 += [ Task(" |
|
...
t{}".format(i))]
f1 += [ Edit(SLEEP=20) ]
f1.t1 += [ Meter("progress", 1, 100, 90) ]
f1.t2 += [ Trigger("t1 |
|
...
...
...
complete"), Event("a"), Event("b") ]
|
|
...
f1.t3 += [ Trigger("t2:a") ]
f1.t4 += [ Trigger("t2 eq complete"), Complete("t2:b") ]
f1.t5 += [ Trigger("t1:progress ge |
|
...
...
...
...
t1:progress ge 60") ]
f1.t7 += [ Trigger("t1:progress ge 90") |
|
...
...
with suite.add_family("f2") |
|
...
...
f2 += [ Edit(SLEEP=20),
Task("t1").add(Time( "00:30 23:30 00:30" )),
Task("t2").add(Day( "sunday" )),
Task("t3").add(Date("1.*.*"), |
|
...
...
Time("12:00")),
Task("t4").add(Time("+00:02")),
Task("t5").add(Time("00:02")) |
|
...
...
defs
print "Checking job creation: .ecf -> .job0"
print defs.check_job_creation()
print "Saving definition to file 'test.def'"
defs.save_as_defs("test.def") |
|