Source code for wirecurly.dialplan.expression
import logging
log = logging.getLogger(__name__)
__all__ = ['ExpressionBase','ExpressionAbs','ExpressionTime','ExpressionField']
[docs]class ExpressionBase(object):
'''
Base Class for expressions
'''
def __init__(self):
super(ExpressionBase,self).__init__()
[docs] def todict(self):
'''
to_dict must return a dict with all attributes
'''
raise NotImplementedError
[docs]class ExpressionAbs(ExpressionBase):
'''
Class for absolute expression
'''
def __init__(self):
super(ExpressionAbs,self).__init__()
[docs] def todict(self):
'''
Absolute expressions have no attributes
'''
return {}
[docs]class ExpressionTime(ExpressionBase):
'''
Class for Time expressions
'''
def __init__(self,wday,hour):
super(ExpressionTime,self).__init__()
self.wday = wday
self.hour = hour
[docs] def todict(self):
'''
Return a dict with wday and hour
'''
return {'wday' : self.wday , 'hour' : self.hour }
[docs]class ExpressionField(ExpressionBase):
'''
Field expressions Class
'''
def __init__(self,field,exp):
super(ExpressionField,self).__init__()
self.field = field
self.exp = exp
[docs] def todict(self):
'''
Return a dict with field and expression
'''
return {'field' : self.field , 'expression' : self.exp}