2008-02-19 Douglas S. Blank <dblank@cs.brynmawr.edu>
* src/gen/lib/date.py (Date.__init__): added Date("Jan 1, 2000") string constructor and calendar, quality, and modifier keywords to Date() svn: r10059
This commit is contained in:
parent
e579cc0e14
commit
bb11347869
@ -1,3 +1,8 @@
|
|||||||
|
2008-02-19 Douglas S. Blank <dblank@cs.brynmawr.edu>
|
||||||
|
* src/gen/lib/date.py (Date.__init__):
|
||||||
|
added Date("Jan 1, 2000") string constructor and
|
||||||
|
calendar, quality, and modifier keywords to Date()
|
||||||
|
|
||||||
2008-02-18 Brian Matherly <brian@gramps-project.org>
|
2008-02-18 Brian Matherly <brian@gramps-project.org>
|
||||||
* src/plugins/CmdRef.py:
|
* src/plugins/CmdRef.py:
|
||||||
0001688: BUG when I clicked generate commandline plugin reference tool
|
0001688: BUG when I clicked generate commandline plugin reference tool
|
||||||
|
@ -144,10 +144,13 @@ class Date:
|
|||||||
_("Persian"),
|
_("Persian"),
|
||||||
_("Islamic")]
|
_("Islamic")]
|
||||||
|
|
||||||
def __init__(self, *source):
|
def __init__(self, *source, **kwargs):
|
||||||
"""
|
"""
|
||||||
Creates a new Date instance.
|
Creates a new Date instance.
|
||||||
"""
|
"""
|
||||||
|
calendar=kwargs.get("calendar", None)
|
||||||
|
modifier=kwargs.get("modifier", None)
|
||||||
|
quality=kwargs.get("quality", None)
|
||||||
#### setup None, Date, or numbers
|
#### setup None, Date, or numbers
|
||||||
if len(source) == 0:
|
if len(source) == 0:
|
||||||
source = None
|
source = None
|
||||||
@ -164,13 +167,34 @@ class Date:
|
|||||||
raise AttributeError, "invalid args to Date: %s" % source
|
raise AttributeError, "invalid args to Date: %s" % source
|
||||||
#### ok, process either date or tuple
|
#### ok, process either date or tuple
|
||||||
if type(source) == tuple:
|
if type(source) == tuple:
|
||||||
self.calendar = Date.CAL_GREGORIAN
|
if calendar == None:
|
||||||
self.modifier = Date.MOD_NONE
|
self.calendar = Date.CAL_GREGORIAN
|
||||||
self.quality = Date.QUAL_NONE
|
else:
|
||||||
|
self.calendar = self.lookup_calendar(calendar)
|
||||||
|
if modifier == None:
|
||||||
|
self.modifier = Date.MOD_NONE
|
||||||
|
else:
|
||||||
|
self.modifier = self.lookup_modifier(modifier)
|
||||||
|
if quality == None:
|
||||||
|
self.quality = Date.QUAL_NONE
|
||||||
|
else:
|
||||||
|
self.quality = self.lookup_quality(quality)
|
||||||
self.dateval = Date.EMPTY
|
self.dateval = Date.EMPTY
|
||||||
self.text = u""
|
self.text = u""
|
||||||
self.sortval = 0
|
self.sortval = 0
|
||||||
self.set_yr_mon_day(*source)
|
self.set_yr_mon_day(*source)
|
||||||
|
elif type(source) == str:
|
||||||
|
import DateHandler
|
||||||
|
source = DateHandler.parser.parse(source)
|
||||||
|
if calendar == None:
|
||||||
|
self.calendar = Date.CAL_GREGORIAN
|
||||||
|
else:
|
||||||
|
self.calendar = self.lookup_calendar(calendar)
|
||||||
|
self.modifier = source.modifier
|
||||||
|
self.quality = source.quality
|
||||||
|
self.dateval = source.dateval
|
||||||
|
self.text = source.text
|
||||||
|
self.sortval = source.sortval
|
||||||
elif source:
|
elif source:
|
||||||
self.calendar = source.calendar
|
self.calendar = source.calendar
|
||||||
self.modifier = source.modifier
|
self.modifier = source.modifier
|
||||||
@ -450,7 +474,8 @@ class Date:
|
|||||||
# If all > all
|
# If all > all
|
||||||
return self_start > other_stop
|
return self_start > other_stop
|
||||||
else:
|
else:
|
||||||
raise AttributeError, ("invalid match comparison operator: '%s'" % comparison)
|
raise AttributeError, ("invalid match comparison operator: '%s'" %
|
||||||
|
comparison)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""
|
"""
|
||||||
@ -932,3 +957,45 @@ class Date:
|
|||||||
"""
|
"""
|
||||||
return Date(Date._calendar_change[Date.CAL_GREGORIAN](self.sortval + value))
|
return Date(Date._calendar_change[Date.CAL_GREGORIAN](self.sortval + value))
|
||||||
|
|
||||||
|
def lookup_calendar(self, calendar):
|
||||||
|
"""
|
||||||
|
Lookup calendar name in the list of known calendars,
|
||||||
|
even if translated.
|
||||||
|
"""
|
||||||
|
calendar_lower = [n.lower() for n in Date.calendar_names]
|
||||||
|
ui_lower = [n.lower() for n in Date.ui_calendar_names]
|
||||||
|
if calendar.lower() in calendar_lower:
|
||||||
|
return calendar_lower.index(calendar.lower())
|
||||||
|
elif calendar.lower() in ui_lower:
|
||||||
|
return ui_lower.index(calendar.lower())
|
||||||
|
else:
|
||||||
|
raise AttributeError("invalid calendar: '%s'" % calendar)
|
||||||
|
|
||||||
|
def lookup_quality(self, quality):
|
||||||
|
"""
|
||||||
|
Lookup date quality keyword, even if translated.
|
||||||
|
"""
|
||||||
|
qualities = ["none", "estimated", "calculated"]
|
||||||
|
ui_qualities = [_("none"), _("estimated"), _("calculated")]
|
||||||
|
if quality.lower() in qualities:
|
||||||
|
return qualities.index(quality.lower())
|
||||||
|
elif quality.lower() in ui_qualities:
|
||||||
|
return ui_qualities.index(quality.lower())
|
||||||
|
else:
|
||||||
|
raise AttributeError("invalid quality: '%s'" % quality)
|
||||||
|
|
||||||
|
def lookup_modifier(self, modifier):
|
||||||
|
"""
|
||||||
|
Lookup date modifier keyword, even if translated.
|
||||||
|
"""
|
||||||
|
mods = ["none", "before", "after", "about",
|
||||||
|
"range", "span", "textonly"]
|
||||||
|
ui_mods = [_("none"), _("before"), _("after"), _("about"),
|
||||||
|
_("range"), _("span"), _("textonly")]
|
||||||
|
if modifier.lower() in mods:
|
||||||
|
return mods.index(modifier.lower())
|
||||||
|
elif modifier.lower() in ui_mods:
|
||||||
|
return ui_mods.index(modifier.lower())
|
||||||
|
else:
|
||||||
|
raise AttributeError("invalid modifier: '%s'" % modifier)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user