Exemplo n.º 1
0
 def _get_date_value(element: Element) -> UncertainDate:
     for sub_element in element.get_child_elements():
         if FamilyTree._has_tag(sub_element, Tag.Date):
             date, unparsed = Date.parse(sub_element.get_value())
             assert (date is not None and unparsed
                     == ""), f"Must parse date, but got {date, unparsed}"
             return date
     return None
Exemplo n.º 2
0
def element_equals(element1: Element, element2: Element):
    if not element_values_equals(element1, element2):
        print(f'{element1.to_gedcom_string()} != {element2.to_gedcom_string()}', file=sys.stderr)
        return False
    if len(element1.get_child_elements()) != len(element2.get_child_elements()):
        print(f'element1.len ({len(element1.get_child_elements())}) != '
              f'element2.len ({len(element2.get_child_elements())})', file=sys.stderr)
        return False
    child_elements_2 = element2.get_child_elements().copy()
    for e1 in element1.get_child_elements():
        found_match = False
        for e2 in child_elements_2:
            if element_values_equals(e1, e2):
                found_match = True
                child_elements_2.remove(e2)
                break
        if not found_match:
            print(f'No match found for element: {e1.to_gedcom_string()}', file=sys.stderr)
            return False
    return True
Exemplo n.º 3
0
def print_element(file, element: Element, depth=0):
    file.write(element.to_gedcom_string())
    for child in element.get_child_elements():
        print_element(file, child, depth=depth+1)
Exemplo n.º 4
0
 def print_element(self, file, element: Element, depth=0):
     gedcom_string = element.to_gedcom_string()
     file.write(gedcom_string)
     for child in element.get_child_elements():
         self.print_element(file, child, depth=depth + 1)
Exemplo n.º 5
0
 def get_create_child_by_tag(element: Element, tag: str):
     childs = element.get_child_elements()
     for child in childs:
         if child.get_tag() == tag:
             return child
     return element.new_child_element(tag)