2007-09-06 Don Allingham <don@gramps-project.org>
* src/GrampsDbUtils/_WriteGedcom.py: more pylint fixes svn: r8937
This commit is contained in:
parent
76bd52f0b7
commit
19e136f0f8
@ -1,3 +1,6 @@
|
|||||||
|
2007-09-06 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/GrampsDbUtils/_WriteGedcom.py: more pylint fixes
|
||||||
|
|
||||||
2007-09-07 Zsolt Foldvari <zfoldvar@users.sourceforge.net>
|
2007-09-07 Zsolt Foldvari <zfoldvar@users.sourceforge.net>
|
||||||
* src/docgen/GtkPrint.py: Getting close to something useful.
|
* src/docgen/GtkPrint.py: Getting close to something useful.
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import string
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -151,6 +150,11 @@ def sort_by_gramps_id(first, second):
|
|||||||
"""
|
"""
|
||||||
return cmp(first.gramps_id, second.gramps_id)
|
return cmp(first.gramps_id, second.gramps_id)
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# sort_handles_by_id
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
def sort_handles_by_id(handle_list, handle_to_object):
|
def sort_handles_by_id(handle_list, handle_to_object):
|
||||||
"""
|
"""
|
||||||
Sorts a list of handles by the GRAMPS ID. The function that returns the
|
Sorts a list of handles by the GRAMPS ID. The function that returns the
|
||||||
@ -186,21 +190,7 @@ def make_date(subdate, calendar, mode):
|
|||||||
bce = ""
|
bce = ""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if day == 0:
|
retval = __build_date_string(day, mon, year, bce, mmap)
|
||||||
if mon == 0:
|
|
||||||
retval = '%d%s' % (year, bce)
|
|
||||||
elif year == 0:
|
|
||||||
retval = '(%s)' % mmap[mon]
|
|
||||||
else:
|
|
||||||
retval = "%s %d%s" % (mmap[mon], year, bce)
|
|
||||||
elif mon == 0:
|
|
||||||
retval = '%d%s' % (year, bce)
|
|
||||||
else:
|
|
||||||
month = mmap[mon]
|
|
||||||
if year == 0:
|
|
||||||
retval = "(%d %s)" % (day, month)
|
|
||||||
else:
|
|
||||||
retval = "%d %s %d%s" % (day, month, year, bce)
|
|
||||||
except IndexError:
|
except IndexError:
|
||||||
print "Month index error - %d" % mon
|
print "Month index error - %d" % mon
|
||||||
retval = "%d%s" % (year, bce)
|
retval = "%d%s" % (year, bce)
|
||||||
@ -213,6 +203,31 @@ def make_date(subdate, calendar, mode):
|
|||||||
|
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# __build_date_string
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
def __build_date_string(day, mon, year, bce, mmap):
|
||||||
|
"""
|
||||||
|
Builds a date string from the supplied information
|
||||||
|
"""
|
||||||
|
if day == 0:
|
||||||
|
if mon == 0:
|
||||||
|
retval = '%d%s' % (year, bce)
|
||||||
|
elif year == 0:
|
||||||
|
retval = '(%s)' % mmap[mon]
|
||||||
|
else:
|
||||||
|
retval = "%s %d%s" % (mmap[mon], year, bce)
|
||||||
|
elif mon == 0:
|
||||||
|
retval = '%d%s' % (year, bce)
|
||||||
|
elif year == 0:
|
||||||
|
retval = "(%d %s)" % (day, mmap[mon])
|
||||||
|
else:
|
||||||
|
retval = "%d %s %d%s" % (day, mmap[mon], year, bce)
|
||||||
|
return retval
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# breakup
|
# breakup
|
||||||
@ -227,7 +242,7 @@ def breakup(txt, limit):
|
|||||||
data = []
|
data = []
|
||||||
while limit < len(txt)+1:
|
while limit < len(txt)+1:
|
||||||
idx = limit-1
|
idx = limit-1
|
||||||
while txt[idx-1] in string.whitespace or txt[idx] in string.whitespace :
|
while txt[idx-1].isspace() or txt[idx].isspace() :
|
||||||
idx -= 1
|
idx -= 1
|
||||||
data.append(txt[:idx])
|
data.append(txt[:idx])
|
||||||
txt = txt[idx:]
|
txt = txt[idx:]
|
||||||
@ -620,11 +635,19 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
descr = event.get_description()
|
descr = event.get_description()
|
||||||
if descr:
|
if descr:
|
||||||
self.__writeln(2, 'NOTE', "Description: " + descr)
|
self.__writeln(2, 'NOTE', "Description: " + descr)
|
||||||
self.dump_event_stats(event, event_ref)
|
self.__dump_event_stats(event, event_ref)
|
||||||
|
|
||||||
self.__adoption_records(person)
|
self.__adoption_records(person)
|
||||||
|
|
||||||
def __adoption_records(self, person):
|
def __adoption_records(self, person):
|
||||||
|
"""
|
||||||
|
Writes Adoption events for each child that has been adopted.
|
||||||
|
|
||||||
|
n ADOP
|
||||||
|
+1 <<INDIVIDUAL_EVENT_DETAIL>>
|
||||||
|
+1 FAMC @<XREF:FAM>@
|
||||||
|
+2 ADOP <ADOPTED_BY_WHICH_PARENT>
|
||||||
|
"""
|
||||||
|
|
||||||
adoptions = []
|
adoptions = []
|
||||||
|
|
||||||
@ -844,7 +867,10 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
self.__writeln(1, token, '@%s@' % person.get_gramps_id())
|
self.__writeln(1, token, '@%s@' % person.get_gramps_id())
|
||||||
|
|
||||||
def __family_events(self, family):
|
def __family_events(self, family):
|
||||||
|
"""
|
||||||
|
Output the events associated with the family. Because all we have are event
|
||||||
|
references, we have to extract the real event to discover the event type.
|
||||||
|
"""
|
||||||
for event_ref in [ ref for ref in family.get_event_ref_list()]:
|
for event_ref in [ ref for ref in family.get_event_ref_list()]:
|
||||||
event = self.dbase.get_event_from_handle(event_ref.ref)
|
event = self.dbase.get_event_from_handle(event_ref.ref)
|
||||||
etype = int(event.get_type())
|
etype = int(event.get_type())
|
||||||
@ -874,9 +900,14 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
if descr:
|
if descr:
|
||||||
self.__writeln(2, 'NOTE', "Description: " + descr)
|
self.__writeln(2, 'NOTE', "Description: " + descr)
|
||||||
|
|
||||||
self.dump_event_stats(event, event_ref)
|
self.__dump_event_stats(event, event_ref)
|
||||||
|
|
||||||
def __family_event_attrs(self, attr_list, level):
|
def __family_event_attrs(self, attr_list, level):
|
||||||
|
"""
|
||||||
|
Writes the attributes assocated with the family event. The only ones we
|
||||||
|
really care about are FATHER_AGE and MOTHER_AGE which we translate
|
||||||
|
to WIFE/HUSB AGE attributes.
|
||||||
|
"""
|
||||||
for attr in attr_list:
|
for attr in attr_list:
|
||||||
if attr.get_type() == RelLib.AttributeType.FATHER_AGE:
|
if attr.get_type() == RelLib.AttributeType.FATHER_AGE:
|
||||||
self.__writeln(level, 'HUSB')
|
self.__writeln(level, 'HUSB')
|
||||||
@ -886,6 +917,14 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
self.__writeln(level+1, 'AGE', attr.get_value())
|
self.__writeln(level+1, 'AGE', attr.get_value())
|
||||||
|
|
||||||
def __family_attributes(self, attr_list, level):
|
def __family_attributes(self, attr_list, level):
|
||||||
|
"""
|
||||||
|
Writes out the attributes associated with a family to the GEDCOM file.
|
||||||
|
Since we have already looked at nicknames when we generated the names,
|
||||||
|
we filter them out here.
|
||||||
|
|
||||||
|
We use the GEDCOM 5.5.1 FACT command to write out attributes not
|
||||||
|
built in to GEDCOM.
|
||||||
|
"""
|
||||||
|
|
||||||
for attr in attr_list:
|
for attr in attr_list:
|
||||||
|
|
||||||
@ -901,16 +940,12 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
self.__writeln(1, name, value)
|
self.__writeln(1, name, value)
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
the_name = str(attr.get_type())
|
self.__writeln(1, 'FACT', value)
|
||||||
self.__writeln(level, 'EVEN')
|
self.__writeln(2, 'TYPE', str(attr.get_type()))
|
||||||
if value:
|
|
||||||
self.__writeln(level+1, 'TYPE', '%s %s' % (the_name, value))
|
|
||||||
else:
|
|
||||||
self.__writeln(level+1, 'TYPE', the_name)
|
|
||||||
|
|
||||||
self.__note_references(attr.get_note_list(), level+1)
|
self.__note_references(attr.get_note_list(), level+1)
|
||||||
self.__source_references(attr.get_source_references(),
|
self.__source_references(attr.get_source_references(),
|
||||||
level+1)
|
level+1)
|
||||||
|
|
||||||
def __sources(self):
|
def __sources(self):
|
||||||
"""
|
"""
|
||||||
@ -1044,7 +1079,7 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
self.__writeln(1, key, 'Y')
|
self.__writeln(1, key, 'Y')
|
||||||
if event.get_description().strip() != "":
|
if event.get_description().strip() != "":
|
||||||
self.__writeln(2, 'TYPE', event.get_description())
|
self.__writeln(2, 'TYPE', event.get_description())
|
||||||
self.dump_event_stats(event, event_ref)
|
self.__dump_event_stats(event, event_ref)
|
||||||
|
|
||||||
def __change(self, timeval, level):
|
def __change(self, timeval, level):
|
||||||
"""
|
"""
|
||||||
@ -1061,7 +1096,12 @@ class GedcomWriter(BasicUtils.UpdateCallback):
|
|||||||
self.__writeln(level+2, 'TIME', '%02d:%02d:%02d' % (
|
self.__writeln(level+2, 'TIME', '%02d:%02d:%02d' % (
|
||||||
time_val[3], time_val[4], time_val[5]))
|
time_val[3], time_val[4], time_val[5]))
|
||||||
|
|
||||||
def dump_event_stats(self, event, event_ref):
|
def __dump_event_stats(self, event, event_ref):
|
||||||
|
"""
|
||||||
|
Writes the event details for the event, using the event and event
|
||||||
|
reference information. GEDCOM does not make a distinction between the
|
||||||
|
two.
|
||||||
|
"""
|
||||||
dateobj = event.get_date_object()
|
dateobj = event.get_date_object()
|
||||||
self.__date(2, dateobj)
|
self.__date(2, dateobj)
|
||||||
place = None
|
place = None
|
||||||
|
Loading…
Reference in New Issue
Block a user