Ejemplo n.º 1
0
 def load(self, character: Character) -> [EntityId]:
     next_entity_ids = []
     if self.configuration.load_fathers and character.has_property(
             PropertyTag.FATHER):
         next_entity_ids.append(
             character.get_property(PropertyTag.FATHER).loader)
     if self.configuration.load_mothers and character.has_property(
             PropertyTag.MOTHER):
         next_entity_ids.append(
             character.get_property(PropertyTag.MOTHER).loader)
     return next_entity_ids
 def load(self, character: Character) -> [EntityId]:
     next_entity_ids = []
     if character.has_property(PropertyTag.SEX):
         sex = character.get_property(PropertyTag.SEX).value
         if (sex == Sex.MALE and not self.configuration.load_men_children
             ) or (sex == Sex.FEMALE
                   and not self.configuration.load_women_children):
             return []
     if character.has_property(PropertyTag.CHILDREN):
         next_entity_ids = [
             child.loader
             for child in character.get_property(PropertyTag.CHILDREN)
         ]
     return next_entity_ids
Ejemplo n.º 3
0
 def export_family_name(self, character: Character, element: Element):
     families = character.get_property(PropertyTag.FAMILY_NAME)
     if families is None:
         raise ExportPropertyException()
     name_element = self.get_create_child_by_tag(element, 'NAME')
     name_element.new_child_element(
         'SURN', '', ' '.join([family.value.label for family in families]))
Ejemplo n.º 4
0
 def export_given_name(self, character: Character, element: Element):
     givens = character.get_property(PropertyTag.GIVEN_NAME)
     if givens is None:
         raise ExportPropertyException()
     name_element = self.get_create_child_by_tag(element, 'NAME')
     name_element.new_child_element(
         'GIVN', '', ' '.join([given.value.label for given in givens]))
Ejemplo n.º 5
0
 def export_date_death(self, character: Character, element: Element):
     death = character.get_property(PropertyTag.DATE_DEATH).value
     if death is None:
         raise ExportPropertyException()
     death_element = self.get_create_child_by_tag(element, 'DEAT')
     death_element.new_child_element('DATE', '',
                                     str(create_gedcom_date(death)))
Ejemplo n.º 6
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])
 def create_new(entity: Entity) -> Character:
     return Character(entity.id, str(entity.label))
Ejemplo n.º 8
0
 def allow_export(self, character: Character) -> bool:
     if not character.has_property(PropertyTag.SEX):
         return True
     sex = character.get_property(PropertyTag.SEX).value
     return (sex == Sex.MALE and self.configuration.export_men) or (
         sex == Sex.FEMALE and self.configuration.export_women)
Ejemplo n.º 9
0
 def create_family(self, character: Character):
     if not character.has_property(
             PropertyTag.MOTHER) and not character.has_property(
                 PropertyTag.FATHER):
         return
     family_id = '{}//{}'.format(
         character.get_property(PropertyTag.MOTHER)
         if character.has_property(PropertyTag.MOTHER) else "",
         character.get_property(PropertyTag.FATHER)
         if character.has_property(PropertyTag.FATHER) else "")
     if family_id in self.families.keys():
         self.families[family_id].children_ids.append(character.id)
     else:
         family = self.Family('FAM{}'.format(len(self.families.keys())))
         if character.has_property(
                 PropertyTag.MOTHER) and character.get_property(
                     PropertyTag.MOTHER).loader in self.database.cache.keys(
                     ):
             family.mother_id = character.get_property(
                 PropertyTag.MOTHER).loader
         if character.has_property(
                 PropertyTag.FATHER) and character.get_property(
                     PropertyTag.FATHER).loader in self.database.cache.keys(
                     ):
             family.father_id = character.get_property(
                 PropertyTag.FATHER).loader
         family.children_ids.append(character.id)
         self.families[family_id] = family
Ejemplo n.º 10
0
 def export_place_death(self, character: Character, element: Element):
     place_death = character.get_property(PropertyTag.PLACE_DEATH)
     if place_death is None:
         raise ExportPropertyException()
     death_element = self.get_create_child_by_tag(element, 'DEAT')
     self.__export_place(place_death.value, death_element)