Versions Compared

Key

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

...

Text

Let us modify the suite definition file again

Code Block
# Definition of the suite test.
suite test
 edit ECF_INCLUDE "$HOME/course"
 edit ECF_HOME    "$HOME/course"

 family f4
     edit SLEEP 2
     repeat string NAME a b c d e f
     family f5
         repeat integer VALUE 1 10
         task t1
             repeat date DATE 20101230 20110105
             label info ""
             label date ""
   endfamily
 endfamily
endsuite

 

Python

Code Block
languagepy
title$HOME/course/test.py
#!/usr/bin/env python2.7
import os
import ecflow
from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date,Label, \
                   RepeatString,RepeatInteger,RepeatDate
        
def create_family_f4():
    
f4
return 
= ecflow.
Family("f4"
)
,
               
f4.add_variable("SLEEP", 2)
 Edit(SLEEP=2), 
        
f4.add_repeat( ecflow.
        RepeatString("NAME", ["a", "b", "c", "d", "e", "f" ]
) )
),
          
    
f5
 
=
 
f4.add_family
Family("f5"
)
,
       
f5.add_repeat( ecflow.
             RepeatInteger("VALUE", 1, 10)
)
,
              
    
t1
 
=
 
f5.add_task
Task("t1"
)
,
                 
t1.add_repeat( ecflow.
       RepeatDate("DATE", 20101230, 20110105)
)
,
                        
t1.add_label
Label("info",
"")
.add_label("date", "")
,
         
return
 
f4
    
print
 
"Creating
 
suite
 
definition"
   
defs
 
=
 
ecflow.Defs() suite
 
=
 
defs.add_suite
Label("
test
data","")
suite.add_variable("ECF_INCLUDE",
)))
 
print("Creating suite definition")  
home = os.path.join(os.getenv("HOME"),
 
 "course")
) suite.add_variable("ECF_HOME", os.path.join(os.getenv("HOME"),  "course")) suite.add_family(

defs = Defs( 
        Suite("test",
            Edit(ECF_INCLUDE=home, ECF_HOME=home),
            create_family_f4()
))
print(defs) 
defs


print
("Checking job creation: .ecf -> .job0"
)  
print
(defs.check_job_creation())

print("Checking trigger expressions")
assert len(defs.check()) == 0,defs.check() 

print("Saving definition to file 'test.def'")
defs.save_as_defs("test.def")

What to do

  1. Type in the changes
  2. Replace the suite definition
  3. How many times will /test/f4/f5/t1 run?
  4. In ecflow_ui , try to modify the values of a repeat
      

...