Merge branch 'upstreammaster'
[sfa.git] / sfa / rspecs / elements / element.py
1 class Element(dict):
2
3     fields = {}
4
5     def __init__(self, fields={}, element=None, keys=None):
6         self.element = element
7         dict.__init__(self, dict.fromkeys(self.fields))
8         if not keys:
9             keys = fields.keys()
10         for key in keys:
11             if key in fields:
12                 self[key] = fields[key] 
13
14     def __getattr__(self, attr):
15         if hasattr(self, attr):
16             return getattr(self, attr)
17         elif self.element is not None and hasattr(self.element, attr):
18             return getattr(self.element, attr)
19         raise AttributeError, "Element class has no attribute %s" % attr