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

* src/GrampsDb/_GrampsDBDir.py: fast unserialize()
	* src/Editors/_EditPerson.py: fast unserialize()
	* src/RelLib/_SourceBase.py: fast unserialize()
	* src/RelLib/_Source.py: fast unserialize()
	* src/RelLib/_MediaObject.py: fast unserialize()
	* src/RelLib/_Person.py: fast unserialize()
	* src/RelLib/_DateBase.py: fast unserialize()
	* src/RelLib/_ChildRef.py: fast unserialize()
	* src/RelLib/_Name.py: fast unserialize()
	* src/RelLib/_Family.py: fast unserialize()
	* src/RelLib/_Place.py: fast unserialize()
	* src/RelLib/_RepoRef.py: fast unserialize()
	* src/RelLib/_Note.py: fast unserialize()
	* src/RelLib/_EventRef.py: fast unserialize()
	* src/RelLib/_Repository.py: fast unserialize()
	* src/RelLib/_Event.py: fast unserialize()
	* src/Utils.py: all callgraph to profile
	


svn: r8890
This commit is contained in:
Don Allingham 2007-08-29 23:01:16 +00:00
parent 9ce50cee93
commit 5588a61f03
18 changed files with 88 additions and 16 deletions

View File

@ -1,3 +1,22 @@
2007-08-29 Don Allingham <don@gramps-project.org>
* src/GrampsDb/_GrampsDBDir.py: fast unserialize()
* src/Editors/_EditPerson.py: fast unserialize()
* src/RelLib/_SourceBase.py: fast unserialize()
* src/RelLib/_Source.py: fast unserialize()
* src/RelLib/_MediaObject.py: fast unserialize()
* src/RelLib/_Person.py: fast unserialize()
* src/RelLib/_DateBase.py: fast unserialize()
* src/RelLib/_ChildRef.py: fast unserialize()
* src/RelLib/_Name.py: fast unserialize()
* src/RelLib/_Family.py: fast unserialize()
* src/RelLib/_Place.py: fast unserialize()
* src/RelLib/_RepoRef.py: fast unserialize()
* src/RelLib/_Note.py: fast unserialize()
* src/RelLib/_EventRef.py: fast unserialize()
* src/RelLib/_Repository.py: fast unserialize()
* src/RelLib/_Event.py: fast unserialize()
* src/Utils.py: all callgraph to profile
2007-08-29 Benny Malengier <benny.malengier@gramps-project.org> 2007-08-29 Benny Malengier <benny.malengier@gramps-project.org>
* src/ReportBase/_Constants.py: quick reports constants * src/ReportBase/_Constants.py: quick reports constants
* src/PluginUtils/__init__.py : add quick reports * src/PluginUtils/__init__.py : add quick reports

View File

@ -92,6 +92,7 @@ class EditPerson(EditPrimary):
""" """
Creates an EditPerson window. Associates a person with the window. Creates an EditPerson window. Associates a person with the window.
""" """
print person, person.serialize()
EditPrimary.__init__(self, state, uistate, track, person, EditPrimary.__init__(self, state, uistate, track, person,
state.db.get_person_from_handle, callback) state.db.get_person_from_handle, callback)

View File

@ -34,6 +34,7 @@ import os
import shutil import shutil
import re import re
import time import time
import new
from gettext import gettext as _ from gettext import gettext as _
from bsddb import dbshelve, db from bsddb import dbshelve, db
@ -1094,7 +1095,7 @@ class GrampsDBDir(GrampsDbBase,UpdateCallback):
class_func = primary_tables[primary_table_name]['class_func'] class_func = primary_tables[primary_table_name]['class_func']
while data: while data:
found_handle,val = data found_handle,val = data
obj = class_func() obj = new.instance(class_func,None)
obj.unserialize(val) obj.unserialize(val)
if self.UseTXN: if self.UseTXN:
@ -1529,7 +1530,7 @@ class GrampsDBDir(GrampsDbBase,UpdateCallback):
if data_map: if data_map:
log.error("Failed to get from handle",exc_info=True) log.error("Failed to get from handle",exc_info=True)
if data: if data:
newobj = class_type() newobj = new.instance(class_type, None)
newobj.unserialize(data) newobj.unserialize(data)
return newobj return newobj
return None return None

View File

