code: def recursive_update(target, update):
      
      for key in update:
          value = update[key]
          if value is None:
              del target[key]
          elif isinstance(value, dict):
              target[key] = recursive_update(target.get(key, {}), value)
          else:
              target[key] = value
      return target
docs: Update recursively a (nested) dictionary with the content of another.
      Inspired from https://stackoverflow.com/questions/3232943/update-value-of-a-nested-dictionary-of-varying-depth