code: def patch_config(config, data):
      
      is_changed = False
      for name, value in data.items():
          if value is None:
              if config.pop(name, None) is not None:
                  is_changed = True
          elif name in config:
              if isinstance(value, dict):
                  if isinstance(config[name], dict):
                      if patch_config(config[name], value):
                          is_changed = True
                  else:
                      config[name] = value
                      is_changed = True
              elif str(config[name]) != str(value):
                  config[name] = value
                  is_changed = True
          else:
              config[name] = value
              is_changed = True
      return is_changed
docs: recursively 'patch' `config` with `data`
      :returns: `!True` if the `config` was changed