@ -26,6 +26,8 @@ Child Reference class for GRAMPS.
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -84,7 +86,9 @@ class ChildRef(SecondaryObject, PrivacyBase, SourceBase, NoteBase, RefBase):
SourceBase.unserialize(self, source_list) SourceBase.unserialize(self, source_list)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)
RefBase.unserialize(self, ref) RefBase.unserialize(self, ref)
self.frel = new.instance(ChildRefType,None)
self.frel.unserialize(frel) self.frel.unserialize(frel)
self.mrel = new.instance(ChildRefType,None)
self.mrel.unserialize(mrel) self.mrel.unserialize(mrel)
return self return self

View File

@ -26,6 +26,8 @@ DateBase class for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -72,7 +74,8 @@ class DateBase:
if data == None: if data == None:
self.date = Date() self.date = Date()
else: else:
self.date = Date().unserialize(data) self.date = new.instance(Date,None)
self.date.unserialize(data)
def get_date_object(self): def get_date_object(self):
""" """

View File

@ -39,6 +39,9 @@ from _AttributeBase import AttributeBase
from _DateBase import DateBase from _DateBase import DateBase
from _PlaceBase import PlaceBase from _PlaceBase import PlaceBase
from _EventType import EventType from _EventType import EventType
from _MarkerType import MarkerType
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -117,7 +120,9 @@ class Event(SourceBase, NoteBase, MediaBase, AttributeBase,
source_list, note_list, media_list, attribute_list, source_list, note_list, media_list, attribute_list,
self.change, marker, self.private) = data self.change, marker, self.private) = data
self.marker = new.instance(MarkerType, None)
self.marker.unserialize(marker) self.marker.unserialize(marker)
self.type = new.instance(EventType,None)
self.type.unserialize(the_type) self.type.unserialize(the_type)
DateBase.unserialize(self, date) DateBase.unserialize(self, date)
MediaBase.unserialize(self, media_list) MediaBase.unserialize(self, media_list)

View File

@ -26,6 +26,8 @@ Event Reference class for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -85,6 +87,7 @@ class EventRef(SecondaryObject, PrivacyBase, NoteBase, AttributeBase, RefBase):
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)
AttributeBase.unserialize(self, attribute_list) AttributeBase.unserialize(self, attribute_list)
RefBase.unserialize(self, ref) RefBase.unserialize(self, ref)
self.role = new.instance(EventRoleType,None)
self.role.unserialize(role) self.role.unserialize(role)
return self return self

View File

@ -32,6 +32,7 @@ __revision__ = "$Revision$"
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from warnings import warn from warnings import warn
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -47,6 +48,7 @@ from _EventRef import EventRef
from _LdsOrdBase import LdsOrdBase from _LdsOrdBase import LdsOrdBase
from _ChildRef import ChildRef from _ChildRef import ChildRef
from _FamilyRelType import FamilyRelType from _FamilyRelType import FamilyRelType
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -133,11 +135,13 @@ class Family(SourceBase, NoteBase, MediaBase, AttributeBase, LdsOrdBase,
attribute_list, lds_seal_list, source_list, note_list, attribute_list, lds_seal_list, source_list, note_list,
self.change, marker, self.private) = data self.change, marker, self.private) = data
self.marker = new.instance(MarkerType, None)
self.marker.unserialize(marker) self.marker.unserialize(marker)
self.type = new.instance(FamilyRelType, None)
self.type.unserialize(the_type) self.type.unserialize(the_type)
self.event_ref_list = [EventRef().unserialize(er) self.event_ref_list = [new.instance(EventRef,None).unserialize(er)
for er in event_ref_list] for er in event_ref_list]
self.child_ref_list = [ChildRef().unserialize(cr) self.child_ref_list = [new.instance(ChildRef,None).unserialize(cr)
for cr in child_ref_list] for cr in child_ref_list]
MediaBase.unserialize(self, media_list) MediaBase.unserialize(self, media_list)
AttributeBase.unserialize(self, attribute_list) AttributeBase.unserialize(self, attribute_list)

View File

@ -32,6 +32,7 @@ __revision__ = "$Revision$"
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import os import os
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -43,6 +44,7 @@ from _SourceBase import SourceBase
from _NoteBase import NoteBase from _NoteBase import NoteBase
from _DateBase import DateBase from _DateBase import DateBase
from _AttributeBase import AttributeBase from _AttributeBase import AttributeBase
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -117,7 +119,7 @@ class MediaObject(SourceBase,NoteBase,DateBase,AttributeBase,PrimaryObject):
attribute_list, source_list, note_list, self.change, attribute_list, source_list, note_list, self.change,
date, marker, self.private) = data date, marker, self.private) = data
self.marker.unserialize(marker) self.marker = new.instance(MarkerType, None).unserialize(marker)
AttributeBase.unserialize(self, attribute_list) AttributeBase.unserialize(self, attribute_list)
SourceBase.unserialize(self, source_list) SourceBase.unserialize(self, source_list)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)

