class_docstr: Describe all the information required to apply a patch.
  
  Attributes
  ----------
  destination : obj
      Patch destination.
  name : str
      Name of the attribute at the destination.
  obj : obj
      Attribute value.
  settings : gorilla.Settings or None
      Settings. If ``None``, the default settings are used.
  
  Warning
  -------
  It is highly recommended to use the output of the function
  :func:`get_attribute` for setting the attribute :attr:`obj`. This will
  ensure that the descriptor protocol is bypassed instead of possibly
  retrieving attributes invalid for patching, such as bound methods.
docstr: Update some attributes.
  
  If a 'settings' attribute is passed as a dict, then it will update the
  content of the settings, if any, instead of completely overwriting it.
  
  Parameters
  ----------
  kwargs
      Attributes to update.
  
  Raises
  ------
  ValueError
      The setting doesn't exist.
code: def _update(self, **kwargs):
      """Update some attributes.
  
      If a 'settings' attribute is passed as a dict, then it will update the
      content of the settings, if any, instead of completely overwriting it.
  
      Parameters
      ----------
      kwargs
          Attributes to update.
  
      Raises
      ------
      ValueError
          The setting doesn't exist.
      """
      for key, value in _iteritems(kwargs):
          if key == "settings":
              if isinstance(value, dict):
                  if self.settings is None:
                      self.settings = Settings(**value)
                  else:
                      self.settings._update(**value)
              else:
                  self.settings = copy.deepcopy(value)
          else:
              setattr(self, key, value)
  
imports: import collections
  import copy
  import inspect
  import logging
  import pkgutil
  import sys
  import types
label_desc: Use image node_id 6 for calling the Patch obj's underlying member method code with example usage: obj._update() without return types