from model.example import Example from model.translation import Translation from model.editable import Editable class Sense(Editable): def __init__(self, sense_xml): definition = sense_xml.querySelector("definitionList definition") self.labels = [label.textContent for label in sense_xml.querySelectorAll("labelList label")] self.definition = definition.textContent if definition else "" self.examples = [Example(example_xml) for example_xml in sense_xml.querySelectorAll("exampleContainerList exampleContainer")] translations = [] max_num_cluster = 0 for translation_xml in sense_xml.querySelectorAll("translationContainerList translationContainer"): num_cluster = int(translation_xml.getAttribute("cluster")) max_num_cluster = max(max_num_cluster, num_cluster) translations.append((num_cluster, Translation(translation_xml))) self.translations = [[] for _ in range(max_num_cluster)] for clusterNum, translation in translations: self.translations[clusterNum - 1].append(translation) class NewSense(Sense): def __init__(self): self.translations = [] self.labels = [] self.definition = [] self.examples= []