'Recursively update the dictionary with the contents of other and
third like dict.update() does - but don\'t overwrite sub-dictionaries.
Example:
>>> d = RecursiveDictionary({\'foo\': {\'bar\': 42}})
>>> d.rec_update({\'foo\': {\'baz\': 36}})
>>> d
{\'foo\': {\'baz\': 36, \'bar\': 42}}'

def rec_update(self, other, **third):

    try:
        iterator = six.iteritems(other)
    except AttributeError:
        iterator = other
    self.iter_rec_update(iterator)
    self.iter_rec_update(six.iteritems(third))
