summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-12-22 15:27:57 -0800
committerBrian Waldon <bcwaldon@gmail.com>2013-01-21 09:27:49 -0800
commitc0e7fba643b69d078ea16ead675432449e4b3185 (patch)
tree18d885be5279385ff24a110dc1f6ef962568387c
parentc2c446193089a717a9cbc3eeca73c1a30a0f7b6b (diff)
downloadwarlock-c0e7fba643b69d078ea16ead675432449e4b3185.tar.gz
Adding documentation of Model methods
-rw-r--r--warlock/model.py49
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: