Page History
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Text Method
The python method is recommended unless you are planning a simple suite.
Create a file called test.def , using your favourite text editor, with the following contents
Code Block | ||||
---|---|---|---|---|
| ||||
# Definition of the suite test suite test edit ECF_HOME "$HOME/course" # replace '$HOME' with the path to your home directory task t1 endsuite |
- This line is a comment line. Any characters between the # and the end of line are ignored
- This line defines a new suite by the name of test.
- Here we define a ecFlow variable called ECF_HOME.
This variable defines the directory where all the unix files that will be used by the suite test will reside.
For the rest of the course all file names will be given relative to this directory.
Be sure to replace $HOME with the path to your home directory - This defines a task named t1
- The endsuite finishes the definition of the suite test test
Python Method
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 | ||||
---|---|---|---|---|
| ||||
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.7Code Block | ||||
---|---|---|---|---|
| ||||
import os from |
ecflow import |
Defs,Suite |
, |
Task, |
Edit print |
("Creating suite definition" |
) |
home = os.path.join(os.getenv("HOME"), |
"course") |
Variable("ECF_HOME", ECF_HOME) # suite variable T ask("t1")
print suite.ecflow_definition()
Then run as a python script:
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
defs = Defs(
Suite('test',
Edit(ECF_HOME=home),
Task('t1')))
print(defs) |
Then run as a python script:
python
Code Block |
---|
language | bash |
---|
python3 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. |
Emos Method
Code Block | ||||
---|---|---|---|---|
|
#!/usr/bin/env |
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
python3
... |
Code Block |
---|
chmod +x test.py
./test.py # this uses shebang, see below, searches for specified python variant in $PATH |
You should see the text "Creating suite definition" and then your definition as your output.
What to do
- Initially try both plain text and python examples. Later examples are only in python.
- Type in the suite definition file.
Choose python invocation. i.e. python3 test.py | ./test.py.
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...