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