code: def merge_from_obj(self, obj, lists_only=False):
          
          self.clean()
          obj.clean()
          obj_config = obj._config
          all_props = self.__class__.CONFIG_PROPERTIES
          for key, value in six.iteritems(obj_config):
              attr_config = all_props[key]
              attr_type, default, __, merge_func = attr_config[:4]
              if (merge_func is not False and value != default and
                      (not lists_only or (attr_type and issubclass(attr_type, list)))):
                  self._merge_value(attr_type, merge_func, key, value)
docs: Merges a configuration object into this one.
  
          See :meth:`ConfigurationObject.merge` for details.
  
          :param obj: Values to update the ConfigurationObject with.
          :type obj: ConfigurationObject
          :param lists_only: Ignore single-value attributes and update dictionary options.
          :type lists_only: bool