Create a file called test.def , using your favourite text editor, with the following contents
# Definition of the suite test suite test edit ECF_HOME "$HOME/course" # replace '$HOME' with the path to your home directory task t1 endsuite |
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:
python test.py |
You should see the text "Creating suite definition" and then your definition as your output.
All the following python examples should be run in the same way. |
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.
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
Variable("ECF_HOME", ECF_HOME) # suite variable Task("t1")
print suite.ecflow_definition()
Then run as a python script:
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")),
Task("t1"),
)
)
print defs
|