From 82e57d4adaff70173d288cb5dae328d1e3d70cb7 Mon Sep 17 00:00:00 2001 From: Griatch Date: Wed, 7 Nov 2012 18:44:12 +0100 Subject: [PATCH] Fixed an API inconsistency in Attribute's PackedList/PackedDict. Resolves Issue 326. --- src/typeclasses/models.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/typeclasses/models.py b/src/typeclasses/models.py index 1ebef5f9f1..7bd684ae8c 100644 --- a/src/typeclasses/models.py +++ b/src/typeclasses/models.py @@ -157,11 +157,17 @@ class PackedDict(dict): self.save() def pop(self, *args, **kwargs): "Custom pop" - super(PackedDict, self).pop(*args, **kwargs) + ret = super(PackedDict, self).pop(*args, **kwargs) self.save() + return ret def popitem(self, *args, **kwargs): "Custom popitem" - super(PackedDict, self).popitem(*args, **kwargs) + ret = super(PackedDict, self).popitem(*args, **kwargs) + self.save() + return ret + def setdefault(self, *args, **kwargs): + "Custom setdefault" + super(PackedDict, self).setdefault(*args, **kwargs) self.save() def update(self, *args, **kwargs): "Custom update" @@ -222,8 +228,9 @@ class PackedList(list): self.save() def pop(self, *args, **kwargs): "Custom pop" - super(PackedList, self).pop(*args, **kwargs) + ret = super(PackedList, self).pop(*args, **kwargs) self.save() + return ret def reverse(self, *args, **kwargs): "Custom reverse" super(PackedList, self).reverse(*args, **kwargs)