fix the finddupes tool for surnames
svn: r16019
This commit is contained in:
parent
460497f489
commit
a3556d839b
@ -144,7 +144,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
GrampsDisplay.help(WIKI_HELP_PAGE , WIKI_HELP_SEC)
|
GrampsDisplay.help(WIKI_HELP_PAGE , WIKI_HELP_SEC)
|
||||||
|
|
||||||
def ancestors_of(self,p1_id,id_list):
|
def ancestors_of(self, p1_id, id_list):
|
||||||
if (not p1_id) or (p1_id in id_list):
|
if (not p1_id) or (p1_id in id_list):
|
||||||
return
|
return
|
||||||
id_list.append(p1_id)
|
id_list.append(p1_id)
|
||||||
@ -181,7 +181,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
except Errors.WindowActiveError:
|
except Errors.WindowActiveError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def find_potentials(self,thresh):
|
def find_potentials(self, thresh):
|
||||||
self.progress = ProgressMeter(_('Find Duplicates'),
|
self.progress = ProgressMeter(_('Find Duplicates'),
|
||||||
_('Looking for duplicate people'))
|
_('Looking for duplicate people'))
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
for p1_id in self.db.iter_person_handles():
|
for p1_id in self.db.iter_person_handles():
|
||||||
self.progress.step()
|
self.progress.step()
|
||||||
p1 = self.db.get_person_from_handle(p1_id)
|
p1 = self.db.get_person_from_handle(p1_id)
|
||||||
key = self.gen_key(p1.get_primary_name().get_surname())
|
key = self.gen_key(get_surnames(p1.get_primary_name()))
|
||||||
if p1.get_gender() == gen.lib.Person.MALE:
|
if p1.get_gender() == gen.lib.Person.MALE:
|
||||||
if key in males:
|
if key in males:
|
||||||
males[key].append(p1_id)
|
males[key].append(p1_id)
|
||||||
@ -216,7 +216,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
self.progress.step()
|
self.progress.step()
|
||||||
p1 = self.db.get_person_from_handle(p1key)
|
p1 = self.db.get_person_from_handle(p1key)
|
||||||
|
|
||||||
key = self.gen_key(p1.get_primary_name().get_surname())
|
key = self.gen_key(get_surnames(p1.get_primary_name()))
|
||||||
if p1.get_gender() == gen.lib.Person.MALE:
|
if p1.get_gender() == gen.lib.Person.MALE:
|
||||||
remaining = males[key]
|
remaining = males[key]
|
||||||
else:
|
else:
|
||||||
@ -246,7 +246,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
self.length = len(self.list)
|
self.length = len(self.list)
|
||||||
self.progress.close()
|
self.progress.close()
|
||||||
|
|
||||||
def gen_key(self,val):
|
def gen_key(self, val):
|
||||||
if self.use_soundex:
|
if self.use_soundex:
|
||||||
try:
|
try:
|
||||||
return soundex.soundex(val)
|
return soundex.soundex(val)
|
||||||
@ -255,7 +255,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
else:
|
else:
|
||||||
return val
|
return val
|
||||||
|
|
||||||
def compare_people(self,p1,p2):
|
def compare_people(self, p1, p2):
|
||||||
|
|
||||||
name1 = p1.get_primary_name()
|
name1 = p1.get_primary_name()
|
||||||
name2 = p2.get_primary_name()
|
name2 = p2.get_primary_name()
|
||||||
@ -397,7 +397,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
chance += value
|
chance += value
|
||||||
return chance
|
return chance
|
||||||
|
|
||||||
def name_compare(self,s1,s2):
|
def name_compare(self, s1, s2):
|
||||||
if self.use_soundex:
|
if self.use_soundex:
|
||||||
try:
|
try:
|
||||||
return soundex.compare(s1,s2)
|
return soundex.compare(s1,s2)
|
||||||
@ -406,7 +406,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
else:
|
else:
|
||||||
return s1 == s2
|
return s1 == s2
|
||||||
|
|
||||||
def date_match(self,date1,date2):
|
def date_match(self, date1, date2):
|
||||||
if date1.is_empty() or date2.is_empty():
|
if date1.is_empty() or date2.is_empty():
|
||||||
return 0
|
return 0
|
||||||
if date1.is_equal(date2):
|
if date1.is_equal(date2):
|
||||||
@ -425,7 +425,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
else:
|
else:
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
def range_compare(self,date1,date2):
|
def range_compare(self, date1, date2):
|
||||||
start_date_1 = date1.get_start_date()[0:3]
|
start_date_1 = date1.get_start_date()[0:3]
|
||||||
start_date_2 = date2.get_start_date()[0:3]
|
start_date_2 = date2.get_start_date()[0:3]
|
||||||
stop_date_1 = date1.get_stop_date()[0:3]
|
stop_date_1 = date1.get_stop_date()[0:3]
|
||||||
@ -454,9 +454,9 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
if not name1 or not name:
|
if not name1 or not name:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
srn1 = name.get_surname()
|
srn1 = get_surnames(name)
|
||||||
sfx1 = name.get_suffix()
|
sfx1 = name.get_suffix()
|
||||||
srn2 = name1.get_surname()
|
srn2 = get_surnames(name1)
|
||||||
sfx2 = name1.get_suffix()
|
sfx2 = name1.get_suffix()
|
||||||
|
|
||||||
if not self.name_compare(srn1,srn2):
|
if not self.name_compare(srn1,srn2):
|
||||||
@ -476,7 +476,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
else:
|
else:
|
||||||
return self.list_reduce(list2,list1)
|
return self.list_reduce(list2,list1)
|
||||||
|
|
||||||
def place_match(self,p1_id,p2_id):
|
def place_match(self, p1_id, p2_id):
|
||||||
if p1_id == p2_id:
|
if p1_id == p2_id:
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@ -509,7 +509,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
value += 0.25
|
value += 0.25
|
||||||
return min(value,1) if value else -1
|
return min(value,1) if value else -1
|
||||||
|
|
||||||
def list_reduce(self,list1,list2):
|
def list_reduce(self, list1, list2):
|
||||||
value = 0
|
value = 0
|
||||||
for name in list1:
|
for name in list1:
|
||||||
for name2 in list2:
|
for name2 in list2:
|
||||||
@ -526,7 +526,7 @@ class Merge(tool.Tool,ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
class ShowMatches(ManagedWindow.ManagedWindow):
|
class ShowMatches(ManagedWindow.ManagedWindow):
|
||||||
|
|
||||||
def __init__(self,dbstate,uistate,track,the_list,the_map,callback):
|
def __init__(self, dbstate, uistate, track, the_list, the_map, callback):
|
||||||
ManagedWindow.ManagedWindow.__init__(self,uistate,track,self.__class__)
|
ManagedWindow.ManagedWindow.__init__(self,uistate,track,self.__class__)
|
||||||
|
|
||||||
self.dellist = {}
|
self.dellist = {}
|
||||||
@ -632,7 +632,11 @@ def get_name_obj(person):
|
|||||||
return person.get_primary_name()
|
return person.get_primary_name()
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_surnames(name):
|
||||||
|
"""Construct a full surname of the surnames"""
|
||||||
|
' '.join([surn.get_surname() for surn in name.get_surname_list()])
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user