* src/GrampsBSDDB.py: associate functions return str instead
of unicode svn: r5577
This commit is contained in:
parent
6915016219
commit
d8ba4dd42e
@ -1,3 +1,7 @@
|
|||||||
|
2005-12-17 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/GrampsBSDDB.py: associate functions return str instead
|
||||||
|
of unicode
|
||||||
|
|
||||||
2005-12-17 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
2005-12-17 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
* src/GrampsBSDDB.py: fixed backlinks search to return classname rather
|
* src/GrampsBSDDB.py: fixed backlinks search to return classname rather
|
||||||
than index.
|
than index.
|
||||||
|
@ -76,10 +76,10 @@ def find_repository_type(key,data):
|
|||||||
# (referenced_object_class_name, referenced_object_handle))
|
# (referenced_object_class_name, referenced_object_handle))
|
||||||
|
|
||||||
def find_primary_handle(key,data):
|
def find_primary_handle(key,data):
|
||||||
return (data)[0][1]
|
return str((data)[0][1])
|
||||||
|
|
||||||
def find_referenced_handle(key,data):
|
def find_referenced_handle(key,data):
|
||||||
return (data)[1][1]
|
return str((data)[1][1])
|
||||||
|
|
||||||
class GrampsBSDDBCursor(GrampsCursor):
|
class GrampsBSDDBCursor(GrampsCursor):
|
||||||
|
|
||||||
|
@ -91,6 +91,9 @@ def importData(database, filename, callback=None,cl=0,use_trans=True):
|
|||||||
change = os.path.getmtime(filename)
|
change = os.path.getmtime(filename)
|
||||||
parser = GrampsParser(database,callback,basefile,change,filename)
|
parser = GrampsParser(database,callback,basefile,change,filename)
|
||||||
|
|
||||||
|
linecounter = LineParser(filename)
|
||||||
|
lc = linecounter.get_count()
|
||||||
|
|
||||||
ro = database.readonly
|
ro = database.readonly
|
||||||
database.readonly = False
|
database.readonly = False
|
||||||
|
|
||||||
@ -128,7 +131,7 @@ def importData(database, filename, callback=None,cl=0,use_trans=True):
|
|||||||
ErrorDialog(_("%s could not be opened") % filename)
|
ErrorDialog(_("%s could not be opened") % filename)
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
parser.parse(xml_file,use_trans)
|
parser.parse(xml_file,use_trans,lc)
|
||||||
except IOError,msg:
|
except IOError,msg:
|
||||||
if cl:
|
if cl:
|
||||||
print "Error reading %s" % filename
|
print "Error reading %s" % filename
|
||||||
@ -203,6 +206,43 @@ def rs(text):
|
|||||||
def fix_spaces(text_list):
|
def fix_spaces(text_list):
|
||||||
return '\n'.join(map(rs,text_list))
|
return '\n'.join(map(rs,text_list))
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class LineParser:
|
||||||
|
def __init__(self, filename):
|
||||||
|
|
||||||
|
self.count = 0
|
||||||
|
|
||||||
|
if gzip_ok:
|
||||||
|
use_gzip = 1
|
||||||
|
try:
|
||||||
|
f = gzip.open(filename,"r")
|
||||||
|
f.read(1)
|
||||||
|
f.close()
|
||||||
|
except IOError,msg:
|
||||||
|
use_gzip = 0
|
||||||
|
except ValueError, msg:
|
||||||
|
use_gzip = 1
|
||||||
|
else:
|
||||||
|
use_gzip = 0
|
||||||
|
|
||||||
|
try:
|
||||||
|
if use_gzip:
|
||||||
|
f = gzip.open(filename,"rb")
|
||||||
|
else:
|
||||||
|
f = open(filename,"r")
|
||||||
|
|
||||||
|
self.count = len(f.readlines())
|
||||||
|
f.close()
|
||||||
|
except:
|
||||||
|
self.count = 0
|
||||||
|
|
||||||
|
def get_count(self):
|
||||||
|
return self.count
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Gramps database parsing class. Derived from SAX XML parser
|
# Gramps database parsing class. Derived from SAX XML parser
|
||||||
@ -536,18 +576,19 @@ class GrampsParser:
|
|||||||
self.oidswap[handle] = handle
|
self.oidswap[handle] = handle
|
||||||
return self.oidswap[handle]
|
return self.oidswap[handle]
|
||||||
|
|
||||||
def parse(self,file,use_trans=True):
|
def parse(self,file,use_trans=True,linecount=0):
|
||||||
|
|
||||||
self.trans = self.db.transaction_begin()
|
self.trans = self.db.transaction_begin()
|
||||||
self.trans.set_batch(True)
|
self.trans.set_batch(True)
|
||||||
|
self.linecount = linecount
|
||||||
|
|
||||||
self.db.disable_signals()
|
self.db.disable_signals()
|
||||||
|
|
||||||
p = ParserCreate()
|
self.p = ParserCreate()
|
||||||
p.StartElementHandler = self.startElement
|
self.p.StartElementHandler = self.startElement
|
||||||
p.EndElementHandler = self.endElement
|
self.p.EndElementHandler = self.endElement
|
||||||
p.CharacterDataHandler = self.characters
|
self.p.CharacterDataHandler = self.characters
|
||||||
p.ParseFile(file)
|
self.p.ParseFile(file)
|
||||||
|
|
||||||
self.db.set_researcher(self.owner)
|
self.db.set_researcher(self.owner)
|
||||||
if self.home != None:
|
if self.home != None:
|
||||||
@ -563,7 +604,7 @@ class GrampsParser:
|
|||||||
del self.func_map[key]
|
del self.func_map[key]
|
||||||
del self.func_map
|
del self.func_map
|
||||||
del self.func_list
|
del self.func_list
|
||||||
del p
|
del self.p
|
||||||
if use_trans:
|
if use_trans:
|
||||||
self.db.transaction_commit(self.trans,_("GRAMPS XML import"))
|
self.db.transaction_commit(self.trans,_("GRAMPS XML import"))
|
||||||
self.db.enable_signals()
|
self.db.enable_signals()
|
||||||
@ -624,7 +665,8 @@ class GrampsParser:
|
|||||||
self.placeobj.set_title(title)
|
self.placeobj.set_title(title)
|
||||||
self.locations = 0
|
self.locations = 0
|
||||||
if self.callback != None and self.count % self.increment == 0:
|
if self.callback != None and self.count % self.increment == 0:
|
||||||
self.callback(True)
|
if self.linecount:
|
||||||
|
self.callback(float(self.p.CurrentLineNumber)/float(self.linecount))
|
||||||
self.count += 1
|
self.count += 1
|
||||||
|
|
||||||
def start_location(self,attrs):
|
def start_location(self,attrs):
|
||||||
@ -731,7 +773,8 @@ class GrampsParser:
|
|||||||
|
|
||||||
def start_person(self,attrs):
|
def start_person(self,attrs):
|
||||||
if self.callback != None and self.count % self.increment == 0:
|
if self.callback != None and self.count % self.increment == 0:
|
||||||
self.callback(True)
|
if self.linecount:
|
||||||
|
self.callback(float(self.p.CurrentLineNumber)/float(self.linecount))
|
||||||
self.count += 1
|
self.count += 1
|
||||||
new_id = self.map_gid(attrs['id'])
|
new_id = self.map_gid(attrs['id'])
|
||||||
try:
|
try:
|
||||||
@ -801,7 +844,8 @@ class GrampsParser:
|
|||||||
|
|
||||||
def start_family(self,attrs):
|
def start_family(self,attrs):
|
||||||
if self.callback != None and self.count % self.increment == 0:
|
if self.callback != None and self.count % self.increment == 0:
|
||||||
self.callback(True)
|
if self.linecount:
|
||||||
|
self.callback(float(self.p.CurrentLineNumber)/float(self.linecount))
|
||||||
self.count = self.count + 1
|
self.count = self.count + 1
|
||||||
handle = self.map_fid(attrs["id"])
|
handle = self.map_fid(attrs["id"])
|
||||||
try:
|
try:
|
||||||
@ -928,7 +972,8 @@ class GrampsParser:
|
|||||||
|
|
||||||
def start_source(self,attrs):
|
def start_source(self,attrs):
|
||||||
if self.callback != None and self.count % self.increment == 0:
|
if self.callback != None and self.count % self.increment == 0:
|
||||||
self.callback(True)
|
if self.linecount:
|
||||||
|
self.callback(float(self.p.CurrentLineNumber)/float(self.linecount))
|
||||||
self.count += 1
|
self.count += 1
|
||||||
handle = self.map_sid(attrs["id"])
|
handle = self.map_sid(attrs["id"])
|
||||||
try:
|
try:
|
||||||
@ -984,7 +1029,7 @@ class GrampsParser:
|
|||||||
|
|
||||||
def stop_database(self,*tag):
|
def stop_database(self,*tag):
|
||||||
if self.callback:
|
if self.callback:
|
||||||
self.callback(False)
|
self.callback(1.0)
|
||||||
|
|
||||||
def stop_object(self,*tag):
|
def stop_object(self,*tag):
|
||||||
self.db.commit_media_object(self.object,self.trans,self.change)
|
self.db.commit_media_object(self.object,self.trans,self.change)
|
||||||
|
@ -720,7 +720,7 @@ class ViewManager:
|
|||||||
ScratchPad.ScratchPadWindow(self.state, self)
|
ScratchPad.ScratchPadWindow(self.state, self)
|
||||||
|
|
||||||
def pulse_progressbar(self,value):
|
def pulse_progressbar(self,value):
|
||||||
self.progress.pulse()
|
self.progress.set_fraction(value)
|
||||||
|
|
||||||
def import_data(self,obj):
|
def import_data(self,obj):
|
||||||
choose = gtk.FileChooserDialog(_('GRAMPS: Import database'),
|
choose = gtk.FileChooserDialog(_('GRAMPS: Import database'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user