Source code for udapi.block.corefud.concatmentionmisc

from udapi.core.block import Block
from collections import Counter
import re

[docs] class ConcatMentionMisc(Block): """All MISC attributes named MentionMisc_... are concatenated into MentionMisc"""
[docs] def process_tree(self,root): for node in root.descendants_and_empty: for attrname in list(node.misc): matchObj = re.match('MentionMisc_([^[]+)((\[\d+\])?)',attrname) if matchObj: innerattrib = matchObj.group(1) index = matchObj.group(2) finalattr = 'MentionMisc'+index value = node.misc[attrname].replace(",", "%2C") if finalattr not in node.misc: node.misc[finalattr] = f'{innerattrib}:{value}' else: node.misc[finalattr] += f',{innerattrib}:{value}' del node.misc[attrname]