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:
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user