@hep.over('<STR_LIT>', '<STR_LIT>')<EOL>@utils.for_each_value<EOL>def publication_info(self, key, value):
def _get_cnum(value):<EOL><INDENT>w_value = force_single_element(value.get('<STR_LIT:w>', '<STR_LIT>'))<EOL>normalized_w_value = w_value.replace('<STR_LIT:/>', '<STR_LIT:->').upper()<EOL>return normalized_w_value<EOL><DEDENT>def _get_material(value):<EOL><INDENT>schema = load_schema('<STR_LIT>')<EOL>valid_materials = schema['<STR_LIT>']<EOL>m_value = force_single_element(value.get('<STR_LIT:m>', '<STR_LIT>'))<EOL>normalized_m_value = m_value.lower()<EOL>if normalized_m_value in valid_materials:<EOL><INDENT>return normalized_m_value<EOL><DEDENT><DEDENT>def _get_parent_isbn(value):<EOL><INDENT>z_value = force_single_element(value.get('<STR_LIT:z>', '<STR_LIT>'))<EOL>if z_value:<EOL><INDENT>return normalize_isbn(z_value)<EOL><DEDENT><DEDENT>def _get_pubinfo_freetext(value):<EOL><INDENT>x_value = force_single_element(value.get('<STR_LIT:x>', '<STR_LIT>'))<EOL>if not x_value.startswith('<STR_LIT>'):<EOL><INDENT>return x_value<EOL><DEDENT><DEDENT>page_start, page_end, artid = split_page_artid(value.get('<STR_LIT:c>'))<EOL>parent_recid = maybe_int(force_single_element(value.get('<STR_LIT:0>')))<EOL>parent_record = get_record_ref(parent_recid, '<STR_LIT>')<EOL>journal_recid = maybe_int(force_single_element(value.get('<STR_LIT:1>')))<EOL>journal_record = get_record_ref(journal_recid, '<STR_LIT>')<EOL>conference_recid = maybe_int(force_single_element(value.get('<STR_LIT:2>')))<EOL>conference_record = get_record_ref(conference_recid, '<STR_LIT>')<EOL>return {<EOL>'<STR_LIT>': artid,<EOL>'<STR_LIT>': _get_cnum(value),<EOL>'<STR_LIT>': force_single_element(value.get('<STR_LIT:q>')),<EOL>'<STR_LIT>': conference_record,<EOL>'<STR_LIT>': key.startswith('<STR_LIT>') or None,<EOL>'<STR_LIT>': force_single_element(value.get('<STR_LIT:n>')),<EOL>'<STR_LIT>': journal_record,<EOL>'<STR_LIT>': force_single_element(value.get('<STR_LIT:p>')),<EOL>'<STR_LIT>': force_single_element(value.get('<STR_LIT:v>')),<EOL>'<STR_LIT>': _get_material(value),<EOL>'<STR_LIT>': page_end,<EOL>'<STR_LIT>': page_start,<EOL>'<STR_LIT>': _get_parent_isbn(value),<EOL>'<STR_LIT>': parent_record,<EOL>'<STR_LIT>': force_single_element(value.get('<STR_LIT:r>')),<EOL>'<STR_LIT>': _get_pubinfo_freetext(value),<EOL>'<STR_LIT>': maybe_int(force_single_element(value.get('<STR_LIT:y>'))),<EOL>}<EOL>
Populate the ``publication_info`` key.