ecflow.Expression
- class ecflow.Expression
Bases:
instance
Expression holds trigger or complete expression. Also see ecflow.Trigger
Expressions can contain references to events, meters, user variables,repeat variables and generated variables. Expressions hold a list of part expressions. This allows us to split a large trigger or complete expression into smaller ones.
Constructor:
Expression( expression )
string expression : This typically represents the complete expression
however part expression can still be added
Expression( part )
PartExpression part: The first part expression should have no 'and/or' set
Usage: To add simple expression this class can be by passed, i.e. can use:
task = Task('t1')
task.add_trigger( 't2 == active' )
task.add_complete( 't2 == complete' )
task = Task('t2')
task.add_trigger( 't1 == active' )
task.add_part_trigger( 't3 == active', True)
To store and add large expressions use a Expression with PartExpression:
big_expr = Expression( PartExpression('t1 == complete or t4 == complete') )
big_expr.add( PartExpression('t5 == active',True) )
big_expr.add( PartExpression('t7 == active',False) )
task.add_trigger( big_expr)
In the example above the trigger for task is equivalent to ‘t1 == complete or t4 == complete and t5 == active or t7 == active’
big_expr2 = Expression('t0 == complete'))
big_expr2.add( PartExpression('t1 == complete or t4 == complete',True) )
big_expr2.add( PartExpression('t5 == active',False) )
task2.add_trigger( big_expr2)
Here the trigger for task2 is equivalent to ‘t0 == complete and t1 == complete or t4 == complete or t5 == active’
- Expression.add((Expression)arg1, (PartExpression)arg2) None :
Add a part expression, the second and subsequent part expressions must have ‘and/or’ set
- Expression.get_expression((Expression)arg1) str :
returns the complete expression as a string
- property Expression.parts
Returns a list of PartExpression’s