2007-09-06 Don Allingham <don@gramps-project.org>

* src/GrampsDbUtils/_WriteGedcom.py: more pylint fixes



svn: r8937
This commit is contained in:
Don Allingham 2007-09-07 02:44:22 +00:00
parent 76bd52f0b7
commit 19e136f0f8
2 changed files with 72 additions and 29 deletions

View File

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

View File

@ -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,12 +940,8 @@ 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(),
@ -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