diff --git a/gramps/plugins/tool/check.py b/gramps/plugins/tool/check.py index 27976cb83..cf0aec103 100644 --- a/gramps/plugins/tool/check.py +++ b/gramps/plugins/tool/check.py @@ -121,10 +121,16 @@ def cross_table_duplicates(db, uistate): logging.info('Looking for cross table duplicates') total_nr_handles = 0 all_handles = set([]) - for the_map in [db.person_map, db.family_map, db.event_map, db.place_map, - db.source_map, db.citation_map, db.media_map, - db.repository_map, db.note_map]: - handle_list = list(the_map.keys()) + for get_handles_func in [db.get_person_handles, + db.get_family_handles, + db.get_event_handles, + db.get_place_handles, + db.get_source_handles, + db.get_citation_handles, + db.get_media_handles, + db.get_repository_handles, + db.get_note_handles]: + handle_list = get_handles_func() total_nr_handles += len(handle_list) all_handles.update(handle_list) progress.step() @@ -349,10 +355,9 @@ class CheckIntegrity: logging.info('Looking for duplicate spouses') previous_errors = len(self.duplicate_links) - for bhandle in self.db.person_map.keys(): + for bhandle in self.db.get_person_handles(): handle = bhandle.decode('utf-8') - value = self.db.person_map[bhandle] - pers = Person(value) + pers = self.db.get_person_from_handle(handle) splist = pers.get_family_handle_list() if len(splist) != len(set(splist)): new_list = [] @@ -372,7 +377,7 @@ class CheckIntegrity: self.db.get_number_of_media()) logging.info('Looking for character encoding errors') error_count = 0 - for bhandle in self.db.media_map.keys(): + for bhandle in self.db.get_media_handles(): handle = bhandle.decode('utf-8') data = self.db.media_map[bhandle] if not isinstance(data[2], str) or not isinstance(data[4], str): @@ -413,7 +418,7 @@ class CheckIntegrity: self.db.get_number_of_notes()) logging.info('Looking for ctrl characters in notes') error_count = 0 - for bhandle in self.db.note_map.keys(): + for bhandle in self.db.get_note_handles(): handle = bhandle.decode('utf-8') note = self.db.get_note_from_handle(handle) stext = note.get_styledtext() @@ -421,7 +426,7 @@ class CheckIntegrity: new_text = old_text.translate(strip_dict) if old_text != new_text: logging.warning(' FAIL: control characters found in note' - ' "%s"', self.db.note_map[bhandle][1]) + ' "%s"', note.get_gramps_id()) error_count += 1 # Commit only if ctrl char found. note.set_styledtext(StyledText(text=new_text, @@ -440,7 +445,7 @@ class CheckIntegrity: self.progress.set_pass(_('Looking for bad alternate place names'), self.db.get_number_of_places()) logging.info('Looking for bad alternate place names') - for bhandle in self.db.place_map.keys(): + for bhandle in self.db.get_place_handles(): handle = bhandle.decode('utf-8') place = self.db.get_place_from_handle(handle) fixed_alt_names = [] @@ -1440,11 +1445,9 @@ class CheckIntegrity: total) logging.info('Looking for citation reference problems') - for bhandle in self.db.person_map.keys(): + for bhandle in self.db.get_person_handles(): self.progress.step() - info = self.db.person_map[bhandle] - person = Person() - person.unserialize(info) + person = self.db.get_person_from_handle(bhandle) handle_list = person.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1456,11 +1459,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.family_map.keys(): + for bhandle in self.db.get_family_handles(): self.progress.step() - info = self.db.family_map[bhandle] - family = Family() - family.unserialize(info) + family = self.db.get_family_from_handle(bhandle) handle_list = family.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1472,11 +1473,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.place_map.keys(): + for bhandle in self.db.get_place_handles(): self.progress.step() - info = self.db.place_map[bhandle] - place = Place() - place.unserialize(info) + place = self.db.get_place_from_handle(bhandle) handle_list = place.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1488,11 +1487,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.citation_map.keys(): + for bhandle in self.db.get_citation_handles(): self.progress.step() - info = self.db.citation_map[bhandle] - citation = Citation() - citation.unserialize(info) + citation = self.db.get_citation_from_handle(bhandle) handle_list = citation.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1504,11 +1501,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.repository_map.keys(): + for bhandle in self.db.get_repository_handles(): self.progress.step() - info = self.db.repository_map[bhandle] - repository = Repository() - repository.unserialize(info) + repository = self.db.get_repository_from_handle(bhandle) handle_list = repository.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1521,11 +1516,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.media_map.keys(): + for bhandle in self.db.get_media_handles(): self.progress.step() - info = self.db.media_map[bhandle] - obj = Media() - obj.unserialize(info) + obj = self.db.get_media_from_handle(bhandle) handle_list = obj.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1537,11 +1530,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_citation_references.add(item[1]) - for bhandle in self.db.event_map.keys(): + for bhandle in self.db.get_event_handles(): self.progress.step() - info = self.db.event_map[bhandle] - event = Event() - event.unserialize(info) + event = self.db.get_event_from_handle(bhandle) handle_list = event.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Citation': @@ -1616,11 +1607,9 @@ class CheckIntegrity: 'problems'), total) logging.info('Looking for media object reference problems') - for bhandle in self.db.person_map.keys(): + for bhandle in self.db.get_person_handles(): self.progress.step() - info = self.db.person_map[bhandle] - person = Person() - person.unserialize(info) + person = self.db.get_person_from_handle(bhandle) handle_list = person.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1632,11 +1621,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_media_references.add(item[1]) - for bhandle in self.db.family_map.keys(): + for bhandle in self.db.get_family_handles(): self.progress.step() - info = self.db.family_map[bhandle] - family = Family() - family.unserialize(info) + family = self.db.get_family_from_handle(bhandle) handle_list = family.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1648,11 +1635,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_media_references.add(item[1]) - for bhandle in self.db.place_map.keys(): + for bhandle in self.db.get_place_handles(): self.progress.step() - info = self.db.place_map[bhandle] - place = Place() - place.unserialize(info) + place = self.db.get_place_from_handle(bhandle) handle_list = place.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1664,11 +1649,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_media_references.add(item[1]) - for bhandle in self.db.event_map.keys(): + for bhandle in self.db.get_event_handles(): self.progress.step() - info = self.db.event_map[bhandle] - event = Event() - event.unserialize(info) + event = self.db.get_event_from_handle(bhandle) handle_list = event.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1680,11 +1663,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_media_references.add(item[1]) - for bhandle in self.db.citation_map.keys(): + for bhandle in self.db.get_citation_handles(): self.progress.step() - info = self.db.citation_map[bhandle] - citation = Citation() - citation.unserialize(info) + citation = self.db.get_citation_from_handle(bhandle) handle_list = citation.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1696,11 +1677,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_media_references.add(item[1]) - for bhandle in self.db.source_map.keys(): + for bhandle in self.db.get_source_handles(): self.progress.step() - info = self.db.source_map[bhandle] - source = Source() - source.unserialize(info) + source = self.db.get_source_from_handle(bhandle) handle_list = source.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Media': @@ -1751,11 +1730,9 @@ class CheckIntegrity: total) logging.info('Looking for note reference problems') - for bhandle in self.db.person_map.keys(): + for bhandle in self.db.get_person_handles(): self.progress.step() - info = self.db.person_map[bhandle] - person = Person() - person.unserialize(info) + person = self.db.get_person_from_handle(bhandle) handle_list = person.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1767,11 +1744,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.family_map.keys(): + for bhandle in self.db.get_family_handles(): self.progress.step() - info = self.db.family_map[bhandle] - family = Family() - family.unserialize(info) + family = self.db.get_family_from_handle(bhandle) handle_list = family.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1783,11 +1758,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.place_map.keys(): + for bhandle in self.db.get_place_handles(): self.progress.step() - info = self.db.place_map[bhandle] - place = Place() - place.unserialize(info) + place = self.db.get_place_from_handle(bhandle) handle_list = place.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1799,11 +1772,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.citation_map.keys(): + for bhandle in self.db.get_citation_handles(): self.progress.step() - info = self.db.citation_map[bhandle] - citation = Citation() - citation.unserialize(info) + citation = self.db.get_citation_from_handle(bhandle) handle_list = citation.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1815,11 +1786,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.source_map.keys(): + for bhandle in self.db.get_source_handles(): self.progress.step() - info = self.db.source_map[bhandle] - source = Source() - source.unserialize(info) + source = self.db.get_source_from_handle(bhandle) handle_list = source.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1831,11 +1800,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.media_map.keys(): + for bhandle in self.db.get_media_handles(): self.progress.step() - info = self.db.media_map[bhandle] - obj = Media() - obj.unserialize(info) + obj = self.db.get_media_from_handle(bhandle) handle_list = obj.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1847,11 +1814,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.event_map.keys(): + for bhandle in self.db.get_event_handles(): self.progress.step() - info = self.db.event_map[bhandle] - event = Event() - event.unserialize(info) + event = self.db.get_event_from_handle(bhandle) handle_list = event.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1863,11 +1828,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_note_references.add(item[1]) - for bhandle in self.db.repository_map.keys(): + for bhandle in self.db.get_repository_handles(): self.progress.step() - info = self.db.repository_map[bhandle] - repo = Repository() - repo.unserialize(info) + repo = self.db.get_repository_from_handle(bhandle) handle_list = repo.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Note': @@ -1918,11 +1881,9 @@ class CheckIntegrity: total) logging.info('Looking for tag reference problems') - for bhandle in self.db.person_map.keys(): + for bhandle in self.db.get_person_handles(): self.progress.step() - info = self.db.person_map[bhandle] - person = Person() - person.unserialize(info) + person = self.db.get_person_from_handle(bhandle) handle_list = person.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Tag': @@ -1934,11 +1895,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_tag_references.add(item[1]) - for bhandle in self.db.family_map.keys(): + for bhandle in self.db.get_family_handles(): self.progress.step() - info = self.db.family_map[bhandle] - family = Family() - family.unserialize(info) + family = self.db.get_family_from_handle(bhandle) handle_list = family.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Tag': @@ -1950,11 +1909,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_tag_references.add(item[1]) - for bhandle in self.db.media_map.keys(): + for bhandle in self.db.get_media_handles(): self.progress.step() - info = self.db.media_map[bhandle] - obj = Media() - obj.unserialize(info) + obj = self.db.get_media_from_handle(bhandle) handle_list = obj.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Tag': @@ -1966,11 +1923,9 @@ class CheckIntegrity: elif item[1] not in known_handles: self.invalid_tag_references.add(item[1]) - for bhandle in self.db.note_map.keys(): + for bhandle in self.db.get_note_handles(): self.progress.step() - info = self.db.note_map[bhandle] - note = Note() - note.unserialize(info) + note = self.db.get_note_from_handle(bhandle) handle_list = note.get_referenced_handles_recursively() for item in handle_list: if item[0] == 'Tag': @@ -2001,11 +1956,9 @@ class CheckIntegrity: 'problems'), total) logging.info('Looking for media source reference problems') - for handle in self.db.source_map.keys(): + for handle in self.db.get_source_handles(): self.progress.step() - info = self.db.source_map[handle] - source = Source() - source.unserialize(info) + source = self.db.get_source_from_handle(handle) new_media_ref_list = [] for media_ref in source.get_media_list(): citation_list = media_ref.get_citation_list() diff --git a/gramps/plugins/tool/reorderids.py b/gramps/plugins/tool/reorderids.py index 9ea272d2b..c7340f653 100644 --- a/gramps/plugins/tool/reorderids.py +++ b/gramps/plugins/tool/reorderids.py @@ -80,7 +80,7 @@ class ReorderIds(tool.BatchTool): db.get_person_from_gramps_id, db.get_person_from_handle, db.find_next_person_gramps_id, - db.person_map, + db.get_person_handles, db.commit_person, db.person_prefix) @@ -91,7 +91,7 @@ class ReorderIds(tool.BatchTool): db.get_family_from_gramps_id, db.get_family_from_handle, db.find_next_family_gramps_id, - db.family_map, + db.get_family_handles, db.commit_family, db.family_prefix) if uistate: @@ -101,7 +101,7 @@ class ReorderIds(tool.BatchTool): db.get_event_from_gramps_id, db.get_event_from_handle, db.find_next_event_gramps_id, - db.event_map, + db.get_event_handles, db.commit_event, db.event_prefix) if uistate: @@ -111,7 +111,7 @@ class ReorderIds(tool.BatchTool): db.get_media_from_gramps_id, db.get_media_from_handle, db.find_next_media_gramps_id, - db.media_map, + db.get_media_handles, db.commit_media, db.media_prefix) if uistate: @@ -121,7 +121,7 @@ class ReorderIds(tool.BatchTool): db.get_source_from_gramps_id, db.get_source_from_handle, db.find_next_source_gramps_id, - db.source_map, + db.get_source_handles, db.commit_source, db.source_prefix) if uistate: @@ -131,7 +131,7 @@ class ReorderIds(tool.BatchTool): db.get_citation_from_gramps_id, db.get_citation_from_handle, db.find_next_citation_gramps_id, - db.citation_map, + db.get_citation_handles, db.commit_citation, db.citation_prefix) if uistate: @@ -141,7 +141,7 @@ class ReorderIds(tool.BatchTool): db.get_place_from_gramps_id, db.get_place_from_handle, db.find_next_place_gramps_id, - db.place_map, + db.get_place_handles, db.commit_place, db.place_prefix) if uistate: @@ -151,7 +151,7 @@ class ReorderIds(tool.BatchTool): db.get_repository_from_gramps_id, db.get_repository_from_handle, db.find_next_repository_gramps_id, - db.repository_map, + db.get_repository_handles, db.commit_repository, db.repository_prefix) #add reorder notes ID @@ -162,7 +162,7 @@ class ReorderIds(tool.BatchTool): db.get_note_from_gramps_id, db.get_note_from_handle, db.find_next_note_gramps_id, - db.note_map, + db.get_note_handles, db.commit_note, db.note_prefix) if uistate: @@ -174,20 +174,18 @@ class ReorderIds(tool.BatchTool): db.request_rebuild() def reorder(self, class_type, find_from_id, find_from_handle, - find_next_id, table, commit, prefix): + find_next_id, find_handles, commit, prefix): dups = [] newids = {} formatmatch = _parseformat.match(prefix) - for handle in list(table.keys()): + for handle in find_handles(): if self.uistate: self.progress.step() - sdata = table[handle] + obj = find_from_handle(handle) - obj = class_type() - obj.unserialize(sdata) gramps_id = obj.get_gramps_id() # attempt to extract integer, if we can't, treat it as a # duplicate