commit 76a53f6703c856eb322eaf24b12dd1cf0de0b687 Author: J. Fernando Sánchez Date: Thu Mar 19 00:25:25 2015 +0100 diff --git a/tweeply.py b/tweeply.py new file mode 100644 index 0000000..ffd1701 --- /dev/null +++ b/tweeply.py @@ -0,0 +1,27 @@ +class MessageProperty(property): + def __init__(self, path, *args, **kwargs): + property.__init__(self, *args, **kwargs) + self.path = path + + def _target(self, dic): + path = self.path + dest = dic + lastkey = path[-1] + for p in path[:-1]: + if p not in dest or not dest[p]: + dest[p] = {} + dest = dest[p] + return dest, lastkey + + def __get__(self, container, _type=None): + dest, lastkey = self._target(container) + return dest[lastkey] + + + def __set__(self, container, value): + dest, lastkey = self._target(container) + dest[lastkey] = value + + def __delete__(self, container): + dest, lastkey = self._target(container) + del dest[lastkey]