'Merges data read from a config file into the current config.'

def MergeData(self, merge_data, raw_data=None):

    self.FlushCache()
    if (raw_data is None):
        raw_data = self.raw_data
    for (k, v) in merge_data.items():
        if isinstance(v, OrderedYamlDict):
            if (k not in self.valid_contexts):
                raise InvalidContextError(('Invalid    context    specified:    %s' % k))
            context_data = raw_data.setdefault(k, OrderedYamlDict())
            self.MergeData(v, context_data)
        else:
            descriptor = self.type_infos.get(k)
            if (descriptor is None):
                msg = ('Missing    config    definition    for    %s.    This    option    is    likely    deprecated    or    renamed.    Check    the    release    notes.' % k)
                if flags.FLAGS.disallow_missing_config_definitions:
                    raise MissingConfigDefinitionError(msg)
            if isinstance(v, basestring):
                v = v.strip()
            if (self.initialized and (k in self.constants)):
                raise ConstModificationError(('Attempting    to    modify    constant    value    %s' % k))
            raw_data[k] = v