View File

@ -125,7 +125,7 @@ class Name(SecondaryObject, PrivacyBase, SourceBase, NoteBase, DateBase):
self.first_name, self.surname, self.suffix, self.title, self.first_name, self.surname, self.suffix, self.title,
name_type, self.prefix, self.patronymic, name_type, self.prefix, self.patronymic,
self.group_as, self.sort_as, self.display_as, self.call) = data self.group_as, self.sort_as, self.display_as, self.call) = data
self.type.unserialize(name_type) self.type = NameType(name_type)
PrivacyBase.unserialize(self, privacy) PrivacyBase.unserialize(self, privacy)
SourceBase.unserialize(self, source_list) SourceBase.unserialize(self, source_list)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)

View File

@ -32,6 +32,7 @@ __revision__ = "$Revision$"
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import re import re
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -41,6 +42,7 @@ import re
from _BasicPrimaryObject import BasicPrimaryObject from _BasicPrimaryObject import BasicPrimaryObject
from _NoteType import NoteType from _NoteType import NoteType
from MarkupText import ROOT_START_TAG, LEN_ROOT_START_TAG from MarkupText import ROOT_START_TAG, LEN_ROOT_START_TAG
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -83,7 +85,9 @@ class Note(BasicPrimaryObject):
(self.handle, self.gramps_id, self.text, self.format, (self.handle, self.gramps_id, self.text, self.format,
the_type, self.change, the_marker, self.private) = data the_type, self.change, the_marker, self.private) = data
self.marker = new.instance(MarkerType, None)
self.marker.unserialize(the_marker) self.marker.unserialize(the_marker)
self.type = new.instance(NoteType, None)
self.type.unserialize(the_type) self.type.unserialize(the_type)
def get_text_data_list(self): def get_text_data_list(self):

View File

@ -26,6 +26,8 @@ Person object for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -44,6 +46,7 @@ from _EventRef import EventRef
from _PersonRef import PersonRef from _PersonRef import PersonRef
from _AttributeType import AttributeType from _AttributeType import AttributeType
from _EventRoleType import EventRoleType from _EventRoleType import EventRoleType
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -93,6 +96,7 @@ class Person(SourceBase, NoteBase, AttributeBase, MediaBase,
UrlBase.__init__(self) UrlBase.__init__(self)
LdsOrdBase.__init__(self) LdsOrdBase.__init__(self)
self.primary_name = Name() self.primary_name = Name()
self.marker = MarkerType()
self.event_ref_list = [] self.event_ref_list = []
self.family_list = [] self.family_list = []
self.parent_family_list = [] self.parent_family_list = []
@ -180,13 +184,15 @@ class Person(SourceBase, NoteBase, AttributeBase, MediaBase,
person_ref_list, # 20 person_ref_list, # 20
) = data ) = data
self.marker = new.instance(MarkerType,None)
self.marker.unserialize(marker) self.marker.unserialize(marker)
self.primary_name = new.instance(Name, None)
self.primary_name.unserialize(primary_name) self.primary_name.unserialize(primary_name)
self.alternate_names = [Name().unserialize(name) self.alternate_names = [new.instance(Name, None).unserialize(name)
for name in alternate_names] for name in alternate_names]
self.event_ref_list = [EventRef().unserialize(er) self.event_ref_list = [new.instance(EventRef, None).unserialize(er)
for er in event_ref_list] for er in event_ref_list]
self.person_ref_list = [PersonRef().unserialize(pr) self.person_ref_list = [new.instance(PersonRef, None).unserialize(pr)
for pr in person_ref_list] for pr in person_ref_list]
MediaBase.unserialize(self, media_list) MediaBase.unserialize(self, media_list)
LdsOrdBase.unserialize(self, lds_ord_list) LdsOrdBase.unserialize(self, lds_ord_list)

View File

