2007-10-08 Don Allingham <don@gramps-project.org>

* various: gen.lib integration. probably touches almost every file

	* various: gen.utils integration


svn: r9101
This commit is contained in:
Don Allingham
2007-10-08 16:41:39 +00:00
parent 8038bc0dca
commit d58641415d
245 changed files with 2315 additions and 2355 deletions

View File

@ -53,7 +53,7 @@ import gtk.glade
#
#-------------------------------------------------------------------------
import Errors
import RelLib
import gen.lib
import const
from QuestionDialog import ErrorDialog
from DateHandler import parser as _dp
@ -64,15 +64,15 @@ _date_parse = re.compile('([kmes~?<>]+)?([0-9/]+)([J|H|F])?(\.\.)?([0-9/]+)?([J|
_text_parse = re.compile('0\((.*)\)')
_mod_map = {
'>' : RelLib.Date.MOD_AFTER,
'<' : RelLib.Date.MOD_BEFORE,
'~' : RelLib.Date.MOD_ABOUT,
'>' : gen.lib.Date.MOD_AFTER,
'<' : gen.lib.Date.MOD_BEFORE,
'~' : gen.lib.Date.MOD_ABOUT,
}
_cal_map = {
'J' : RelLib.Date.CAL_JULIAN,
'H' : RelLib.Date.CAL_HEBREW,
'F' : RelLib.Date.CAL_FRENCH,
'J' : gen.lib.Date.CAL_JULIAN,
'H' : gen.lib.Date.CAL_HEBREW,
'F' : gen.lib.Date.CAL_FRENCH,
}
enable_debug = False
@ -201,14 +201,14 @@ class GeneWebParser:
self.current_husband_handle = None
self.current_child_birthplace_handle = None
self.current_child_source_handle = None
self.current_family = RelLib.Family()
self.current_family = gen.lib.Family()
self.db.add_family(self.current_family,self.trans)
#self.db.commit_family(self.current_family,self.trans)
self.fkeys.append(self.current_family.get_handle())
idx = 1;
self.debug("\nHusband:")
(idx,husband) = self.parse_person(fields,idx,RelLib.Person.MALE,None)
(idx,husband) = self.parse_person(fields,idx,gen.lib.Person.MALE,None)
if husband:
self.current_husband_handle = husband.get_handle()
self.current_family.set_father_handle(husband.get_handle())
@ -218,7 +218,7 @@ class GeneWebParser:
self.debug("Marriage:")
idx = self.parse_marriage(fields,idx)
self.debug("Wife:")
(idx,wife) = self.parse_person(fields,idx,RelLib.Person.FEMALE,None)
(idx,wife) = self.parse_person(fields,idx,gen.lib.Person.FEMALE,None)
if wife:
self.current_family.set_mother_handle(wife.get_handle())
self.db.commit_family(self.current_family,self.trans)
@ -228,7 +228,7 @@ class GeneWebParser:
def read_relationship_person(self,line,fields):
self.debug("\Relationships:")
(idx,person) = self.parse_person(fields,1,RelLib.Person.UNKNOWN,None)
(idx,person) = self.parse_person(fields,1,gen.lib.Person.UNKNOWN,None)
if person:
self.current_relationship_person_handle = person.get_handle()
@ -251,8 +251,8 @@ class GeneWebParser:
#split related person into fields
fields = matches.groups()[1].split(" ")
if fields:
(idx,asso_p) = self.parse_person(fields,0,RelLib.Person.UNKNOWN,None)
pref = RelLib.PersonRef()
(idx,asso_p) = self.parse_person(fields,0,gen.lib.Person.UNKNOWN,None)
pref = gen.lib.PersonRef()
pref.set_relation(matches.groups()[0])
print("TODO: Handle association types properly")
pref.set_reference_handle(asso_p.get_handle())
@ -280,9 +280,9 @@ class GeneWebParser:
def read_witness_line(self,line,fields):
self.debug("Witness:")
if fields[1] == "m:":
(idx,wit_p) = self.parse_person(fields,2,RelLib.Person.MALE,None)
(idx,wit_p) = self.parse_person(fields,2,gen.lib.Person.MALE,None)
elif fields[1] == "f:":
(idx,wit_p) = self.parse_person(fields,2,RelLib.Person.FEMALE,None)
(idx,wit_p) = self.parse_person(fields,2,gen.lib.Person.FEMALE,None)
else:
(idx,wit_p) = self.parse_person(fields,1,None,None)
if wit_p:
@ -290,15 +290,15 @@ class GeneWebParser:
# search marriage event
for evr in self.current_family.get_event_ref_list():
ev = self.db.get_event_from_handle(evr.get_reference_handle())
if ev.get_type() == RelLib.EventType.MARRIAGE:
if ev.get_type() == gen.lib.EventType.MARRIAGE:
mev = ev # found.
if not mev: # No marriage event found create a new one
mev = self.create_event(RelLib.EventType.MARRIAGE, None, None, None, None)
mar_ref = RelLib.EventRef()
mev = self.create_event(gen.lib.EventType.MARRIAGE, None, None, None, None)
mar_ref = gen.lib.EventRef()
mar_ref.set_reference_handle(mev.get_handle())
self.current_family.add_event_ref(mar_ref)
wit_ref = RelLib.EventRef()
wit_ref.set_role(RelLib.EventRoleType(RelLib.EventRoleType.WITNESS))
wit_ref = gen.lib.EventRef()
wit_ref.set_role(gen.lib.EventRoleType(gen.lib.EventRoleType.WITNESS))
wit_ref.set_reference_handle(mev.get_handle())
wit_p.add_event_ref(wit_ref)
self.db.commit_person(wit_p,self.trans)
@ -326,14 +326,14 @@ class GeneWebParser:
self.debug("Child:")
child = None
if fields[1] == "h":
(idx,child) = self.parse_person(fields,2,RelLib.Person.MALE,father_surname)
(idx,child) = self.parse_person(fields,2,gen.lib.Person.MALE,father_surname)
elif fields[1] == "f":
(idx,child) = self.parse_person(fields,2,RelLib.Person.FEMALE,father_surname)
(idx,child) = self.parse_person(fields,2,gen.lib.Person.FEMALE,father_surname)
else:
(idx,child) = self.parse_person(fields,1,RelLib.Person.UNKNOWN,father_surname)
(idx,child) = self.parse_person(fields,1,gen.lib.Person.UNKNOWN,father_surname)
if child:
childref = RelLib.ChildRef()
childref = gen.lib.ChildRef()
childref.set_reference_handle(child.get_handle())
self.current_family.add_child_ref( childref)
self.db.commit_family(self.current_family,self.trans)
@ -344,8 +344,8 @@ class GeneWebParser:
if birth_ref:
birth = self.db.get_event_from_handle(birth_ref.ref)
if not birth:
birth = self.create_event(RelLib.EventType.BIRTH)
birth_ref = RelLib.EventRef()
birth = self.create_event(gen.lib.EventType.BIRTH)
birth_ref = gen.lib.EventRef()
birth_ref.set_reference_handle(birth.get_handle())
child.set_birth_ref(birth_ref)
birth.set_place_handle(self.current_child_birthplace_handle)
@ -374,7 +374,7 @@ class GeneWebParser:
if not self.current_family:
print "Unknown family of child in line %d!" % self.lineno
return None
n = RelLib.Note()
n = gen.lib.Note()
n.set(line)
self.db.add_note(n,self.trans)
self.current_family.add_note(n.handle)
@ -399,7 +399,7 @@ class GeneWebParser:
else:
note_txt = note_txt + line
if note_txt:
n = RelLib.Note()
n = gen.lib.Note()
n.set(note_txt)
self.db.add_note(n,self.trans)
return n.handle
@ -476,25 +476,25 @@ class GeneWebParser:
idx = idx + 1
if mar_date or mar_place or mar_source:
mar = self.create_event(RelLib.EventType.MARRIAGE, None, mar_date, mar_place, mar_source)
mar_ref = RelLib.EventRef()
mar = self.create_event(gen.lib.EventType.MARRIAGE, None, mar_date, mar_place, mar_source)
mar_ref = gen.lib.EventRef()
mar_ref.set_reference_handle(mar.get_handle())
self.current_family.add_event_ref(mar_ref)
if div_date:
div = self.create_event(RelLib.EventType.DIVORCE, None, div_date, None, None)
div_ref = RelLib.EventRef()
div = self.create_event(gen.lib.EventType.DIVORCE, None, div_date, None, None)
div_ref = gen.lib.EventRef()
div_ref.set_reference_handle(div.get_handle())
self.current_family.add_event_ref(div_ref)
if sep_date or engaged:
sep = self.create_event(RelLib.EventType.ENGAGEMENT, None, sep_date, None, None)
sep_ref = RelLib.EventRef()
sep = self.create_event(gen.lib.EventType.ENGAGEMENT, None, sep_date, None, None)
sep_ref = gen.lib.EventRef()
sep_ref.set_reference_handle(sep.get_handle())
self.current_family.add_event_ref(sep_ref)
if not married:
self.current_family.set_relationship(RelLib.FamilyRelType(RelLib.FamilyRelType.UNMARRIED))
self.current_family.set_relationship(gen.lib.FamilyRelType(gen.lib.FamilyRelType.UNMARRIED))
self.db.commit_family(self.current_family,self.trans)
return idx
@ -525,12 +525,12 @@ class GeneWebParser:
self.debug("Person: %s %s" % (firstname, surname))
person = self.get_or_create_person(firstname,surname)
name = RelLib.Name()
name.set_type( RelLib.NameType(RelLib.NameType.BIRTH))
name = gen.lib.Name()
name.set_type( gen.lib.NameType(gen.lib.NameType.BIRTH))
name.set_first_name(firstname)
name.set_surname(surname)
person.set_primary_name(name)
if person.get_gender() == RelLib.Person.UNKNOWN and gender != None:
if person.get_gender() == gen.lib.Person.UNKNOWN and gender != None:
person.set_gender(gender)
self.db.commit_person(person,self.trans)
personDataRe = re.compile("^[kmes0-9<>~#\[({!].*$")
@ -587,16 +587,16 @@ class GeneWebParser:
pass
if tnth: # Append title numer to title
ttitle = "%s, %s" % (ttitle, tnth)
title = self.create_event(RelLib.EventType.NOB_TITLE,ttitle,tstart,tplace)
title = self.create_event(gen.lib.EventType.NOB_TITLE,ttitle,tstart,tplace)
# TODO: Geneweb has a start date and an end date, and therefore
# supprts stuff like: FROM about 1955 TO between 1998 and 1999
# gramps only supports one single date ore range.
if tname and tname != "*":
n = RelLib.Note()
n = gen.lib.Note()
n.set(tname)
self.db.add_note(n,self.trans)
title.add_note( n.handle)
title_ref = RelLib.EventRef()
title_ref = gen.lib.EventRef()
title_ref.set_reference_handle(title.get_handle())
person.add_event_ref(title_ref)
idx += 1
@ -608,8 +608,8 @@ class GeneWebParser:
elif fields[idx] == '#occu':
idx += 1
self.debug("Occupation: %s" % fields[idx])
occu = self.create_event(RelLib.EventType.OCCUPATION,self.decode(fields[idx]))
occu_ref = RelLib.EventRef()
occu = self.create_event(gen.lib.EventType.OCCUPATION,self.decode(fields[idx]))
occu_ref = gen.lib.EventRef()
occu_ref.set_reference_handle(occu.get_handle())
person.add_event_ref(occu_ref)
idx += 1
@ -727,37 +727,37 @@ class GeneWebParser:
if public_name:
name = person.get_primary_name()
name.set_type(RelLib.NameType(RelLib.NameType.BIRTH))
name.set_type(gen.lib.NameType(gen.lib.NameType.BIRTH))
person.add_alternate_name(name)
name = RelLib.Name()
name.set_type(RelLib.NameType(RelLib.NameType.AKA))
name = gen.lib.Name()
name.set_type(gen.lib.NameType(gen.lib.NameType.AKA))
name.set_first_name(public_name)
name.set_surname(surname)
person.set_primary_name(name)
for aka in nick_names:
name = RelLib.Attribute()
name.set_type(RelLib.AttributeType(RelLib.AttributeType.NICKNAME))
name = gen.lib.Attribute()
name.set_type(gen.lib.AttributeType(gen.lib.AttributeType.NICKNAME))
name.set_value(aka)
person.add_attribute(name)
for aka in firstname_aliases:
name = RelLib.Name()
name.set_type(RelLib.NameType(RelLib.NameType.AKA))
name = gen.lib.Name()
name.set_type(gen.lib.NameType(gen.lib.NameType.AKA))
name.set_first_name(aka)
name.set_surname(surname)
person.add_alternate_name(name)
for aka in name_aliases:
name = RelLib.Name()
name.set_type(RelLib.NameType(RelLib.NameType.AKA))
name = gen.lib.Name()
name.set_type(gen.lib.NameType(gen.lib.NameType.AKA))
name.set_first_name(aka)
name.set_surname(surname)
person.add_alternate_name(name)
for aka in surname_aliases:
name = RelLib.Name()
name.set_type(RelLib.NameType(RelLib.NameType.AKA))
name = gen.lib.Name()
name.set_type(gen.lib.NameType(gen.lib.NameType.AKA))
if public_name:
name.set_first_name(public_name)
else:
@ -769,35 +769,35 @@ class GeneWebParser:
person.add_source_reference(source)
if birth_date or birth_place or birth_source:
birth = self.create_event(RelLib.EventType.BIRTH, None, birth_date, birth_place, birth_source)
birth_ref = RelLib.EventRef()
birth = self.create_event(gen.lib.EventType.BIRTH, None, birth_date, birth_place, birth_source)
birth_ref = gen.lib.EventRef()
birth_ref.set_reference_handle( birth.get_handle())
person.set_birth_ref( birth_ref)
if bapt_date or bapt_place or bapt_source:
babt = self.create_event(RelLib.EventType.BAPTISM, None, bapt_date, bapt_place, bapt_source)
babt_ref = RelLib.EventRef()
babt = self.create_event(gen.lib.EventType.BAPTISM, None, bapt_date, bapt_place, bapt_source)
babt_ref = gen.lib.EventRef()
babt_ref.set_reference_handle( babt.get_handle())
person.add_event_ref( babt_ref)
if death_date or death_place or death_source or death_cause:
death = self.create_event(RelLib.EventType.DEATH, None, death_date, death_place, death_source)
death = self.create_event(gen.lib.EventType.DEATH, None, death_date, death_place, death_source)
if death_cause:
death.set_description(death_cause)
self.db.commit_event(death,self.trans)
death_ref = RelLib.EventRef()
death_ref = gen.lib.EventRef()
death_ref.set_reference_handle( death.get_handle())
person.set_death_ref( death_ref)
if bur_date:
bur = self.create_event(RelLib.EventType.BURIAL, None, bur_date, bur_place, bur_source)
bur_ref = RelLib.EventRef()
bur = self.create_event(gen.lib.EventType.BURIAL, None, bur_date, bur_place, bur_source)
bur_ref = gen.lib.EventRef()
bur_ref.set_reference_handle( bur.get_handle())
person.add_event_ref( bur_ref)
if crem_date:
crem = self.create_event(RelLib.EventType.CREMATION, None, crem_date, bur_place, bur_source)
crem_ref = RelLib.EventRef()
crem = self.create_event(gen.lib.EventType.CREMATION, None, crem_date, bur_place, bur_source)
crem_ref = gen.lib.EventRef()
crem_ref.set_reference_handle( crem.get_handle())
person.add_event_ref(crem_ref)
@ -808,27 +808,27 @@ class GeneWebParser:
def parse_date(self,field):
if field == "0":
return None
date = RelLib.Date()
date = gen.lib.Date()
matches = _text_parse.match(field)
if matches:
groups = matches.groups()
date.set_as_text(groups[0])
date.set_modifier(RelLib.Date.MOD_TEXTONLY)
date.set_modifier(gen.lib.Date.MOD_TEXTONLY)
return date
matches = _date_parse.match(field)
if matches:
groups = matches.groups()
mod = _mod_map.get(groups[0],RelLib.Date.MOD_NONE)
mod = _mod_map.get(groups[0],gen.lib.Date.MOD_NONE)
if groups[3] == "..":
mod = RelLib.Date.MOD_SPAN
cal2 = _cal_map.get(groups[5],RelLib.Date.CAL_GREGORIAN)
mod = gen.lib.Date.MOD_SPAN
cal2 = _cal_map.get(groups[5],gen.lib.Date.CAL_GREGORIAN)
sub2 = self.sub_date(groups[4])
else:
sub2 = (0,0,0)
cal1 = _cal_map.get(groups[2],RelLib.Date.CAL_GREGORIAN)
cal1 = _cal_map.get(groups[2],gen.lib.Date.CAL_GREGORIAN)
sub1 = self.sub_date(groups[1])
date.set(RelLib.Date.QUAL_NONE,mod, cal1,
date.set(gen.lib.Date.QUAL_NONE,mod, cal1,
(sub1[0],sub1[1],sub1[2],None,sub2[0],sub2[1],sub2[2],None))
return date
else:
@ -844,9 +844,9 @@ class GeneWebParser:
return (int(vals[0]),int(vals[1]),int(vals[2]))
def create_event(self,type,desc=None,date=None,place=None,source=None):
event = RelLib.Event()
event = gen.lib.Event()
if type:
event.set_type(RelLib.EventType(type))
event.set_type(gen.lib.EventType(type))
if desc:
event.set_description(desc)
if date:
@ -865,7 +865,7 @@ class GeneWebParser:
if mykey in self.ikeys and firstname != "?" and lastname != "?":
person = self.db.get_person_from_handle(self.ikeys[mykey])
else:
person = RelLib.Person()
person = gen.lib.Person()
self.db.add_person(person,self.trans)
self.db.commit_person(person,self.trans)
self.ikeys[mykey] = person.get_handle()
@ -876,7 +876,7 @@ class GeneWebParser:
if place_name in self.pkeys:
place = self.db.get_place_from_handle(self.pkeys[place_name])
else:
place = RelLib.Place()
place = gen.lib.Place()
place.set_title(place_name)
self.db.add_place(place,self.trans)
self.db.commit_place(place,self.trans)
@ -888,12 +888,12 @@ class GeneWebParser:
if source_name in self.skeys:
source = self.db.get_source_from_handle(self.skeys[source_name])
else:
source = RelLib.Source()
source = gen.lib.Source()
source.set_title(source_name)
self.db.add_source(source,self.trans)
self.db.commit_source(source,self.trans)
self.skeys[source_name] = source.get_handle()
sref = RelLib.SourceRef()
sref = gen.lib.SourceRef()
sref.set_reference_handle(source.get_handle())
return sref