Updated code to:
. http://www.gramps-project.org/bugs/view.php?id=3430 . . added a $G[vtdelcspnom] to display . . . researcher information . . . gramps version and database name . be more vim compliant and a little more PEP compliant svn: r22661
This commit is contained in:
parent
afc8a28d6e
commit
bcc17b3700
@ -45,6 +45,7 @@ from gramps.gen.lib import EventType
|
|||||||
from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback
|
from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback
|
||||||
from gramps.gen.constfunc import STRTYPE, cuni
|
from gramps.gen.constfunc import STRTYPE, cuni
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Local constants
|
# Local constants
|
||||||
@ -121,7 +122,7 @@ class GenericFormat(object):
|
|||||||
tmp = tmp.upper()
|
tmp = tmp.upper()
|
||||||
if tmp == "" or tmp is None:
|
if tmp == "" or tmp is None:
|
||||||
main.add_remove()
|
main.add_remove()
|
||||||
elif isinstance(tmp, VarString): #events cause this
|
elif isinstance(tmp, VarString): # events cause this
|
||||||
main.extend(tmp)
|
main.extend(tmp)
|
||||||
else:
|
else:
|
||||||
main.add_variable(tmp)
|
main.add_variable(tmp)
|
||||||
@ -135,6 +136,7 @@ class GenericFormat(object):
|
|||||||
|
|
||||||
return main
|
return main
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# Name Format strings
|
# Name Format strings
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -166,18 +168,19 @@ class NameFormat(GenericFormat):
|
|||||||
|
|
||||||
code = "tfcnxslg"
|
code = "tfcnxslg"
|
||||||
upper = code.upper()
|
upper = code.upper()
|
||||||
function = [name.get_title, #t
|
function = [name.get_title, # t
|
||||||
name.get_first_name, #f
|
name.get_first_name, # f
|
||||||
name.get_call_name, #c
|
name.get_call_name, # c
|
||||||
name.get_nick_name, #n
|
name.get_nick_name, # n
|
||||||
common, #x
|
common, # x
|
||||||
name.get_suffix, #s
|
name.get_suffix, # s
|
||||||
name.get_surname, #l
|
name.get_surname, # l
|
||||||
name.get_family_nick_name #g
|
name.get_family_nick_name # g
|
||||||
]
|
]
|
||||||
|
|
||||||
return self.generic_format(name, code, upper, function)
|
return self.generic_format(name, code, upper, function)
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# Date Format strings
|
# Date Format strings
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -198,7 +201,7 @@ class DateFormat(GenericFormat):
|
|||||||
|
|
||||||
def __count_chars(self, char, max_amount):
|
def __count_chars(self, char, max_amount):
|
||||||
""" count the year/month/day codes """
|
""" count the year/month/day codes """
|
||||||
count = 1 #already have seen/passed one
|
count = 1 # already have seen/passed one
|
||||||
while count < max_amount and self.string_in.this == char:
|
while count < max_amount and self.string_in.this == char:
|
||||||
self.string_in.step()
|
self.string_in.step()
|
||||||
count = count +1
|
count = count +1
|
||||||
@ -217,23 +220,23 @@ class DateFormat(GenericFormat):
|
|||||||
if year == "0":
|
if year == "0":
|
||||||
return
|
return
|
||||||
|
|
||||||
if count == 1: #found 'y'
|
if count == 1: # found 'y'
|
||||||
if len(year) == 1:
|
if len(year) == 1:
|
||||||
return year
|
return year
|
||||||
elif year[-2] == "0":
|
elif year[-2] == "0":
|
||||||
return year[-1]
|
return year[-1]
|
||||||
else:
|
else:
|
||||||
return year[-2:]
|
return year[-2:]
|
||||||
elif count == 2: #found 'yy'
|
elif count == 2: # found 'yy'
|
||||||
tmp = "0" + year
|
tmp = "0" + year
|
||||||
return tmp[-2:]
|
return tmp[-2:]
|
||||||
elif count == 3: #found 'yyy'
|
elif count == 3: # found 'yyy'
|
||||||
if len(year) > 2:
|
if len(year) > 2:
|
||||||
return year
|
return year
|
||||||
else:
|
else:
|
||||||
tmp = "00" + year
|
tmp = "00" + year
|
||||||
return tmp[-3:]
|
return tmp[-3:]
|
||||||
else: #count == 4 #found 'yyyy'
|
else: #count == 4 # found 'yyyy'
|
||||||
tmp = "000" + year
|
tmp = "000" + year
|
||||||
return tmp[-4:]
|
return tmp[-4:]
|
||||||
|
|
||||||
@ -247,12 +250,12 @@ class DateFormat(GenericFormat):
|
|||||||
|
|
||||||
if count == 1:
|
if count == 1:
|
||||||
return month
|
return month
|
||||||
elif count == 2: #found 'mm'
|
elif count == 2: # found 'mm'
|
||||||
tmp = "0" + month
|
tmp = "0" + month
|
||||||
return tmp[-2:]
|
return tmp[-2:]
|
||||||
elif count == 3: #found 'mmm'
|
elif count == 3: # found 'mmm'
|
||||||
return displayer.short_months[int(month)]
|
return displayer.short_months[int(month)]
|
||||||
else: #found 'mmmm'
|
else: # found 'mmmm'
|
||||||
return displayer.long_months[int(month)]
|
return displayer.long_months[int(month)]
|
||||||
|
|
||||||
def month_up():
|
def month_up():
|
||||||
@ -263,12 +266,12 @@ class DateFormat(GenericFormat):
|
|||||||
""" The day part only """
|
""" The day part only """
|
||||||
day = cuni(date.get_day())
|
day = cuni(date.get_day())
|
||||||
count = self.__count_chars("d", 2)
|
count = self.__count_chars("d", 2)
|
||||||
if day == "0": #0 means not defined!
|
if day == "0": # 0 means not defined!
|
||||||
return
|
return
|
||||||
|
|
||||||
if count == 1: #found 'd'
|
if count == 1: # found 'd'
|
||||||
return day
|
return day
|
||||||
else: #found 'dd'
|
else: # found 'dd'
|
||||||
tmp = "0" + day
|
tmp = "0" + day
|
||||||
return tmp[-2:]
|
return tmp[-2:]
|
||||||
|
|
||||||
@ -286,6 +289,7 @@ class DateFormat(GenericFormat):
|
|||||||
|
|
||||||
return self.generic_format(date, code, upper, function)
|
return self.generic_format(date, code, upper, function)
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# Place Format strings
|
# Place Format strings
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -312,7 +316,7 @@ class PlaceFormat(GenericFormat):
|
|||||||
if self.is_blank(place):
|
if self.is_blank(place):
|
||||||
return
|
return
|
||||||
|
|
||||||
code = "elcuspnitxy"
|
code = "elcuspn" + "oitxy"
|
||||||
upper = code.upper()
|
upper = code.upper()
|
||||||
function = [place.get_main_location().get_street,
|
function = [place.get_main_location().get_street,
|
||||||
place.get_main_location().get_locality,
|
place.get_main_location().get_locality,
|
||||||
@ -321,6 +325,8 @@ class PlaceFormat(GenericFormat):
|
|||||||
place.get_main_location().get_state,
|
place.get_main_location().get_state,
|
||||||
place.get_main_location().get_postal_code,
|
place.get_main_location().get_postal_code,
|
||||||
place.get_main_location().get_country,
|
place.get_main_location().get_country,
|
||||||
|
|
||||||
|
place.get_main_location().get_phone,
|
||||||
place.get_main_location().get_parish,
|
place.get_main_location().get_parish,
|
||||||
place.get_title,
|
place.get_title,
|
||||||
place.get_longitude,
|
place.get_longitude,
|
||||||
@ -329,6 +335,7 @@ class PlaceFormat(GenericFormat):
|
|||||||
|
|
||||||
return self.generic_format(place, code, upper, function)
|
return self.generic_format(place, code, upper, function)
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# Event Format strings
|
# Event Format strings
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -409,6 +416,50 @@ class EventFormat(GenericFormat):
|
|||||||
|
|
||||||
return self.generic_format(None, code, "", function)
|
return self.generic_format(None, code, "", function)
|
||||||
|
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------
|
||||||
|
# gramps info Format strings
|
||||||
|
#------------------------------------------------------------------------
|
||||||
|
class GrampsFormat():
|
||||||
|
""" The Gramps Info Format class.
|
||||||
|
This only polls information from system information.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, _in, _db):
|
||||||
|
self.string_in = _in
|
||||||
|
self.db = _db
|
||||||
|
|
||||||
|
def parse_format(self):
|
||||||
|
""" Parse the Gramps format string.
|
||||||
|
let the date or place classes handle any sub-format strings """
|
||||||
|
from gramps.version import VERSION
|
||||||
|
|
||||||
|
from gramps.gen.utils.config import get_researcher
|
||||||
|
owner = get_researcher()
|
||||||
|
|
||||||
|
code = "vtd" + "elcspn" + "om"
|
||||||
|
info = [VERSION,
|
||||||
|
owner.get_name(),
|
||||||
|
self.db.get_dbname(),
|
||||||
|
|
||||||
|
owner.get_address(),
|
||||||
|
owner.get_locality(),
|
||||||
|
owner.get_city(),
|
||||||
|
owner.get_state(),
|
||||||
|
owner.get_postal_code(),
|
||||||
|
owner.get_country(),
|
||||||
|
|
||||||
|
owner.get_phone(),
|
||||||
|
owner.get_email()
|
||||||
|
]
|
||||||
|
|
||||||
|
where = code.find(self.string_in.this)
|
||||||
|
if where != -1:
|
||||||
|
self.string_in.step()
|
||||||
|
return info[where]
|
||||||
|
return "$G"
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
# Gallery Format strings
|
# Gallery Format strings
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -480,6 +531,7 @@ class GalleryFormat(GenericFormat):
|
|||||||
|
|
||||||
return self.generic_format(None, code, "", function)
|
return self.generic_format(None, code, "", function)
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# ConsumableString - The Input string class
|
# ConsumableString - The Input string class
|
||||||
@ -571,8 +623,8 @@ class VarString(object):
|
|||||||
it is used for groups and format strings.
|
it is used for groups and format strings.
|
||||||
"""
|
"""
|
||||||
def __init__(self, start_state = TXT.remove):
|
def __init__(self, start_state = TXT.remove):
|
||||||
self.state = start_state #overall state of the string.
|
self.state = start_state # overall state of the string.
|
||||||
self._text = [] #list of tuples (TXT.?, string)
|
self._text = [] # list of tuples (TXT.?, string)
|
||||||
|
|
||||||
def __update_state(self, new_status):
|
def __update_state(self, new_status):
|
||||||
if new_status > self.state:
|
if new_status > self.state:
|
||||||
@ -604,12 +656,12 @@ class VarString(object):
|
|||||||
if self._text[index][0] == TXT.text:
|
if self._text[index][0] == TXT.text:
|
||||||
curr_string += self._text[index][1]
|
curr_string += self._text[index][1]
|
||||||
index = index + 1
|
index = index + 1
|
||||||
continue #while self._text:
|
continue # while self._text:
|
||||||
if index +1 == len(self._text):
|
if index +1 == len(self._text):
|
||||||
if self._text[index][0] == TXT.separator and curr_string != '':
|
if self._text[index][0] == TXT.separator and curr_string != '':
|
||||||
curr_string += self._text[index][1]
|
curr_string += self._text[index][1]
|
||||||
index = index + 1
|
index = index + 1
|
||||||
break #while self._text:
|
break # while self._text:
|
||||||
|
|
||||||
type_0_1 = (self._text[index][0], self._text[index+1][0])
|
type_0_1 = (self._text[index][0], self._text[index+1][0])
|
||||||
|
|
||||||
@ -642,7 +694,7 @@ class VarString(object):
|
|||||||
|
|
||||||
if acquisition.state != TXT.display:
|
if acquisition.state != TXT.display:
|
||||||
#The sub {} was TXT.remove. We don't want to simply ignore it.
|
#The sub {} was TXT.remove. We don't want to simply ignore it.
|
||||||
self.add_remove() #add a remove que here to note it.
|
self.add_remove() # add a remove que here to note it.
|
||||||
return
|
return
|
||||||
|
|
||||||
self._text.extend(acquisition._text)
|
self._text.extend(acquisition._text)
|
||||||
@ -719,7 +771,7 @@ class VariableParse(object):
|
|||||||
def is_a(self):
|
def is_a(self):
|
||||||
""" check """
|
""" check """
|
||||||
return self._in.this == "$" and self._in.next is not None and \
|
return self._in.this == "$" and self._in.next is not None and \
|
||||||
"nsijbBdDmMvVauetTpP".find(self._in.next) != -1
|
"nsijbBdDmMvVauetTpPG".find(self._in.next) != -1
|
||||||
|
|
||||||
def get_event_by_type(self, marriage, e_type):
|
def get_event_by_type(self, marriage, e_type):
|
||||||
""" get an event from a type """
|
""" get an event from a type """
|
||||||
@ -942,6 +994,10 @@ class VariableParse(object):
|
|||||||
#photo for the marriage
|
#photo for the marriage
|
||||||
return self.__parse_photo(self.friend.family)
|
return self.__parse_photo(self.friend.family)
|
||||||
|
|
||||||
|
elif next_char == "G":
|
||||||
|
gramps_format = GrampsFormat(self._in, self.database)
|
||||||
|
return gramps_format.parse_format()
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -969,7 +1025,7 @@ class SubstKeywords(object):
|
|||||||
self.person = database.get_person_from_handle(person_handle)
|
self.person = database.get_person_from_handle(person_handle)
|
||||||
self.family = None
|
self.family = None
|
||||||
self.spouse = None
|
self.spouse = None
|
||||||
self.line = None #Consumable_string - set below
|
self.line = None # Consumable_string - set below
|
||||||
|
|
||||||
if self.person is None:
|
if self.person is None:
|
||||||
return
|
return
|
||||||
@ -1184,6 +1240,7 @@ if __name__ == '__main__':
|
|||||||
from gramps.gen.lib.date import Date
|
from gramps.gen.lib.date import Date
|
||||||
y_or_n = ()
|
y_or_n = ()
|
||||||
date_to_test = Date()
|
date_to_test = Date()
|
||||||
|
|
||||||
def date_set():
|
def date_set():
|
||||||
date_to_test.set_yr_mon_day(
|
date_to_test.set_yr_mon_day(
|
||||||
1970 if 0 in y_or_n else 0,
|
1970 if 0 in y_or_n else 0,
|
||||||
@ -1259,6 +1316,7 @@ if __name__ == '__main__':
|
|||||||
from gramps.gen.lib.name import Name
|
from gramps.gen.lib.name import Name
|
||||||
y_or_n = ()
|
y_or_n = ()
|
||||||
name_to_test = Name()
|
name_to_test = Name()
|
||||||
|
|
||||||
def name_set():
|
def name_set():
|
||||||
#code = "tfcnxslg"
|
#code = "tfcnxslg"
|
||||||
name_to_test.set_call_name("Bob" if 0 in y_or_n else "")
|
name_to_test.set_call_name("Bob" if 0 in y_or_n else "")
|
||||||
@ -1318,7 +1376,7 @@ if __name__ == '__main__':
|
|||||||
consume_str = ConsumableString(line_in)
|
consume_str = ConsumableString(line_in)
|
||||||
answer = main_level_test(consume_str, NameFormat, name_to_test)
|
answer = main_level_test(consume_str, NameFormat, name_to_test)
|
||||||
print(answer)
|
print(answer)
|
||||||
print("Good" if answer == "BobDr.2Billy3Buck4BobIV6The Clubs" \
|
print("Good" if answer == "BobDr.2Billy3Buck4BobIV6The Clubs"
|
||||||
else "!! bad !!")
|
else "!! bad !!")
|
||||||
|
|
||||||
|
|
||||||
@ -1330,6 +1388,7 @@ if __name__ == '__main__':
|
|||||||
from gramps.gen.lib.place import Place
|
from gramps.gen.lib.place import Place
|
||||||
y_or_n = ()
|
y_or_n = ()
|
||||||
place_to_test = Place()
|
place_to_test = Place()
|
||||||
|
|
||||||
def place_set():
|
def place_set():
|
||||||
#code = "elcuspnitxy"
|
#code = "elcuspnitxy"
|
||||||
main_loc = place_to_test.get_main_location()
|
main_loc = place_to_test.get_main_location()
|
||||||
@ -1412,4 +1471,3 @@ if __name__ == '__main__':
|
|||||||
34, 35, 38, 39, 38, 33, 32, 33, 36, 37, 36, 40, 41, 40, 44, 33, 32, 33,
|
34, 35, 38, 39, 38, 33, 32, 33, 36, 37, 36, 40, 41, 40, 44, 33, 32, 33,
|
||||||
36, 37, 36, 40, 41, 40, 44, 38, 39, 38, 42, 46] else "!! bad !!")
|
36, 37, 36, 40, 41, 40, 44, 38, 39, 38, 42, 46] else "!! bad !!")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user