Exemple #1
0
 def export_sex(self, character: Character, element: Element):
     sex = character.get_property(PropertyTag.SEX).value
     if sex != Sex.UNDEFINED:
         element.new_child_element('SEX', '', {
             Sex.MALE: 'M',
             Sex.FEMALE: 'F'
         }[sex])
Exemple #2
0
 def create_character_element(self, character: Character):
     element = Element(0, '@{}@'.format(character.id), 'INDI', '')
     element.new_child_element('NAME', '', str(character.label))
     for property_tag in self.properties:
         try:
             export_gedcom_property_methods[property_tag](self, character,
                                                          element)
         except (ExportPropertyException, EntityException):
             self.logger.error('{}: {} is impossible to export'.format(
                 self.__class__.__name__, property_tag))
     self.create_family(character)
     self.elements[character.id] = element
Exemple #3
0
 def create_character_element(self, character: Character):
     element = Element(0, '@{}@'.format(character.id), 'INDI', '')
     name_element = element.new_child_element('NAME', '',
                                              str(character.label))
     if character.data.given_name and character.data.family_name:
         name_element.new_child_element('GIVN', '',
                                        character.data.given_name)
         name_element.new_child_element('SURN', '',
                                        character.data.family_name)
     if character.data.birth_date:
         birth_element = element.new_child_element('BIRT')
         birth_element.new_child_element('DATE', '',
                                         str(character.data.birth_date))
     if character.data.birth_date:
         death_element = element.new_child_element('DEAT')
         death_element.new_child_element('DATE', '',
                                         str(character.data.birth_date))
     if character.sex:
         element.new_child_element('SEX', '', character.sex)
     self.create_family(character)
     self.elements[character.id] = element
Exemple #4
0
 def __export_place(place: Place, event: Element):
     plac_element = event.new_child_element('PLAC', '', place.label)
     coordinates = place.get_property(PropertyTag.COORDINATE_LOCATION).value
     if coordinates.latitude and coordinates.longitude:
         map_element = plac_element.new_child_element('MAP')
         map_element.new_child_element(
             'LATI', '',
             '{}{}'.format('N' if coordinates.latitude > 0 else 'S',
                           abs(coordinates.latitude)))
         map_element.new_child_element(
             'LONG', '',
             '{}{}'.format('E' if coordinates.longitude > 0 else 'W',
                           abs(coordinates.longitude)))
Exemple #5
0
 def create_family_element(self, family: Family):
     element = Element(0, '@{}@'.format(family.family_id), 'FAM', '')
     if family.father_id and family.father_id in self.elements.keys():
         element.new_child_element('HUSB', '',
                                   '@{}@'.format(family.father_id))
         self.elements[family.father_id].new_child_element(
             'FAMS', '', '@{}@'.format(family.family_id))
     if family.mother_id and family.mother_id in self.elements.keys():
         element.new_child_element('WIFE', '',
                                   '@{}@'.format(family.mother_id))
         self.elements[family.mother_id].new_child_element(
             'FAMS', '', '@{}@'.format(family.family_id))
     for child_id in family.children_ids:
         if child_id in self.database.cache.keys():
             element.new_child_element('CHIL', '', '@{}@'.format(child_id))
             self.elements[child_id].new_child_element(
                 'FAMC', '', '@{}@'.format(family.family_id))
     self.elements[family.family_id] = element
Exemple #6
0
 def create_family_element(self, family: Family):
     if family.mother_id == 'Q271506':
         print('Q271506')
     element = Element(0, '@{}@'.format(family.id), 'FAM', '')
     if family.father_id and family.father_id in self.elements.keys():
         element.new_child_element('HUSB', '',
                                   '@{}@'.format(family.father_id))
         self.elements[family.father_id].new_child_element(
             'FAMS', '', '@{}@'.format(family.id))
     if family.mother_id and family.mother_id in self.elements.keys():
         element.new_child_element('WIFE', '',
                                   '@{}@'.format(family.mother_id))
         self.elements[family.mother_id].new_child_element(
             'FAMS', '', '@{}@'.format(family.id))
     for child_id in family.children_ids:
         if child_id in self.characters.keys():
             element.new_child_element('CHIL', '', '@{}@'.format(child_id))
             self.elements[child_id].new_child_element(
                 'FAMC', '', '@{}@'.format(family.id))
     self.elements[family.id] = element
Exemple #7
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)