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])
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
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
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)))
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
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
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)