Source code for qikify.models.dotdict

import collections

[docs]class dotdict(dict): """We use dotdict to replace standard Python dictionaries. This is simply for the convenience of having dict.property access, instead of the messier dict['property'] style. """ def __getattr__(self, attr): return self.get(attr, None) __getattr__= dict.__getitem__ __setattr__= dict.__setitem__ __delattr__= dict.__delitem__
[docs]class mdotmap(collections.MutableMapping): """We use mdotmap to replace standard Python dictionaries. This is simply for the convenience of having mdotmap.attr access, instead of the dict[attr] style. ** NOT YET WORKING ** """ def __init__(self, *args, **kwargs): self.store = dict() self.update(dict(*args, **kwargs)) # use the free update to set keys self.__getattr__= self.__getitem__ self.__setattr__= self.__setitem__ self.__delattr__= self.__delitem__ def __getitem__(self, key): return self.store[self.__keytransform__(key)] def __setitem__(self, key, value): self.store[self.__keytransform__(key)] = value def __delitem__(self, key): del self.store[self.__keytransform__(key)] def __iter__(self): return iter(self.store) def __len__(self): return len(self.store) def __keytransform__(self, key): return key