@ -26,6 +26,8 @@ Place object for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -37,6 +39,7 @@ from _NoteBase import NoteBase
from _MediaBase import MediaBase from _MediaBase import MediaBase
from _UrlBase import UrlBase from _UrlBase import UrlBase
from _Location import Location from _Location import Location
from _MarkerType import MarkerType
_EMPTY_LOC = Location().serialize() _EMPTY_LOC = Location().serialize()
@ -123,9 +126,10 @@ class Place(SourceBase, NoteBase, MediaBase, UrlBase, PrimaryObject):
if main_loc == None: if main_loc == None:
self.main_loc = None self.main_loc = None
else: else:
self.main_loc = Location().unserialize(main_loc) self.main_loc = new.instance(Location, None).unserialize(main_loc)
self.alt_loc = [Location().unserialize(al) for al in alt_loc] self.alt_loc = [new.instance(Location, None).unserialize(al)
self.marker.unserialize(marker) for al in alt_loc]
self.marker = new.instance(MarkerType, None).unserialize(marker)
UrlBase.unserialize(self, urls) UrlBase.unserialize(self, urls)
MediaBase.unserialize(self, media_list) MediaBase.unserialize(self, media_list)
SourceBase.unserialize(self, source_list) SourceBase.unserialize(self, source_list)

View File

@ -26,6 +26,8 @@ Repository Reference class for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -74,6 +76,7 @@ class RepoRef(SecondaryObject, PrivacyBase, NoteBase, RefBase):
Converts a serialized tuple of data to an object Converts a serialized tuple of data to an object
""" """
(note_list, ref, self.call_number, media_type, privacy) = data (note_list, ref, self.call_number, media_type, privacy) = data
self.media_type = new.instance(SourceMediaType, None)
self.media_type.unserialize(media_type) self.media_type.unserialize(media_type)
PrivacyBase.unserialize(self, privacy) PrivacyBase.unserialize(self, privacy)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)

View File

@ -26,6 +26,8 @@ Repository object for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -36,6 +38,7 @@ from _NoteBase import NoteBase
from _AddressBase import AddressBase from _AddressBase import AddressBase
from _UrlBase import UrlBase from _UrlBase import UrlBase
from _RepositoryType import RepositoryType from _RepositoryType import RepositoryType
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -73,7 +76,9 @@ class Repository(NoteBase, AddressBase, UrlBase, PrimaryObject):
(self.handle, self.gramps_id, the_type, self.name, note_list, (self.handle, self.gramps_id, the_type, self.name, note_list,
address_list, urls, self.change, marker, self.private) = data address_list, urls, self.change, marker, self.private) = data
self.marker = new.instance(MarkerType, None)
self.marker.unserialize(marker) self.marker.unserialize(marker)
self.type = new.instance(RepositoryType, None)
self.type.unserialize(the_type) self.type.unserialize(the_type)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)
AddressBase.unserialize(self, address_list) AddressBase.unserialize(self, address_list)

View File

@ -26,6 +26,8 @@ Source object for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -35,6 +37,7 @@ from _PrimaryObject import PrimaryObject
from _MediaBase import MediaBase from _MediaBase import MediaBase
from _NoteBase import NoteBase from _NoteBase import NoteBase
from _RepoRef import RepoRef from _RepoRef import RepoRef
from _MarkerType import MarkerType
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -78,10 +81,11 @@ class Source(MediaBase, NoteBase, PrimaryObject):
self.abbrev, self.change, self.datamap, reporef_list, self.abbrev, self.change, self.datamap, reporef_list,
marker, self.private) = data marker, self.private) = data
self.marker.unserialize(marker) self.marker = new.instance(MarkerType, None).unserialize(marker)
NoteBase.unserialize(self, note_list) NoteBase.unserialize(self, note_list)
MediaBase.unserialize(self, media_list) MediaBase.unserialize(self, media_list)
self.reporef_list = [RepoRef().unserialize(rr) for rr in reporef_list] self.reporef_list = [new.instance(RepoRef, None).unserialize(rr)
for rr in reporef_list]
def _has_handle_reference(self, classname, handle): def _has_handle_reference(self, classname, handle):
""" """

View File

@ -26,6 +26,8 @@ SourceBase class for GRAMPS
__revision__ = "$Revision$" __revision__ = "$Revision$"
import new
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# GRAMPS modules # GRAMPS modules
@ -65,7 +67,8 @@ class SourceBase:
""" """
Converts a serialized tuple of data to an object Converts a serialized tuple of data to an object
""" """
self.source_list = [SourceRef().unserialize(item) for item in data] self.source_list = [new.instance(SourceRef, None).unserialize(item)
for item in data]
def add_source_reference(self, src_ref) : def add_source_reference(self, src_ref) :
""" """

View File

@ -1028,4 +1028,5 @@ def profile(func,*args):
stats.strip_dirs() stats.strip_dirs()
stats.sort_stats('time','calls') stats.sort_stats('time','calls')
stats.print_stats(100) stats.print_stats(100)
stats.print_callers(100)