from model.example import Example from model.translation import from_container_list from model.editable import Editable from model.tags import import_label_list class Sense(Editable): def __init__(self, sense_xml, idx): self.original_idx = idx self.definition = {} for definition in sense_xml.querySelectorAll("definitionList definition"): key = definition.getAttribute("type") self.definition[key] = definition.textContent self.labels = import_label_list("sense > labelList label", sense_xml) self.translations = from_container_list( sense_xml.querySelectorAll("translationContainerList translationContainer")) self.examples = [Example(example_xml) for example_xml in sense_xml.querySelectorAll("exampleContainerList exampleContainer")] def merge_labels(self): return ", ".join(val for _, val in self.labels)