from_struct uses defaults from object if not given in JSON-like representation
This commit is contained in:
parent
564aaf88a7
commit
8980d7be87
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -102,11 +103,12 @@ class Address(SecondaryObject, PrivacyBase, CitationBase, NoteBase, DateBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = Address()
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
DateBase.from_struct(struct["date"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
LocationBase.from_struct(struct["location"])
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
|
LocationBase.from_struct(struct.get("location", {}))
|
||||||
)
|
)
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
|
@ -107,9 +107,10 @@ class AttributeRoot(SecondaryObject, PrivacyBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = Attribute()
|
||||||
AttributeType.from_struct(struct["type"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
struct["value"])
|
AttributeType.from_struct(struct.get("type", {})),
|
||||||
|
struct.get("value", default.value))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2006-2007 Donald N. Allingham
|
# Copyright (C) 2006-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -109,12 +110,13 @@ class ChildRef(SecondaryObject, PrivacyBase, CitationBase, NoteBase, RefBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = ChildRef()
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
RefBase.from_struct(struct["ref"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
ChildRefType.from_struct(struct["frel"]),
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
ChildRefType.from_struct(struct["mrel"]))
|
ChildRefType.from_struct(struct.get("frel", {})),
|
||||||
|
ChildRefType.from_struct(struct.get("mrel", {})))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -138,18 +138,19 @@ class Citation(MediaBase, NoteBase, SrcAttributeBase, IndirectCitationBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Citation()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
DateBase.from_struct(struct["date"]),
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["page"],
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
struct["confidence"],
|
struct.get("page", default.page),
|
||||||
struct["source_handle"].handle,
|
struct.get("confidence", default.confidence),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
Handle.from_struct(struct.get("source_handle", default.source_handle)),
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
SrcAttributeBase.from_struct(struct["srcattr_list"]),
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
struct["change"],
|
SrcAttributeBase.from_struct(struct.get("srcattr_list", [])),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
struct.get("change", default.change),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -105,7 +105,7 @@ class CitationBase(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return [handle.handle for handle in struct]
|
return [Handle.from_struct(handle) for handle in struct]
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2009 Douglas S. Blank
|
# Copyright (C) 2009-2013 Douglas S. Blank
|
||||||
# Copyright (C) 2013 Paul Franklin
|
# Copyright (C) 2013 Paul Franklin
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
@ -686,13 +686,14 @@ class Date(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
retval = (struct["calendar"],
|
default = Date()
|
||||||
struct["modifier"],
|
retval = (struct.get("calendar", default.calendar),
|
||||||
struct["quality"],
|
struct.get("modifier", default.modifier),
|
||||||
struct["dateval"],
|
struct.get("quality", default.quality),
|
||||||
struct["text"],
|
struct.get("dateval", default.dateval),
|
||||||
struct["sortval"],
|
struct.get("text", default.text),
|
||||||
struct["newyear"])
|
struct.get("sortval", default.sortval),
|
||||||
|
struct.get("newyear", default.newyear))
|
||||||
if retval == (0, 0, 0, (0, 0, 0, False), '', 0, 0):
|
if retval == (0, 0, 0, (0, 0, 0, False), '', 0, 0):
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
|
@ -160,20 +160,20 @@ class Event(CitationBase, NoteBase, MediaBase, AttributeBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
from .grampstype import GrampsType
|
default = Event()
|
||||||
return (struct["handle"].handle,
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["gramps_id"],
|
struct.get("gramps_id", default.gramps_id),
|
||||||
EventType.from_struct(struct["type"]),
|
EventType.from_struct(struct.get("type", {})),
|
||||||
DateBase.from_struct(struct["date"]),
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
struct["description"],
|
struct.get("description", default.description),
|
||||||
struct["place"].handle,
|
Handle.from_struct(struct.get("place", default.place)),
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
struct["change"],
|
struct.get("change", default.change),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
struct["private"])
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -114,12 +115,13 @@ class EventRef(PrivacyBase, NoteBase, AttributeBase, RefBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
|
default = EventRef()
|
||||||
return (
|
return (
|
||||||
PrivacyBase.from_struct(struct["private"]),
|
PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
RefBase.from_struct(struct["ref"]),
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
EventRoleType.from_struct(struct["role"])
|
EventRoleType.from_struct(struct.get("role", {}))
|
||||||
)
|
)
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
|
@ -171,21 +171,22 @@ class Family(CitationBase, NoteBase, MediaBase, AttributeBase, LdsOrdBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Family()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["father_handle"].handle,
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["mother_handle"].handle,
|
Handle.from_struct(struct.get("father_handle", default.father_handle)),
|
||||||
[ChildRef.from_struct(cr) for cr in struct["child_ref_list"]],
|
Handle.from_struct(struct.get("mother_handle", default.mother_handle)),
|
||||||
FamilyRelType.from_struct(struct["type"]),
|
[ChildRef.from_struct(cr) for cr in struct.get("child_ref_list", default.child_ref_list)],
|
||||||
[EventRef.from_struct(er) for er in struct["event_ref_list"]],
|
FamilyRelType.from_struct(struct.get("type", {})),
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
[EventRef.from_struct(er) for er in struct.get("event_ref_list", default.event_ref_list)],
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
LdsOrdBase.from_struct(struct["lds_ord_list"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
LdsOrdBase.from_struct(struct.get("lds_ord_list", default.lds_ord_list)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
struct["change"],
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
struct.get("change", default.change),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -241,10 +241,11 @@ class GrampsType(GrampsTypeC):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
if struct["value"] == cls._CUSTOM:
|
default = cls()
|
||||||
return (struct["value"], struct["string"])
|
if struct.get("value", cls._CUSTOM) == cls._CUSTOM:
|
||||||
|
return (struct.get("value", default.value), struct.get("string", ""))
|
||||||
else:
|
else:
|
||||||
return (struct["value"], '')
|
return (struct.get("value", default.value), '')
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""Convert a serialized tuple of data to an object."""
|
"""Convert a serialized tuple of data to an object."""
|
||||||
|
@ -39,3 +39,9 @@ class Handle:
|
|||||||
else:
|
else:
|
||||||
return "None"
|
return "None"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_struct(cls, struct):
|
||||||
|
if isinstance(struct, Handle):
|
||||||
|
return struct.handle
|
||||||
|
else:
|
||||||
|
return struct
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -182,15 +183,16 @@ class LdsOrd(SecondaryObject, CitationBase, NoteBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (CitationBase.from_struct(struct["citation_list"]),
|
default = LdsOrd()
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
return (CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
DateBase.from_struct(struct["date"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
struct["type"],
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
struct["place"],
|
struct.get("type", {}),
|
||||||
struct["famc"],
|
struct.get("place", default.place),
|
||||||
struct["temple"],
|
struct.get("famc", default.famc),
|
||||||
struct["status"],
|
struct.get("temple", default.temple),
|
||||||
struct["private"])
|
struct.get("status", default.status),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -101,15 +102,16 @@ class Location(SecondaryObject, LocationBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return ((struct["street"],
|
default = Location()
|
||||||
struct["locality"],
|
return ((struct.get("street", default.street),
|
||||||
struct["city"],
|
struct.get("locality", default.locality),
|
||||||
struct["country"],
|
struct.get("city", default.city),
|
||||||
struct["state"],
|
struct.get("country", default.country),
|
||||||
struct["country"],
|
struct.get("state", default.state),
|
||||||
struct["postal"],
|
struct.get("country", default.country),
|
||||||
struct["phone"]),
|
struct.get("postal", default.postal),
|
||||||
struct["parish"])
|
struct.get("phone", default.phone)),
|
||||||
|
struct.get("parish", default.parish))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -104,14 +104,15 @@ class LocationBase(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["street"],
|
default = LocationBase()
|
||||||
struct["locality"],
|
return (struct.get("street", default.street),
|
||||||
struct["city"],
|
struct.get("locality", default.locality),
|
||||||
struct["county"],
|
struct.get("city", default.city),
|
||||||
struct["state"],
|
struct.get("county", default.county),
|
||||||
struct["country"],
|
struct.get("state", default.state),
|
||||||
struct["postal"],
|
struct.get("country", default.country),
|
||||||
struct["phone"])
|
struct.get("postal", default.postal),
|
||||||
|
struct.get("phone", default.phone))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -164,19 +164,20 @@ class MediaObject(CitationBase, NoteBase, DateBase, AttributeBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = MediaObject()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["path"],
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["mime"],
|
struct.get("path", default.path),
|
||||||
struct["desc"],
|
struct.get("mime", default.mime),
|
||||||
struct["checksum"],
|
struct.get("desc", default.desc),
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
struct.get("checksum", default.checksum),
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
struct["change"],
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
DateBase.from_struct(struct["date"]),
|
struct.get("change", default.change),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -104,12 +105,13 @@ class MediaRef(SecondaryObject, PrivacyBase, CitationBase, NoteBase, RefBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = MediaRef()
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
RefBase.from_struct(struct["ref"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
struct["rect"])
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
|
struct.get("rect", default.rect))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -169,21 +170,22 @@ class Name(SecondaryObject, PrivacyBase, SurnameBase, CitationBase, NoteBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = Name()
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
DateBase.from_struct(struct["date"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
struct["first_name"],
|
DateBase.from_struct(struct.get("date", {})),
|
||||||
SurnameBase.from_struct(struct["surname_list"]),
|
struct.get("first_name", default.first_name),
|
||||||
struct["suffix"],
|
SurnameBase.from_struct(struct.get("surname_list", default.surname_list)),
|
||||||
struct["title"],
|
struct.get("suffix", default.suffix),
|
||||||
NameType.from_struct(struct["type"]),
|
struct.get("title", default.title),
|
||||||
struct["group_as"],
|
NameType.from_struct(struct.get("type", {})),
|
||||||
struct["sort_as"],
|
struct.get("group_as", default.group_as),
|
||||||
struct["display_as"],
|
struct.get("sort_as", default.sort_as),
|
||||||
struct["call"],
|
struct.get("display_as", default.display_as),
|
||||||
struct["nick"],
|
struct.get("call", default.call),
|
||||||
struct["famnick"])
|
struct.get("nick", default.nick),
|
||||||
|
struct.get("famnick", default.famnick))
|
||||||
|
|
||||||
def is_empty(self):
|
def is_empty(self):
|
||||||
"""
|
"""
|
||||||
|
@ -135,14 +135,15 @@ class Note(BasicPrimaryObject):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Note()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
StyledText.from_struct(struct["text"]),
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["format"],
|
StyledText.from_struct(struct.get("text", {})),
|
||||||
NoteType.from_struct(struct["type"]),
|
struct.get("format", default.format),
|
||||||
struct["change"],
|
NoteType.from_struct(struct.get("type", {})),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
struct.get("change", default.change),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""Convert a serialized tuple of data to an object.
|
"""Convert a serialized tuple of data to an object.
|
||||||
|
@ -84,7 +84,7 @@ class NoteBase(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return [n.handle for n in struct]
|
return [Handle.from_struct(n) for n in struct]
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -218,28 +218,29 @@ class Person(CitationBase, NoteBase, AttributeBase, MediaBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
|
default = Person()
|
||||||
return (
|
return (
|
||||||
struct["handle"].handle,
|
Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["gramps_id"],
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["gender"],
|
struct.get("gender", default.gender),
|
||||||
Name.from_struct(struct["primary_name"]),
|
Name.from_struct(struct.get("primary_name", {})),
|
||||||
[Name.from_struct(name) for name in struct["alternate_names"]],
|
[Name.from_struct(name) for name in struct.get("alternate_names", default.alternate_names)],
|
||||||
struct["death_ref_index"],
|
struct.get("death_ref_index", default.death_ref_index),
|
||||||
struct["birth_ref_index"],
|
struct.get("birth_ref_index", default.birth_ref_index),
|
||||||
[EventRef.from_struct(er) for er in struct["event_ref_list"]],
|
[EventRef.from_struct(er) for er in struct.get("event_ref_list", default.event_ref_list)],
|
||||||
[handle.handle for handle in struct["family_list"]],
|
[Handle.from_struct(handle) for handle in struct.get("family_list", default.family_list)],
|
||||||
[handle.handle for handle in struct["parent_family_list"]],
|
[Handle.from_struct(handle) for handle in struct.get("parent_family_list", default.parent_family_list)],
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
AddressBase.from_struct(struct["address_list"]),
|
AddressBase.from_struct(struct.get("address_list", default.address_list)),
|
||||||
AttributeBase.from_struct(struct["attribute_list"]),
|
AttributeBase.from_struct(struct.get("attribute_list", default.attribute_list)),
|
||||||
UrlBase.from_struct(struct["urls"]),
|
UrlBase.from_struct(struct.get("urls", default.urls)),
|
||||||
LdsOrdBase.from_struct(struct["lds_ord_list"]),
|
LdsOrdBase.from_struct(struct.get("lds_ord_list", default.lds_ord_list)),
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
struct["change"],
|
struct.get("change", default.change),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
struct["private"],
|
struct.get("private", default.private),
|
||||||
[PersonRef.from_struct(p) for p in struct["person_ref_list"]]
|
[PersonRef.from_struct(p) for p in struct.get("person_ref_list", default.person_ref_list)]
|
||||||
)
|
)
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2006-2007 Donald N. Allingham
|
# Copyright (C) 2006-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -105,11 +106,12 @@ class PersonRef(SecondaryObject, PrivacyBase, CitationBase, NoteBase, RefBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (PrivacyBase.from_struct(struct["private"]),
|
default = PersonRef()
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
return (PrivacyBase.from_struct(struct.get("private", default.private)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
RefBase.from_struct(struct["ref"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
struct["rel"])
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
|
struct.get("rel", default.rel))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -159,23 +160,24 @@ class Place(CitationBase, NoteBase, MediaBase, UrlBase, PrimaryObject):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Place()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["title"],
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["long"],
|
struct.get("title", default.title),
|
||||||
struct["lat"],
|
struct.get("long", default.long),
|
||||||
[PlaceRef.from_struct(pr) for pr in struct["placeref_list"]],
|
struct.get("lat", default.lat),
|
||||||
struct["name"],
|
[PlaceRef.from_struct(pr) for pr in struct.get("placeref_list", default.placeref_list)],
|
||||||
PlaceType.from_struct(struct["place_type"]),
|
struct.get("name", default.name),
|
||||||
struct["code"],
|
PlaceType.from_struct(struct.get("place_type", {})),
|
||||||
[Location.from_struct(al) for al in struct["alt_loc"]],
|
struct.get("code", default.code),
|
||||||
UrlBase.from_struct(struct["urls"]),
|
[Location.from_struct(al) for al in struct.get("alt_loc", default.alt_loc)],
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
UrlBase.from_struct(struct.get("urls", default.urls)),
|
||||||
CitationBase.from_struct(struct["citation_list"]),
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
CitationBase.from_struct(struct.get("citation_list", default.citation_list)),
|
||||||
struct["change"],
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
struct.get("change", default.change),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -96,9 +96,10 @@ class PlaceRef(RefBase, DateBase, SecondaryObject):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
|
default = PlaceRef()
|
||||||
return (
|
return (
|
||||||
RefBase.from_struct(struct["ref"]),
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
DateBase.from_struct(struct["date"])
|
DateBase.from_struct(struct.get("date", {}))
|
||||||
)
|
)
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
|
@ -110,16 +110,17 @@ class Repository(NoteBase, AddressBase, UrlBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Repository()
|
||||||
struct["gramps_id"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
RepositoryType.from_struct(struct["type"]),
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["name"],
|
RepositoryType.from_struct(struct.get("type", {})),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
struct.get("name", default.name),
|
||||||
AddressBase.from_struct(struct["address_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
UrlBase.from_struct(struct["urls"]),
|
AddressBase.from_struct(struct.get("address_list", default.address_list)),
|
||||||
struct["change"],
|
UrlBase.from_struct(struct.get("urls", default.urls)),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
struct.get("change", default.change),
|
||||||
struct["private"])
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -104,12 +105,13 @@ class RepoRef(SecondaryObject, PrivacyBase, NoteBase, RefBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
|
default = RepoRef()
|
||||||
return (
|
return (
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
RefBase.from_struct(struct["ref"]),
|
RefBase.from_struct(struct.get("ref", default.ref)),
|
||||||
struct["call_number"],
|
struct.get("call_number", default.call_number),
|
||||||
SourceMediaType.from_struct(struct["media_type"]),
|
SourceMediaType.from_struct(struct.get("media_type", {})),
|
||||||
struct["private"],
|
struct.get("private", default.private),
|
||||||
)
|
)
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -100,17 +101,18 @@ class Researcher(LocationBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["street"],
|
default = Researcher()
|
||||||
struct["locality"],
|
return (struct.get("street", default.street),
|
||||||
struct["city"],
|
struct.get("locality", default.locality),
|
||||||
struct["country"],
|
struct.get("city", default.city),
|
||||||
struct["state"],
|
struct.get("country", default.country),
|
||||||
struct["country"],
|
struct.get("state", default.state),
|
||||||
struct["postal"],
|
struct.get("country", default.country),
|
||||||
struct["phone"],
|
struct.get("postal", default.postal),
|
||||||
struct["name"],
|
struct.get("phone", default.phone),
|
||||||
struct["address"],
|
struct.get("name", default.name),
|
||||||
struct["email"])
|
struct.get("address", default.address),
|
||||||
|
struct.get("email", default.email))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
# Copyright (C) 2000-2007 Donald N. Allingham
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
||||||
# Copyright (C) 2010 Michiel D. Nauta
|
# Copyright (C) 2010 Michiel D. Nauta
|
||||||
# Copyright (C) 2011 Tim G L Lyons
|
# Copyright (C) 2011 Tim G L Lyons
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -122,19 +123,21 @@ class Source(MediaBase, NoteBase, SrcAttributeBase, IndirectCitationBase,
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
from .srcattribute import SrcAttribute
|
||||||
struct["gramps_id"],
|
default = Source()
|
||||||
struct["title"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["author"],
|
struct.get("gramps_id", default.gramps_id),
|
||||||
struct["pubinfo"],
|
struct.get("title", default.title),
|
||||||
NoteBase.from_struct(struct["note_list"]),
|
struct.get("author", default.author),
|
||||||
MediaBase.from_struct(struct["media_list"]),
|
struct.get("pubinfo", default.pubinfo),
|
||||||
struct["abbrev"],
|
NoteBase.from_struct(struct.get("note_list", default.note_list)),
|
||||||
struct["change"],
|
MediaBase.from_struct(struct.get("media_list", default.media_list)),
|
||||||
SrcAttributeBase.from_struct(struct["srcattr_list"]),
|
struct.get("abbrev", default.abbrev),
|
||||||
[RepoRef.from_struct(rr) for rr in struct["reporef_list"]],
|
struct.get("change", default.change),
|
||||||
TagBase.from_struct(struct["tag_list"]),
|
SrcAttributeBase.from_struct(struct.get("srcattr_list", {})),
|
||||||
struct["private"])
|
[RepoRef.from_struct(rr) for rr in struct.get("reporef_list", default.reporef_list)],
|
||||||
|
TagBase.from_struct(struct.get("tag_list", default.tag_list)),
|
||||||
|
struct.get("private", default.private))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008 Zsolt Foldvari
|
# Copyright (C) 2008 Zsolt Foldvari
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -322,7 +323,8 @@ class StyledText(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["string"], [StyledTextTag.from_struct(t) for t in struct["tags"]])
|
default = StyledText()
|
||||||
|
return (struct.get("string", default.string), [StyledTextTag.from_struct(t) for t in struct.get("tags", default.tags)])
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""Convert a serialized tuple of data to an object.
|
"""Convert a serialized tuple of data to an object.
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008 Zsolt Foldvari
|
# Copyright (C) 2008 Zsolt Foldvari
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -104,9 +105,10 @@ class StyledTextTag(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (StyledTextTagType.from_struct(struct["name"]),
|
default = StyledTextTag()
|
||||||
struct["value"],
|
return (StyledTextTagType.from_struct(struct.get("name", {})),
|
||||||
struct["ranges"])
|
struct.get("value", default.value),
|
||||||
|
struct.get("ranges", default.ranges))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""Convert a serialized tuple of data to an object.
|
"""Convert a serialized tuple of data to an object.
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2010 Benny Malengier
|
# Copyright (C) 2010 Benny Malengier
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -104,11 +105,12 @@ class Surname(SecondaryObject):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["surname"],
|
default = Surname()
|
||||||
struct["prefix"],
|
return (struct.get("surname", default.surname),
|
||||||
struct["primary"],
|
struct.get("prefix", default.prefix),
|
||||||
NameOriginType.from_struct(struct["origintype"]),
|
struct.get("primary", default.primary),
|
||||||
struct["connector"])
|
NameOriginType.from_struct(struct.get("origintype", {})),
|
||||||
|
struct.get("connector", default.connector))
|
||||||
|
|
||||||
def is_empty(self):
|
def is_empty(self):
|
||||||
"""
|
"""
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2010 Nick Hall
|
# Copyright (C) 2010 Nick Hall
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2010 Nick Hall
|
# Copyright (C) 2010 Nick Hall
|
||||||
|
# Copyright (C) 2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -233,11 +234,12 @@ class Tag(TableObject):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["handle"].handle,
|
default = Tag()
|
||||||
struct["name"],
|
return (Handle.from_struct(struct.get("handle", default.handle)),
|
||||||
struct["color"],
|
struct.get("name", default.name),
|
||||||
struct["priority"],
|
struct.get("color", default.color),
|
||||||
struct["change"])
|
struct.get("priority", default.priority),
|
||||||
|
struct.get("change", default.change))
|
||||||
|
|
||||||
priority = property(get_priority, set_priority, None,
|
priority = property(get_priority, set_priority, None,
|
||||||
'Returns or sets priority of the tag')
|
'Returns or sets priority of the tag')
|
||||||
|
@ -86,7 +86,7 @@ class TagBase(object):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return [t.handle for t in struct]
|
return [Handle.from_struct(t) for t in struct]
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
"""
|
"""
|
||||||
|
@ -33,6 +33,10 @@ class BaseCheck:
|
|||||||
serialized = self.cls.from_struct(struct)
|
serialized = self.cls.from_struct(struct)
|
||||||
self.assertEqual(self.object.serialize(), serialized)
|
self.assertEqual(self.object.serialize(), serialized)
|
||||||
|
|
||||||
|
def test_from_empty_struct(self):
|
||||||
|
serialized = self.cls.from_struct({})
|
||||||
|
self.assertEqual(self.object.serialize(), serialized)
|
||||||
|
|
||||||
class PersonCheck(unittest.TestCase, BaseCheck):
|
class PersonCheck(unittest.TestCase, BaseCheck):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.cls = Person
|
self.cls = Person
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||||
# Copyright (C) 2009 Douglas S. Blank <doug.blank@gmail.com>
|
# Copyright (C) 2009-2013 Doug Blank <doug.blank@gmail.com>
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -105,10 +105,11 @@ class Url(SecondaryObject, PrivacyBase):
|
|||||||
|
|
||||||
:returns: Returns a serialized object
|
:returns: Returns a serialized object
|
||||||
"""
|
"""
|
||||||
return (struct["private"],
|
default = Url()
|
||||||
struct["path"],
|
return (struct.get("private", default.private),
|
||||||
struct["desc"],
|
struct.get("path", default.path),
|
||||||
UrlType.from_struct(struct["type"]))
|
struct.get("desc", default.desc),
|
||||||
|
UrlType.from_struct(struct.get("type", {})))
|
||||||
|
|
||||||
def unserialize(self, data):
|
def unserialize(self, data):
|
||||||
(self.private, self.path, self.desc, type_value) = data
|
(self.private, self.path, self.desc, type_value) = data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user