Source code for wirecurly.dialplan

import logging
import condition

log = logging.getLogger(__name__)

__all__ = ['Extension']

[docs]class Extension(object): """ An extension object for the dialplan """ def __init__(self,extension): super(Extension, self).__init__() self.extension = extension self.conditions = []
[docs] def addCondition(self,cond): ''' Add a condition for this extension ''' if type(cond.todict()) != list: try: self.getCondition(cond) except ValueError: #Condition doesnt exist self.conditions.append(cond) return log.warning('Cannot replace existing condition') raise ValueError else: # We have to check all conditions in list for c in cond.todict(): try: self.getCondition(c) except ValueError: self.conditions.append(c) else: log.warning('Cannot replace existing condition') raise ValueError return
[docs] def getCondition(self,cond): ''' Returns a condition object based on its attributes ''' for c in self.conditions: if type(c) == type(cond): if c.attrs == cond.attrs: return c raise ValueError
[docs] def todict(self): ''' Create a dict so it can be converted/serialized ''' children = [] if self.conditions: for c in self.conditions: if type(c.todict()) == dict: #Condition could be a dict (Class condition) ... children.append(c.todict()) elif type(c.todict()) == list: # or a list of conditions (Classes or_ , and_) . for cond in c.todict(): children.append(cond.todict()) # for c in self.conditions: # if type(c.todict()) == dict: #Condition could be a dict (Class condition) ... # children.append(c.todict()) # elif type(c.todict()) == list: # or a list of conditions (Classes or_ , and_) . # for cond in c.todict(): # children.append(cond.todict()) return {'tag': 'extension', 'children': children, 'attrs': {'name': self.extension}}
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.