Merges a dictionary into this configuration object.

        See :meth:`ConfigurationObject.merge` for details.

        :param dct: Values to update the ConfigurationObject with.
        :type dct: dict
        :param lists_only: Ignore single-value attributes and update dictionary options.
        :type lists_only: bool

def merge_from_dict(self, dct, lists_only=False):
        """
        Merges a dictionary into this configuration object.

        See :meth:`ConfigurationObject.merge` for details.

        :param dct: Values to update the ConfigurationObject with.
        :type dct: dict
        :param lists_only: Ignore single-value attributes and update dictionary options.
        :type lists_only: bool
        """
        if not dct:
            return
        self.clean()
        all_props = self.__class__.CONFIG_PROPERTIES
        for key, value in six.iteritems(dct):
            attr_config = all_props.get(key)
            if attr_config:
                attr_type, default, input_func, 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)))):
                    if input_func:
                        value = input_func(value)
                    self._merge_value(attr_type, merge_func, key, value)
            else:
                self.merge_default_from_dict(key, value, lists_only=lists_only)