psamm.expression.affine – Affine expressions¶
Representations of affine expressions and variables.
These classes can be used to represent affine expressions and do manipulation and evaluation with substitutions of particular variables.
-
class
psamm.expression.affine.Expression(*args)¶ Represents an affine expression (e.g. 2x + 3y - z + 5)
-
__add__(other)¶ Add expressions, variables or numbers
-
__div__(other)¶ Divide by scalar
-
__eq__(other)¶ Expression equality
-
__mul__(other)¶ Multiply by scalar
-
__sub__(other)¶ Subtract expressions, variables or numbers
-
__truediv__(other)¶ Divide by scalar
-
simplify()¶ Return simplified expression.
If the expression is of the form ‘x’, the variable will be returned, and if the expression contains no variables, the offset will be returned as a number.
-
substitute(mapping)¶ Return expression with variables substituted
>>> Expression('x + 2y').substitute( ... lambda v: {'y': -3}.get(v.symbol, v)) Expression('x - 6') >>> Expression('x + 2y').substitute( ... lambda v: {'y': Variable('z')}.get(v.symbol, v)) Expression('x + 2z')
-
variables()¶ Return iterator of variables in expression
-
-
class
psamm.expression.affine.Variable(symbol)¶ Represents a variable in an expression
Equality of variables is based on the symbol.
-
__eq__(other)¶ Check equality of variables
-
__ge__(other)¶ x.__ge__(y) <==> x>=y
-
__gt__(other)¶ x.__gt__(y) <==> x>y
-
__le__(other)¶ x.__le__(y) <==> x<=y
-
simplify()¶ Return simplified expression
The simplified form of a variable is always the variable itself.
>>> Variable('x').simplify() Variable('x')
-
substitute(mapping)¶ Return expression with variables substituted
>>> Variable('x').substitute(lambda v: {'x': 567}.get(v.symbol, v)) 567 >>> Variable('x').substitute(lambda v: {'y': 42}.get(v.symbol, v)) Variable('x') >>> Variable('x').substitute( ... lambda v: {'x': 123, 'y': 56}.get(v.symbol, v)) 123
-
symbol¶ Symbol of variable
>>> Variable('x').symbol 'x'
-