* src/GrampsBSDDB.py: associate functions return str instead

of unicode


svn: r5577
This commit is contained in:
Don Allingham 2005-12-18 01:28:35 +00:00
parent 6915016219
commit d8ba4dd42e
4 changed files with 65 additions and 16 deletions

View File

@ -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.

View File

@ -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):

View File

@ -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)

View File

@ -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'),