From e18f546796f293cb18cab9d508997d22ac34e1c4 Mon Sep 17 00:00:00 2001 From: linek Date: Thu, 17 Aug 2017 21:09:34 +0200 Subject: [PATCH] write 'DEAT Y' for deceased indi whithout date/place, fix and update mergemyancestors --- getmyancestors.py | 10 +++++++--- mergemyancestors.py | 22 ++++++++++++---------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/getmyancestors.py b/getmyancestors.py index 1d6de95..bdb5960 100755 --- a/getmyancestors.py +++ b/getmyancestors.py @@ -317,13 +317,13 @@ class Name: if 'changeMessage' in data['attribution']: self.note = Note(data['attribution']['changeMessage'], tree) - def print(self, file=sys.stdout, type=None): + def print(self, file=sys.stdout, typ=None): file.write('1 NAME ' + self.given + ' /' + self.surname + '/') if self.suffix: file.write(' ' + self.suffix) file.write('\n') - if type: - file.write('2 TYPE ' + type + '\n') + if typ: + file.write('2 TYPE ' + typ + '\n') if self.prefix: file.write('2 NPFX ' + self.prefix + '\n') if self.note: @@ -371,6 +371,7 @@ class Indi: self.num = Indi.counter self.fid = fid self.tree = tree + self.living = True self.famc_fid = set() self.fams_fid = set() self.famc_num = set() @@ -393,6 +394,7 @@ class Indi: data = tree.fs.get_url(url) if data: x = data['persons'][0] + self.living = x['living'] if x['names']: for y in x['names']: if y['preferred']: @@ -563,6 +565,8 @@ class Indi: file.write('2 DATE ' + self.deatdate + '\n') if self.deatplac: file.write('2 PLAC ' + self.deatplac + '\n') + elif not self.living: + file.write('1 DEAT Y\n') if self.buridate or self.buriplac: file.write('1 BURI\n') if self.buridate: diff --git a/mergemyancestors.py b/mergemyancestors.py index 8ebc75c..6600776 100755 --- a/mergemyancestors.py +++ b/mergemyancestors.py @@ -209,6 +209,7 @@ class Gedcom: self.flag = True def __get_deat(self): + self.indi[self.num].living = False while self.__get_line() and self.level > 1: if self.tag == 'DATE': self.indi[self.num].deatdate = self.data @@ -377,6 +378,7 @@ if __name__ == '__main__': tree.indi[fid] = Indi(tree=tree, num=indi_counter) tree.indi[fid].tree = tree tree.indi[fid].fid = ged.indi[num].fid + tree.indi[fid].living = ged.indi[num].living tree.indi[fid].fams_fid |= ged.indi[num].fams_fid tree.indi[fid].famc_fid |= ged.indi[num].famc_fid tree.indi[fid].name = ged.indi[num].name @@ -419,26 +421,26 @@ if __name__ == '__main__': tree.fam[(husb, wife)].sealing_spouse = ged.fam[num].sealing_spouse # merge notes by text - tree.list_notes = sorted(tree.list_notes, key=lambda x: x.text) - for i, n in enumerate(tree.list_notes): + tree.notes = sorted(tree.notes, key=lambda x: x.text) + for i, n in enumerate(tree.notes): if i == 0: n.num = 1 continue - if n.text == tree.list_notes[i - 1].text: - n.num = tree.list_notes[i - 1].num + if n.text == tree.notes[i - 1].text: + n.num = tree.notes[i - 1].num else: - n.num = tree.list_notes[i - 1].num + 1 + n.num = tree.notes[i - 1].num + 1 # merge sources by fid - tree.list_sources = sorted(tree.list_sources, key=lambda x: x.fid) - for i, n in enumerate(tree.list_sources): + tree.sources = sorted(tree.sources, key=lambda x: x.fid) + for i, n in enumerate(tree.sources): if i == 0: n.num = 1 continue - if n.fid == tree.list_sources[i - 1].fid: - n.num = tree.list_sources[i - 1].num + if n.fid == tree.sources[i - 1].fid: + n.num = tree.sources[i - 1].num else: - n.num = tree.list_sources[i - 1].num + 1 + n.num = tree.sources[i - 1].num + 1 # compute number for family relationships and print GEDCOM file tree.reset_num() -- 2.52.0