Package lldb :: Package formatters :: Module attrib_fromdict
[hide private]
[frames] | no frames]

Source Code for Module lldb.formatters.attrib_fromdict

 1  """ 
 2  Objective-C runtime wrapper for use by LLDB Python formatters 
 3   
 4  part of The LLVM Compiler Infrastructure 
 5  This file is distributed under the University of Illinois Open Source 
 6  License. See LICENSE.TXT for details. 
 7  """ 
 8   
 9   
10 -class AttributesDictionary:
11
12 - def __init__(self, allow_reset=True):
13 # need to do it this way to prevent endless recursion 14 self.__dict__['_dictionary'] = {} 15 self.__dict__['_allow_reset'] = allow_reset
16
17 - def __getattr__(self, name):
18 if not self._check_exists(name): 19 return None 20 value = self._dictionary[name] 21 return value
22
23 - def _set_impl(self, name, value):
24 self._dictionary[name] = value
25
26 - def _check_exists(self, name):
27 return name in self._dictionary
28
29 - def __setattr__(self, name, value):
30 if self._allow_reset: 31 self._set_impl(name, value) 32 else: 33 self.set_if_necessary(name, value)
34
35 - def set_if_necessary(self, name, value):
36 if not self._check_exists(name): 37 self._set_impl(name, value) 38 return True 39 return False
40
41 - def __len__(self):
42 return len(self._dictionary)
43