Versions Compared

Key

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

...

Python Method

Enter the following python code into a file i.e. test.py :

#!/usr/bin/env python2.7
import os
import ecflow 
   
print "Creating suite definition"   
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_HOME", os.path.join(os.getenv("HOME"),  "course"))
suite.add_task("t1")
print defs

 

Then run as a python script:

 

Code Block
languagebash
python test.py

You should see the text "Creating suite definition" and then your definition as your output.

 

Note
All the following python examples should be run in the same way.

pyflow Method

pyflow is a pure python module on top of ecflow native API ;it is proposed to facilitate suites definitions. It is not yet provided in default standard location. It can be used, adding this one line to the definition script.

Code Block
languagepy
titleimport pyflow
import sys; sys.path.append("/home/ma/emos/def/pyflow")

Enter the following python code into a file i.e. test.py :

#!/usr/bin/env python2.7
import os
from pyflow import (Suite, Family, Task, Variable)
   
print "Creating suite definition"   
with Suite("test" ) as suite: 
 ECF_HOME = os.path.join(os.getenv("HOME"),  "course") # python vriable
V
ariable("ECF_HOME", ECF_HOME) # suite variable Task("t1")
print suite.ecflow_definition()

Then run as a python script:

Emos Method

Using the python module ecf.py leads to similar syntax  :

#!/usr/bin/env python2.7
import os
import
sys
sys.path.append('/home/ma/emos/def/o/def')
from
ecf import * print "Creating suite definition" defs = Defs().add( Suite("test").add( Variable("ECF_HOME", os.path.join(os.getenv("HOME"),  "course")),
T
ask("t1"),
)
)
print defs

What to do

  1. Initially try both plain text and python examples. Later examples are only in python.
  2. Type in the suite definition file.
      

...