from model.example import Example from model.translation import Translation class Sense: def __init__(self, sense_xml): label = sense_xml.querySelector("labelList label") definition = sense_xml.querySelector("definitionList definition") self.label = label.textContent if label else "" 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)