@@ -821,7 +821,7 @@ class RcParams(dict):
821
821
def __setitem__ (self , key , val ):
822
822
try :
823
823
if key in _deprecated_map :
824
- alt_key , alt_val = _deprecated_map [key ]
824
+ alt_key , alt_val = _deprecated_map [key ]
825
825
warnings .warn (self .msg_depr % (key , alt_key ))
826
826
key = alt_key
827
827
val = alt_val (val )
@@ -840,7 +840,7 @@ def __setitem__(self, key, val):
840
840
841
841
def __getitem__ (self , key ):
842
842
if key in _deprecated_map :
843
- alt_key , alt_val = _deprecated_map [key ]
843
+ alt_key , alt_val = _deprecated_map [key ]
844
844
warnings .warn (self .msg_depr % (key , alt_key ))
845
845
key = alt_key
846
846
elif key in _deprecated_ignore_map :
@@ -849,6 +849,16 @@ def __getitem__(self, key):
849
849
key = alt
850
850
return dict .__getitem__ (self , key )
851
851
852
+ # http://stackoverflow.com/questions/2390827/how-to-properly-subclass-dict-and-override-get-set
853
+ # the default dict `update` does not use __setitem__
854
+ # so rcParams.update(...) (such as in seaborn) side-steps
855
+ # all of the validation over-ride update to force
856
+ # through __setitem__
857
+ def update (self , * args , ** kwargs ):
858
+
859
+ for k , v in six .iteritems (dict (* args , ** kwargs )):
860
+ self [k ] = v
861
+
852
862
def __repr__ (self ):
853
863
import pprint
854
864
class_name = self .__class__ .__name__
0 commit comments