def __setitem__(self, key, val): set_func = getattr(self.localdefaults, 'set_%s' % key.replace('.', '_'), None) if set_func is not None: log.info('calling localpref setter function: %r', set_func) val = set_func(val) SavingDictBase.__setitem__(self, key, val) self.save(self)