diff options
author | Brian Waldon <bcwaldon@gmail.com> | 2012-12-22 15:27:57 -0800 |
---|---|---|
committer | Brian Waldon <bcwaldon@gmail.com> | 2013-01-21 09:27:49 -0800 |
commit | c0e7fba643b69d078ea16ead675432449e4b3185 (patch) | |
tree | 18d885be5279385ff24a110dc1f6ef962568387c /warlock | |
parent | c2c446193089a717a9cbc3eeca73c1a30a0f7b6b (diff) | |
download | warlock-c0e7fba643b69d078ea16ead675432449e4b3185.tar.gz |
Adding documentation of Model methods
Diffstat (limited to 'warlock')
-rw-r--r-- | warlock/model.py | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/warlock/model.py b/warlock/model.py index 47dfeeb..251bd63 100644 --- a/warlock/model.py +++ b/warlock/model.py @@ -23,12 +23,6 @@ class Model(dict): self.__dict__['changes'] = {} self.__dict__['__original__'] = copy.deepcopy(d) - def __getattr__(self, key): - try: - return self.__getitem__(key) - except KeyError: - raise AttributeError(key) - def __setitem__(self, key, value): mutation = dict(self.items()) mutation[key] = value @@ -42,18 +36,6 @@ class Model(dict): self.__dict__['changes'][key] = value - def __setattr__(self, key, value): - self.__setitem__(key, value) - - def clear(self): - raise exceptions.InvalidOperation() - - def pop(self, key, default=None): - raise exceptions.InvalidOperation() - - def popitem(self): - raise exceptions.InvalidOperation() - def __delitem__(self, key): mutation = dict(self.items()) del mutation[key] @@ -65,10 +47,29 @@ class Model(dict): dict.__delitem__(self, key) + def __getattr__(self, key): + try: + return self.__getitem__(key) + except KeyError: + raise AttributeError(key) + + def __setattr__(self, key, value): + self.__setitem__(key, value) + def __delattr__(self, key): self.__delitem__(key) - # NOTE(termie): This is kind of the opposite of what copy usually does + ### BEGIN dict compatibility methods ### + + def clear(self): + raise exceptions.InvalidOperation() + + def pop(self, key, default=None): + raise exceptions.InvalidOperation() + + def popitem(self): + raise exceptions.InvalidOperation() + def copy(self): return copy.deepcopy(dict(self)) @@ -93,15 +94,19 @@ class Model(dict): def values(self): return copy.deepcopy(dict(self)).values() - @property - def changes(self): - return copy.deepcopy(self.__dict__['changes']) + ### END dict compatibility methods ### @property def patch(self): + """Return a jsonpatch object representing the delta""" original = self.__dict__['__original__'] return jsonpatch.make_patch(original, dict(self)).to_string() + @property + def changes(self): + """Dumber version of 'patch' method - this should be deprecated""" + return copy.deepcopy(self.__dict__['changes']) + def validator(self, obj): """Apply a JSON schema to an object""" try: |