From 23306a412d316235e797c767522336e41d1cfd74 2012-08-16 22:18:24 From: MinRK Date: 2012-08-16 22:18:24 Subject: [PATCH] always perform requested trait assignments Some assignments do not change *value*, but do change the object, and these should not be ignored. For instance, container objects are currently impossible to assign if they evaluate as equal. --- diff --git a/IPython/utils/traitlets.py b/IPython/utils/traitlets.py index eae3f0d..0915520 100644 --- a/IPython/utils/traitlets.py +++ b/IPython/utils/traitlets.py @@ -302,8 +302,8 @@ class TraitType(object): def __set__(self, obj, value): new_value = self._validate(obj, value) old_value = self.__get__(obj) + obj._trait_values[self.name] = new_value if old_value != new_value: - obj._trait_values[self.name] = new_value obj._notify_trait(self.name, old_value, new_value) def _validate(self, obj, value):