def process_value_pairs(self, tokens, type_):
key, body = self.check_composite_tokens(type_, tokens)<EOL>key_name = self.key_name(key)<EOL>d = CaseInsensitiveOrderedDict(CaseInsensitiveOrderedDict)<EOL>for t in body:<EOL><INDENT>k = self.clean_string(t[<NUM_LIT:0>].value).lower()<EOL>v = self.clean_string(t[<NUM_LIT:1>].value)<EOL>if k in d.keys():<EOL><INDENT>log.warning("<STR_LIT>".format(<EOL>k, type_, v))<EOL><DEDENT>d[k] = v<EOL><DEDENT>if self.include_position:<EOL><INDENT>pd = self.create_position_dict(key, body)<EOL>d["<STR_LIT>"] = pd<EOL><DEDENT>d["<STR_LIT>"] = key_name<EOL>return d<EOL>
Metadata, Values, and Validation blocks can either
have string pairs or attributes
Attributes will already be processed