* src/ReadGedcom.py: create GedcomDateParser class to handle

English requirements for GEDCOM


svn: r3838
This commit is contained in:
Don Allingham 2004-12-26 18:23:50 +00:00
parent 7b80dfb4d2
commit 5f062fccc9
8 changed files with 33 additions and 7 deletions

View File

@ -1,4 +1,7 @@
2004-12-26 Don Allingham <dallingham@users.sourceforge.net> 2004-12-26 Don Allingham <dallingham@users.sourceforge.net>
* src/Report.py: delay importing of GenericFilter
* src/ReadGedcom.py: create GedcomDateParser class to handle
English requirements for GEDCOM
* src/DateHandler.py: provide date handler registration function * src/DateHandler.py: provide date handler registration function
* src/RelLib.py: more documentation * src/RelLib.py: more documentation
* src/dates/Date_es.py: use new registration function * src/dates/Date_es.py: use new registration function

View File

@ -85,6 +85,8 @@ def create_parser():
try: try:
return _lang_to_parser[_lang]() return _lang_to_parser[_lang]()
except: except:
import traceback
traceback.print_stack()
print "Date parser for",_lang,"not available" print "Date parser for",_lang,"not available"
return DateParser.DateParser() return DateParser.DateParser()
@ -145,6 +147,6 @@ def register_datehandler(locales,parse_class,display_class):
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Plugins import load_plugins from Plugins import load_plugins
from const import datesDir from const import datesDir
print "loading",datesDir
load_plugins(datesDir) load_plugins(datesDir)
print _lang_to_display[_lang].formats

View File

@ -53,7 +53,6 @@ from TransTable import TransTable
from gettext import gettext as _ from gettext import gettext as _
from Utils import for_each_ancestor from Utils import for_each_ancestor
_date_parser = DateHandler.create_parser() _date_parser = DateHandler.create_parser()
#------------------------------------------------------------------------- #-------------------------------------------------------------------------

View File

@ -219,6 +219,14 @@ class DateStruct:
self.date = "" self.date = ""
self.time = "" self.time = ""
class GedcomDateParser(DateParser.DateParser):
month_to_int = {
'jan' : 1, 'feb' : 2, 'mar' : 3, 'apr' : 4,
'may' : 5, 'jun' : 6, 'jul' : 7, 'aug' : 8,
'sep' : 9, 'oct' : 10, 'nov' : 11, 'dec' : 12,
}
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# #
@ -230,7 +238,7 @@ class GedcomParser:
BadFile = "Not a GEDCOM file" BadFile = "Not a GEDCOM file"
def __init__(self, dbase, filename, window, codeset): def __init__(self, dbase, filename, window, codeset):
self.dp = DateParser.DateParser() self.dp = GedcomDateParser()
self.db = dbase self.db = dbase
self.person = None self.person = None
self.media_map = {} self.media_map = {}
@ -1924,6 +1932,17 @@ class GedcomParser:
self.db.pmap_index = new_pmax self.db.pmap_index = new_pmax
def invert_year(self,subdate):
return (subdate[0],subdate[1],-subdate[2],subdate[3])
def parse(self,text):
"""
Parses the text, returning a Date object.
"""
new_date = Date.Date()
self.set_date(new_date,text)
return new_date
def extract_temple(matches): def extract_temple(matches):
try: try:
if const.lds_temple_to_abrev.has_key(matches[2]): if const.lds_temple_to_abrev.has_key(matches[2]):

View File

@ -51,7 +51,6 @@ import gnome.ui
import const import const
import Utils import Utils
import Plugins import Plugins
import GenericFilter
import BaseDoc import BaseDoc
import StyleEditor import StyleEditor
import GrampsGconfKeys import GrampsGconfKeys
@ -516,6 +515,8 @@ class BareReportDialog:
generations fields and the filter combo box are used in most generations fields and the filter combo box are used in most
(but not all) dialog boxes.""" (but not all) dialog boxes."""
import GenericFilter
(em_label, extra_map, preset, em_tip) = self.get_report_extra_menu_info() (em_label, extra_map, preset, em_tip) = self.get_report_extra_menu_info()
(et_label, string, et_tip) = self.get_report_extra_textbox_info() (et_label, string, et_tip) = self.get_report_extra_textbox_info()
@ -1499,6 +1500,8 @@ class CommandLineReport:
self.options_help[key] = self.option_class.options_help[key] self.options_help[key] = self.option_class.options_help[key]
def parse_option_str(self): def parse_option_str(self):
import GenericFilter
for opt in self.options_str_dict.keys(): for opt in self.options_str_dict.keys():
if opt in self.options_dict.keys(): if opt in self.options_dict.keys():
converter = Utils.get_type_converter(self.options_dict[opt]) converter = Utils.get_type_converter(self.options_dict[opt])

View File

@ -151,6 +151,6 @@ class DateDisplayES(DateDisplay):
# Register classes # Register classes
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from DateHandler import add_format from DateHandler import register_datehandler
register_datehandler(('es_ES','spanish'),DateParserES, DateDisplayES) register_datehandler(('es_ES','spanish'),DateParserES, DateDisplayES)

View File

@ -145,5 +145,5 @@ class DateDisplayFR(DateDisplay):
# Register classes # Register classes
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from DateHandler import add_format from DateHandler import register_datehandler
register_datehandler(('fr_FR','french'),DateParserFR, DateDisplayFR) register_datehandler(('fr_FR','french'),DateParserFR, DateDisplayFR)

View File

@ -160,6 +160,6 @@ class DateDisplayRU(DateDisplay):
# Register classes # Register classes
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from DateHandler import add_format from DateHandler import register_datehandler
register_datehandler(('ru_RU','russian'),DateParserRU, DateDisplayRU) register_datehandler(('ru_RU','russian'),DateParserRU, DateDisplayRU)