INNER CODE UNIT · Python
AttrDict
dailenson/SDT · parse_config.py:20
class AttrDict(EasyDict):
IMMUTABLE = '__immutable__'
def __init__(self, *args):
super(EasyDict, self).__init__(*args)
def immutable(self, is_immutable):
"""Set immutability to is_immutable and recursively apply the setting
to all nested AttrDicts.
"""
self.__dict__[AttrDict.IMMUTABLE] = is_immutable
# Recursively set immutable state
for v in self.__dict__.values():
if isinstance(v, AttrDict):
v.immutable(is_immutable)
for v in self.values():
if isinstance(v, AttrDict):
v.immutable(is_immutable)