@hep.over('<STR_LIT>', '<STR_LIT>')<EOL>def keywords(self, key, values):
keywords = self.get('<STR_LIT>', [])<EOL>energy_ranges = self.get('<STR_LIT>', [])<EOL>for value in force_list(values):<EOL><INDENT>if value.get('<STR_LIT:a>'):<EOL><INDENT>schema = force_single_element(value.get('<STR_LIT:2>', '<STR_LIT>')).upper()<EOL>sources = force_list(value.get('<STR_LIT>'))<EOL>a_values = force_list(value.get('<STR_LIT:a>'))<EOL>if '<STR_LIT>' not in sources:<EOL><INDENT>for a_value in a_values:<EOL><INDENT>keywords.append({<EOL>'<STR_LIT>': schema,<EOL>'<STR_LIT:source>': force_single_element(sources),<EOL>'<STR_LIT:value>': a_value,<EOL>})<EOL><DEDENT><DEDENT><DEDENT>if value.get('<STR_LIT:e>'):<EOL><INDENT>energy_ranges.append(ENERGY_RANGES_MAP.get(value.get('<STR_LIT:e>')))<EOL><DEDENT><DEDENT>self['<STR_LIT>'] = energy_ranges<EOL>return keywords<EOL>
Populate the ``keywords`` key.

    Also populates the ``energy_ranges`` key through side effects.