* src/GrampsInMemDB.py: new base class for in memory databases, such
as XML or GEDCOM * src/GrampGEDDB.py: use new GrampsInMemDB base class * src/GrampXMLDB.py: use new GrampsInMemDB base class * src/Makefile.am: add GrampsInMemDB.py * src/ReadGedcom.py: remove debug statements svn: r3555
This commit is contained in:
parent
e809a69b41
commit
4e43d89fe3
@ -1,3 +1,11 @@
|
||||
2004-09-18 Don Allingham <dallingham@users.sourceforge.net>
|
||||
* src/GrampsInMemDB.py: new base class for in memory databases, such
|
||||
as XML or GEDCOM
|
||||
* src/GrampGEDDB.py: use new GrampsInMemDB base class
|
||||
* src/GrampXMLDB.py: use new GrampsInMemDB base class
|
||||
* src/Makefile.am: add GrampsInMemDB.py
|
||||
* src/ReadGedcom.py: remove debug statements
|
||||
|
||||
2004-09-18 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||
* src/DateEdit.py (DateEdit): Take care of both the button and
|
||||
the LED pixmap now; Invoke DateEditorDialog if the button is pressed;
|
||||
|
@ -184,7 +184,7 @@ class GrampsBSDDB(GrampsDbBase):
|
||||
transaction.add(SOURCE_KEY,handle,old_data)
|
||||
self.source_map.delete(str(handle))
|
||||
|
||||
def remove_family_handle(self,handle,transaction):
|
||||
def remove_family(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.family_map.get(str(handle))
|
||||
transaction.add(FAMILY_KEY,handle,old_data)
|
||||
|
@ -21,7 +21,7 @@
|
||||
# $Id$
|
||||
|
||||
from RelLib import *
|
||||
from GrampsDbBase import *
|
||||
from GrampsInMemDB import *
|
||||
|
||||
import ReadGedcom
|
||||
import WriteGedcom
|
||||
@ -31,27 +31,16 @@ import WriteGedcom
|
||||
# GrampsGEDDB
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class GrampsGEDDB(GrampsDbBase):
|
||||
class GrampsGEDDB(GrampsInMemDB):
|
||||
"""GRAMPS database object. This object is a base class for other
|
||||
objects."""
|
||||
|
||||
def __init__(self):
|
||||
"""creates a new GrampsDB"""
|
||||
GrampsDbBase.__init__(self)
|
||||
GrampsInMemDB.__init__(self)
|
||||
|
||||
def load(self,name,callback):
|
||||
self.person_map = {}
|
||||
self.family_map = {}
|
||||
self.place_map = {}
|
||||
self.source_map = {}
|
||||
self.media_map = {}
|
||||
self.event_map = {}
|
||||
self.metadata = {}
|
||||
self.filename = name
|
||||
self.id_trans = {}
|
||||
self.eventnames = {}
|
||||
self.undodb = []
|
||||
|
||||
ReadGedcom.importData(self,name)
|
||||
|
||||
self.bookmarks = self.metadata.get('bookmarks')
|
||||
@ -63,46 +52,3 @@ class GrampsGEDDB(GrampsDbBase):
|
||||
writer = WriteGedcom.GedcomWriter(self,self.get_default_person())
|
||||
writer.export_data(self.filename)
|
||||
|
||||
def get_surname_list(self):
|
||||
a = {}
|
||||
for person_id in self.get_person_handles(sort_handles=False):
|
||||
p = self.get_person_from_handle(person_id)
|
||||
a[p.get_primary_name().get_surname()] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def get_person_event_type_list(self):
|
||||
names = self.eventnames.keys()
|
||||
a = {}
|
||||
for name in names:
|
||||
a[unicode(name)] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def remove_person(self,handle,transaction):
|
||||
self.genderStats.uncount_person (self.person_map[handle])
|
||||
if transaction != None:
|
||||
old_data = self.person_map.get(handle)
|
||||
transaction.add(PERSON_KEY,handle,old_data)
|
||||
del self.person_map[handle]
|
||||
|
||||
def remove_source(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.source_map.get(str(handle))
|
||||
transaction.add(SOURCE_KEY,handle,old_data)
|
||||
del self.source_map[str(handle)]
|
||||
|
||||
def remove_family_handle(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.family_map.get(str(handle))
|
||||
transaction.add(FAMILY_KEY,handle,old_data)
|
||||
del self.family_map[str(handle)]
|
||||
|
||||
def remove_event(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.event_map.get(str(handle))
|
||||
transaction.add(EVENT_KEY,handle,old_data)
|
||||
del self.event_map[str(handle)]
|
||||
|
||||
|
160
gramps2/src/GrampsInMemDB.py
Normal file
160
gramps2/src/GrampsInMemDB.py
Normal file
@ -0,0 +1,160 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000-2004 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
|
||||
from RelLib import *
|
||||
from GrampsDbBase import *
|
||||
|
||||
import ReadGedcom
|
||||
import WriteGedcom
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GrampsInMemDB
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class GrampsInMemDB(GrampsDbBase):
|
||||
"""GRAMPS database object. This object is a base class for other
|
||||
objects."""
|
||||
|
||||
def __init__(self):
|
||||
"""creates a new GrampsDB"""
|
||||
GrampsDbBase.__init__(self)
|
||||
self.person_map = {}
|
||||
self.family_map = {}
|
||||
self.place_map = {}
|
||||
self.source_map = {}
|
||||
self.media_map = {}
|
||||
self.event_map = {}
|
||||
self.metadata = {}
|
||||
self.filename = ""
|
||||
self.id_trans = {}
|
||||
self.pid_trans = {}
|
||||
self.fid_trans = {}
|
||||
self.sid_trans = {}
|
||||
self.oid_trans = {}
|
||||
self.eventnames = {}
|
||||
self.undodb = []
|
||||
|
||||
def load(self,name,callback):
|
||||
pass
|
||||
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
def get_surname_list(self):
|
||||
a = {}
|
||||
for person_id in self.get_person_handles(sort_handles=False):
|
||||
p = self.get_person_from_handle(person_id)
|
||||
a[p.get_primary_name().get_surname()] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def get_person_event_type_list(self):
|
||||
names = self.eventnames.keys()
|
||||
a = {}
|
||||
for name in names:
|
||||
a[unicode(name)] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def remove_person(self,handle,transaction):
|
||||
self.genderStats.uncount_person (self.person_map[handle])
|
||||
if transaction != None:
|
||||
old_data = self.person_map.get(handle)
|
||||
transaction.add(PERSON_KEY,handle,old_data)
|
||||
del self.id_trans[self.person_map[handle].get_gramps_id()]
|
||||
del self.person_map[handle]
|
||||
|
||||
def remove_source(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.source_map.get(str(handle))
|
||||
transaction.add(SOURCE_KEY,handle,old_data)
|
||||
del self.sid_trans[self.source_map[handle].get_gramps_id()]
|
||||
del self.source_map[str(handle)]
|
||||
|
||||
def remove_family(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.family_map.get(str(handle))
|
||||
transaction.add(FAMILY_KEY,handle,old_data)
|
||||
del self.fid_trans[self.family_map[handle].get_gramps_id()]
|
||||
del self.family_map[str(handle)]
|
||||
|
||||
def remove_event(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.event_map.get(str(handle))
|
||||
transaction.add(EVENT_KEY,handle,old_data)
|
||||
del self.eid_trans[self.event_map[handle].get_gramps_id()]
|
||||
del self.event_map[str(handle)]
|
||||
|
||||
def remove_family(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.family_map.get(str(handle))
|
||||
transaction.add(EVENT_KEY,handle,old_data)
|
||||
del self.fid_trans[self.family_map[handle].get_gramps_id()]
|
||||
del self.family_map[str(handle)]
|
||||
|
||||
def commit_person(self,person,transaction,change_time=None):
|
||||
id = person.get_gramps_id()
|
||||
self.id_trans[id] = person.get_handle()
|
||||
GrampsDbBase.commit_person(self,person,transaction,change_time)
|
||||
|
||||
def commit_place(self,place,transaction,change_time=None):
|
||||
id = place.get_gramps_id()
|
||||
self.pid_trans[id] = place.get_handle()
|
||||
GrampsDbBase.commit_place(self,place,transaction,change_time)
|
||||
|
||||
def commit_family(self,family,transaction,change_time=None):
|
||||
id = family.get_gramps_id()
|
||||
self.fid_trans[id] = family.get_handle()
|
||||
GrampsDbBase.commit_family(self,family,transaction,change_time)
|
||||
|
||||
def commit_media_object(self,obj,transaction,change_time=None):
|
||||
id = obj.get_gramps_id()
|
||||
self.oid_trans[id] = obj.get_handle()
|
||||
GrampsDbBase.commit_media_object(self,obj,transaction,change_time)
|
||||
|
||||
def commit_source(self,source,transaction,change_time=None):
|
||||
id = source.get_gramps_id()
|
||||
self.sid_trans[id] = source.get_handle()
|
||||
GrampsDbBase.commit_source(self,source,transaction,change_time)
|
||||
|
||||
def get_person_from_gramps_id(self,val):
|
||||
handle = self.id_trans.get(str(val))
|
||||
return self.person_map[handle]
|
||||
|
||||
def get_family_from_gramps_id(self,val):
|
||||
handle = self.fid_trans.get(str(val))
|
||||
return self.family_map[handle]
|
||||
|
||||
def get_place_from_gramps_id(self,val):
|
||||
handle = self.pid_trans.get(str(val))
|
||||
return self.place_map[handle]
|
||||
|
||||
def get_source_from_gramps_id(self,val):
|
||||
handle = self.sid_trans.get(str(val))
|
||||
return self.source_map[handle]
|
||||
|
||||
def get_object_from_gramps_id(self,val):
|
||||
handle = self.oid_trans.get(str(val))
|
||||
return self.media_map[handle]
|
@ -21,45 +21,26 @@
|
||||
# $Id$
|
||||
|
||||
from RelLib import *
|
||||
from GrampsDbBase import *
|
||||
from GrampsInMemDB import *
|
||||
|
||||
import ReadXML
|
||||
import WriteXML
|
||||
|
||||
_UNDO_SIZE = 1000
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# ID regular expression
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
_id_reg = compile("%\d+d")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GrampsXMLDB
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class GrampsXMLDB(GrampsDbBase):
|
||||
class GrampsXMLDB(GrampsInMemDB):
|
||||
"""GRAMPS database object. This object is a base class for other
|
||||
objects."""
|
||||
|
||||
def __init__(self):
|
||||
"""creates a new GrampsDB"""
|
||||
GrampsDbBase.__init__(self)
|
||||
GrampsInMemDB.__init__(self)
|
||||
|
||||
def load(self,name,callback):
|
||||
self.person_map = {}
|
||||
self.family_map = {}
|
||||
self.place_map = {}
|
||||
self.source_map = {}
|
||||
self.media_map = {}
|
||||
self.event_map = {}
|
||||
self.metadata = {}
|
||||
self.filename = name
|
||||
self.id_trans = {}
|
||||
self.eventnames = {}
|
||||
self.undodb = []
|
||||
|
||||
ReadXML.importData(self,name)
|
||||
|
||||
@ -71,46 +52,3 @@ class GrampsXMLDB(GrampsDbBase):
|
||||
def close(self):
|
||||
WriteXML.quick_write(self,self.filename)
|
||||
|
||||
def get_surname_list(self):
|
||||
a = {}
|
||||
for person_id in self.get_person_handles(sort_handles=False):
|
||||
p = self.get_person_from_handle(person_id)
|
||||
a[p.get_primary_name().get_surname()] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def get_person_event_type_list(self):
|
||||
names = self.eventnames.keys()
|
||||
a = {}
|
||||
for name in names:
|
||||
a[unicode(name)] = 1
|
||||
vals = a.keys()
|
||||
vals.sort()
|
||||
return vals
|
||||
|
||||
def remove_person(self,handle,transaction):
|
||||
self.genderStats.uncount_person (self.person_map[handle])
|
||||
if transaction != None:
|
||||
old_data = self.person_map.get(handle)
|
||||
transaction.add(PERSON_KEY,handle,old_data)
|
||||
del self.person_map[handle]
|
||||
|
||||
def remove_source(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.source_map.get(str(handle))
|
||||
transaction.add(SOURCE_KEY,handle,old_data)
|
||||
del self.source_map[str(handle)]
|
||||
|
||||
def remove_family_handle(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.family_map.get(str(handle))
|
||||
transaction.add(FAMILY_KEY,handle,old_data)
|
||||
del self.family_map[str(handle)]
|
||||
|
||||
def remove_event(self,handle,transaction):
|
||||
if transaction != None:
|
||||
old_data = self.event_map.get(str(handle))
|
||||
transaction.add(EVENT_KEY,handle,old_data)
|
||||
del self.event_map[str(handle)]
|
||||
|
||||
|
@ -46,6 +46,7 @@ gdir_PYTHON = \
|
||||
GrampsCfg.py\
|
||||
GrampsBSDDB.py\
|
||||
GrampsDbBase.py\
|
||||
GrampsInMemDB.py\
|
||||
GrampsXMLDB.py\
|
||||
GrampsGEDDB.py\
|
||||
GrampsMime.py\
|
||||
|
@ -1729,7 +1729,6 @@ class GedcomParser:
|
||||
stop = self.dp.parse(data2)
|
||||
dateobj.set(Date.QUAL_NONE, Date.MOD_RANGE, cal,
|
||||
start.get_start_date() + stop.get_start_date())
|
||||
print dateobj
|
||||
return dateobj
|
||||
|
||||
match = spanRegexp.match(text)
|
||||
@ -1751,7 +1750,6 @@ class GedcomParser:
|
||||
stop = self.dp.parse(data2)
|
||||
dateobj.set(Date.QUAL_NONE, Date.MOD_SPAN, cal,
|
||||
start.get_start_date() + stop.get_start_date())
|
||||
print dateobj
|
||||
return dateobj
|
||||
|
||||
match = calRegexp.match(text)
|
||||
@ -1764,10 +1762,8 @@ class GedcomParser:
|
||||
dateobj.set_calendar(Date.CAL_JULIAN)
|
||||
elif cal == "HEBREW":
|
||||
dateobj.set_calendar(Date.CAL_HEBREW)
|
||||
print dateobj
|
||||
return dateobj
|
||||
else:
|
||||
print text, self.dp.parse(text)
|
||||
return self.dp.parse(text)
|
||||
except IOError:
|
||||
return self.dp.set_text(text)
|
||||
@ -1793,7 +1789,6 @@ class GedcomParser:
|
||||
prefix = self.db.iprefix
|
||||
index = 0
|
||||
new_pmax = self.db.pmap_index
|
||||
print self.added
|
||||
for pid in self.added.keys():
|
||||
index = index + 1
|
||||
if self.refn.has_key(pid):
|
||||
|
@ -1408,7 +1408,6 @@ class LdsOrd(SourceNote):
|
||||
def get_date(self) :
|
||||
"""returns a string representation of the date of the ordinance"""
|
||||
if self.date:
|
||||
print self.dd
|
||||
return self.dd.display(self.date)
|
||||
return u""
|
||||
|
||||
|
@ -243,7 +243,7 @@ class CheckIntegrity:
|
||||
child = self.db.get_person_from_handle(key)
|
||||
child.remove_parent_family_handle(family_handle)
|
||||
child.remove_family_handle(family_handle)
|
||||
self.db.remove_family_handle(family_handle,self.trans)
|
||||
self.db.remove_family(family_handle,self.trans)
|
||||
|
||||
def check_parent_relationships(self):
|
||||
for key in self.db.get_family_handles():
|
||||
|
Loading…
Reference in New Issue
Block a user