File size: 608 Bytes
729b0f4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class DotDict(dict):
"""
Dictionary subclass that supports dot notation access.
You can wrap any dictionary using DotDict instead.
"""
def __init__(self, data):
super().__init__(data)
for key, value in data.items():
if isinstance(value, dict):
self[key] = DotDict(value)
else:
self[key] = value
def __getattr__(self, attr):
value = self.get(attr)
if isinstance(value, dict):
return DotDict(value)
return value
def __setattr__(self, key, value):
self[key] = value |