Bug 3018: ImportGrdb: remove calls to keys() dictionary method where possible

svn: r12572
This commit is contained in:
Gerald Britton 2009-05-26 20:48:09 +00:00
parent 51f65aa02f
commit 5eb7e18dc6
47 changed files with 134 additions and 199 deletions

View File

@ -155,8 +155,7 @@ class StandardCustomSelector(object):
"""
Fill with data
"""
keys = self.mapping.keys()
keys.sort(self.by_value)
keys = sorted(self.mapping, self.by_value)
index = 0
for key in keys:
if key != self.custom_key:

View File

@ -951,10 +951,10 @@ class StyleSheetList(object):
xml_file = open(self.file,"w")
xml_file.write("<?xml version=\"1.0\"?>\n")
xml_file.write('<stylelist>\n')
for name in self.map.keys():
for name, sheet in self.map.iteritems():
if name == "default":
continue
sheet = self.map[name]
xml_file.write('<sheet name="%s">\n' % escxml(name))
for p_name in sheet.get_paragraph_style_names():
para = sheet.get_paragraph_style(p_name)
@ -1031,17 +1031,13 @@ class StyleSheet(object):
self.cell_styles = {}
self.name = ""
if obj is not None:
for style_name in obj.para_styles.keys():
style = obj.para_styles[style_name]
for style_name, style in obj.para_styles.iteritems():
self.para_styles[style_name] = ParagraphStyle(style)
for style_name in obj.draw_styles.keys():
style = obj.draw_styles[style_name]
for style_name, style in obj.draw_styles.iteritems():
self.draw_styles[style_name] = GraphicsStyle(style)
for style_name in obj.table_styles.keys():
style = obj.table_styles[style_name]
for style_name, style in obj.table_styles.iteritems():
self.table_styles[style_name] = TableStyle(style)
for style_name in obj.cell_styles.keys():
style = obj.cell_styles[style_name]
for style_name, style in obj.cell_styles.iteritems():
self.cell_styles[style_name] = TableCellStyle(style)
def set_name(self, name):

View File

@ -221,8 +221,7 @@ class NameDisplay(object):
"""
the_list = []
keys = self.name_formats.keys()
keys.sort(self._sort_name_format)
keys = sorted(self.name_formats, self._sort_name_format)
for num in keys:
if ((also_default or num) and
@ -340,12 +339,12 @@ class NameDisplay(object):
# key-word replacement. Just replace ikeywords with
# %codes (ie, replace "irstnamefay" with "%f", and
# "IRSTNAMEFAY" for %F)
if (len(format_str) > 2 and
format_str[0] == '"' and
format_str[-1] == '"'):
format_str[0] == format_str[-1] == '"'):
pass
else:
d_keys = [(code, d[code][2]) for code in d.keys()]
d_keys = [(code, _tuple[2]) for code, _tuple in d.iteritems()]
d_keys.sort(_make_cmp) # reverse sort by ikeyword
for (code, ikeyword) in d_keys:
exp, keyword, ikeyword = d[code]
@ -358,11 +357,10 @@ class NameDisplay(object):
# %codes (ie, replace "firstname" with "%f", and
# "FIRSTNAME" for %F)
if (len(format_str) > 2 and
format_str[0] == '"' and
format_str[-1] == '"'):
format_str = format_str[1:-1]
format_str[0] == format_str[-1] == '"'):
pass
else:
d_keys = [(code, d[code][1]) for code in d.keys()]
d_keys = [(code, _tuple[1]) for code, _tuple in d.iteritems()]
d_keys.sort(_make_cmp) # reverse sort by keyword
# if in double quotes, just use % codes
for (code, keyword) in d_keys:
@ -372,7 +370,7 @@ class NameDisplay(object):
format_str = format_str.replace(keyword.title(),"%"+ code)
format_str = format_str.replace(keyword.upper(),"%"+ code.upper())
# Get lower and upper versions of codes:
codes = d.keys() + [c.upper() for c in d.keys()]
codes = d.keys() + [c.upper() for c in d]
# Next, list out the matching patterns:
# If it starts with "!" however, treat the punctuation verbatim:
if len(format_str) > 0 and format_str[0] == "!":

View File

@ -98,12 +98,10 @@ class IniKeyClient(object):
fp = open(filename, "w")
fp.write(";; Gramps key file" + NL)
fp.write((";; Automatically created at %s" % time.strftime("%Y/%m/%d %H:%M:%S")) + NL + NL)
sections = self.data.keys()
sections.sort()
sections = sorted(self.data)
for section in sections:
fp.write(("[%s]" + NL) % section)
keys = self.data[section].keys()
keys.sort()
keys = sorted(self.data[section])
for key in keys:
fp.write(("%s=%s" + NL)% (key, self.data[section][key]))
fp.write(NL)

View File

@ -92,9 +92,7 @@ class NodeTreeMap(object):
self.temp_sname_sub = {}
def build_toplevel(self):
mylist = self.temp_sname_sub.keys()
mylist.sort(locale.strcoll)
self.temp_top_path2iter = mylist
self.temp_top_path2iter = sorted(self.temp_sname_sub, locale.strcoll)
for name in self.temp_top_path2iter:
self.build_sub_entry(name)

View File

@ -540,9 +540,7 @@ class EditRule(ManagedWindow.ManagedWindow):
else:
self.sel_class = None
keys = the_map.keys()
keys.sort(by_rule_name)
keys.reverse()
keys = sorted(the_map, by_rule_name, reverse=True)
catlist = []
for class_obj in keys:
category = class_obj.category

View File

@ -128,6 +128,6 @@ class RelationshipPathBetween(Rule):
self.map[e] = 1
def get_intersection(self,target, map1, map2):
for e in map1.keys():
for e in map1:
if e in map2:
target[e] = map2[e]

View File

@ -272,16 +272,13 @@ class GedcomInfoDB(object):
return self.standard
def get_from_source_tag(self, name):
for k in self.map.keys():
val = self.map[k]
for k, val in self.map.iteritems():
if val.get_dest() == name:
return val
return self.standard
def get_name_list(self):
mylist = self.map.keys()
mylist.sort()
return ["GEDCOM 5.5 standard"] + mylist
return ["GEDCOM 5.5 standard"] + sorted(self.map)
#-------------------------------------------------------------------------
#

View File

@ -54,19 +54,16 @@ LOG = logging.getLogger(".GedcomImport")
#-------------------------------------------------------------------------
GED2GRAMPS = {}
for __val in personalConstantEvents.keys():
__key = personalConstantEvents[__val]
for __val, __key in personalConstantEvents.iteritems():
if __key != "":
GED2GRAMPS[__key] = __val
for __val in familyConstantEvents.keys():
__key = familyConstantEvents[__val]
for __val, __key in familyConstantEvents.iteritems():
if __key != "":
GED2GRAMPS[__key] = __val
GED2ATTR = {}
for __val in personalConstantAttributes.keys():
__key = personalConstantAttributes[__val]
for __val, __key in personalConstantAttributes.iteritems():
if __key != "":
GED2ATTR[__key] = __val

View File

@ -197,14 +197,14 @@ MEDIA_MAP = {
#
#-------------------------------------------------------------------------
GED_2_GRAMPS = {}
for _val in GedcomInfo.personalConstantEvents.keys():
_key = GedcomInfo.personalConstantEvents[_val]
for _val, _key in GedcomInfo.personalConstantEvents.iteritems():
#_key = GedcomInfo.personalConstantEvents[_val]
if _key != "":
GED_2_GRAMPS[_key] = _val
GED_2_FAMILY = {}
for _val in GedcomInfo.familyConstantEvents.keys():
_key = GedcomInfo.familyConstantEvents[_val]
for _val, _key in GedcomInfo.familyConstantEvents.iteritems():
#_key = GedcomInfo.familyConstantEvents[_val]
if _key != "":
GED_2_FAMILY[_key] = _val
@ -786,8 +786,8 @@ class GedcomParser(UpdateCallback):
self.attrs = amap.values()
self.gedattr = {}
for val in amap.keys():
self.gedattr[amap[val]] = val
for val, key in amap.iteritems():
self.gedattr[key] = val
self.search_paths = []
def parse_gedcom_file(self, use_trans=False):
@ -807,9 +807,7 @@ class GedcomParser(UpdateCallback):
self.dbase.add_source(self.def_src, self.trans)
self.__parse_record()
self.__parse_trailer()
for title in self.inline_srcs.keys():
handle = self.inline_srcs[title]
for title, handle in self.inline_srcs.iteritems():
src = gen.lib.Source()
src.set_handle(handle)
src.set_title(title)

View File

@ -91,8 +91,7 @@ class LdsTemples(object):
"""
returns a list of temple codes, temple name tuples
"""
return [ (self.__temple_codes[name], name) \
for name in self.__temple_codes.keys() ]
return [(code, name) for name, code in self.__temple_codes.iteritems()]
def __start_element(self, tag, attrs):
"""

View File

@ -152,7 +152,7 @@ class MergeSources(ManagedWindow.ManagedWindow):
src2_map = self.s2.get_data_map()
src1_map = self.s1.get_data_map()
for key in src2_map.keys():
for key in src2_map:
if key not in src1_map:
src1_map[key] = src2_map[key]

View File

@ -198,20 +198,20 @@ class OptionListCollection(object):
option_list = self.get_option_list(module_name)
f.write('<module name=%s>\n' % quoteattr(module_name))
options = option_list.get_options()
for option_name in options.keys():
if isinstance(options[option_name], (list, tuple)):
for option_name, option_data in options.iteritems():
if isinstance(option_data, (list, tuple)):
f.write(' <option name=%s value="" length="%d">\n' % (
quoteattr(option_name),
len(options[option_name]) ) )
for list_index in range(len(options[option_name])):
len(option_data) ) )
for list_index, list_data in enumerate(option_data):
f.write(' <listitem number="%d" value=%s/>\n' % (
list_index,
quoteattr(unicode(options[option_name][list_index]))) )
quoteattr(unicode(list_data))) )
f.write(' </option>\n')
else:
f.write(' <option name=%s value=%s/>\n' % (
quoteattr(option_name),
quoteattr(unicode(options[option_name]))) )
quoteattr(unicode(option_data))) )
self.write_module_common(f, option_list)
@ -334,7 +334,7 @@ class OptionHandler(object):
# First we set options_dict values based on the saved options
options = self.saved_option_list.get_options()
bad_opts = []
for option_name in options.keys():
for option_name, option_data in options.iteritems():
if option_name not in self.options_dict:
print "Option %s is present in the %s but is not known "\
"to the module." % (option_name,
@ -344,7 +344,7 @@ class OptionHandler(object):
continue
try:
converter = Utils.get_type_converter(self.options_dict[option_name])
self.options_dict[option_name] = converter(options[option_name])
self.options_dict[option_name] = converter(option_data)
except ValueError:
pass
except TypeError:
@ -368,8 +368,8 @@ class OptionHandler(object):
"""
# First we save options from options_dict
for option_name in self.options_dict.keys():
if self.options_dict[option_name] == self.default_options_dict[option_name]:
for option_name, option_data in self.options_dict.iteritems():
if option_data == self.default_options_dict[option_name]:
self.saved_option_list.remove_option(option_name)
else:
self.saved_option_list.set_option(option_name,self.options_dict[option_name])

View File

@ -72,7 +72,6 @@ class PluginDialog(ManagedWindow.ManagedWindow):
reports. This is used to build the selection tree on the left
hand side of the dialog box.
"""
self.active = state.active
self.imap = {}
self.msg = msg
@ -189,7 +188,6 @@ class PluginDialog(ManagedWindow.ManagedWindow):
Items in the same category are grouped under the same submenu.
The categories must be dicts from integer to string.
"""
ilist = []
self.store.clear()
@ -207,9 +205,8 @@ class PluginDialog(ManagedWindow.ManagedWindow):
# add a submenu for each category, and populate it with the
# GtkTreeItems that are associated with it.
key_list = [ item for item in item_hash.keys() if item != _UNSUPPORTED]
key_list.sort()
key_list.reverse()
key_list = [item for item in item_hash if item != _UNSUPPORTED]
key_list.sort(reverse=True)
prev = None
if _UNSUPPORTED in item_hash:
@ -228,7 +225,7 @@ class PluginDialog(ManagedWindow.ManagedWindow):
node = self.store.insert_after(None, prev)
self.store.set(node, 0, key)
next = None
data.sort(lambda x, y: cmp(x[2], y[2]))
data.sort(key=lambda k:k[2])
for item in data:
next = self.store.insert_after(node, next)
ilist.append((next, item))

View File

@ -210,20 +210,17 @@ class DocReportDialog(ReportDialog):
yoptions=gtk.SHRINK)
self.template_combo = gtk.combo_box_new_text()
tlist = _template_map.keys()
tlist.sort()
tlist = sorted(_template_map)
template_name = self.options.handler.get_template_name()
self.template_combo.append_text(_default_template)
template_index = 1
active_index = 0
for template in tlist:
for template_index, template in enumerate(sorted(_template_map)):
if template != _user_template:
self.template_combo.append_text(template)
if _template_map[template] == os.path.basename(template_name):
active_index = template_index
template_index = template_index + 1
self.template_combo.append_text(_user_template)
self.template_combo.connect('changed',self.html_file_enable)

View File

@ -59,18 +59,14 @@ class StyleComboBox(gtk.ComboBox):
self.store = gtk.ListStore(gobject.TYPE_STRING)
self.set_model(self.store)
self.style_map = style_map
keys = style_map.keys()
keys.sort()
index = 0
start_index = 0
for key in keys:
for index, key in enumerate(sorted(style_map)):
if key == "default":
self.store.append(row=[_('default')])
else:
self.store.append(row=[key])
if key == default:
start_index = index
index += 1
self.set_active(start_index)

View File

@ -103,10 +103,9 @@ class TipFromFunction(object):
o = self._fetch_function()
# check if we have a handler for the object type returned
for cls in CLASS_MAP.keys():
for cls, handler in CLASS_MAP.iteritems():
if isinstance(o,cls):
return CLASS_MAP[cls](self._db, o)()
return handler(self._db, o)()
return "no tip"
__call__ = get_tip

View File

@ -1389,7 +1389,7 @@ class ViewManager(object):
(item[0], item[1], item[2], item[4], item[3], item[10])]
# Sort categories, skipping the unsupported
catlist = [item for item in hash_data.keys()
catlist = [item for item in hash_data
if item != _UNSUPPORTED]
catlist.sort()
for key in catlist:

View File

@ -1,4 +1,4 @@
#
k#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2004 Donald N. Allingham
@ -111,10 +111,9 @@ class ODSDoc(SpreadSheetDoc):
self.f.write('style:font-family-generic="swiss" ')
self.f.write('style:font-pitch="variable"/>\n')
self.f.write('</office:font-face-decls>\n')
self.f.write('<office:automatic-styles>\n')
for key in self.table_styles.keys():
table = self.table_styles[key]
for key, table in self.table_styles.iteritems():
self.f.write('<style:style style:name="')
self.f.write(key)
self.f.write('" style:family="table" ')
@ -133,8 +132,7 @@ class ODSDoc(SpreadSheetDoc):
self.f.write('<style:table-row-properties fo:break-before="auto"/>\n')
self.f.write('</style:style>\n')
for key in self.style_list.keys():
style = self.style_list[key]
for key, style in self.style_list.iteritems():
font = style.get_font()
self.f.write('<style:style style:name="')
self.f.write(key)

View File

@ -106,8 +106,8 @@ class OpenSpreadSheet(SpreadSheetDoc):
self.f.write('style:font-pitch="variable"/>\n')
self.f.write('</office:font-decls>\n')
self.f.write('<office:automatic-styles>\n')
for key in self.table_styles.keys():
table = self.table_styles[key]
for key, table in self.table_styles.iteritems():
self.f.write('<style:style style:name="')
self.f.write(key)
self.f.write('" style:family="table">\n')
@ -125,9 +125,8 @@ class OpenSpreadSheet(SpreadSheetDoc):
self.f.write('<style:style style:name="ro1" style:family="table-row">\n')
self.f.write('<style:properties fo:break-before="auto"/>\n')
self.f.write('</style:style>\n')
for key in self.style_list.keys():
style = self.style_list[key]
for key, style in self.style_list.iteritems():
font = style.get_font()
self.f.write('<style:style style:name="')
self.f.write(key)

View File

@ -204,7 +204,7 @@ def eval_func(dateval, e1, e2, e3):
def suite3():
suite = unittest.TestSuite()
count = 1
for testset in date_tests.keys():
for testset in date_tests:
for format in range( len( DateHandler.get_date_formats())):
DateHandler.set_format(format)
for dateval in date_tests[testset]:

View File

@ -123,7 +123,7 @@ class Menu(object):
@return: an Option instance or None on failure.
"""
for category in self.__options.keys():
for category in self.__options:
for (oname, option) in self.__options[category]:
if oname == name:
return option

View File

@ -371,9 +371,9 @@ class ReferencedProxyDb(ProxyDbBase):
last_count = 0
while has_unreferenced_handles:
current_count = 0
for object_type in object_types.keys():
unref_list = object_types[object_type]['unref_list']
handle_list = object_types[object_type]['handle_list']()
for object_type, object_dict in object_types.iteritems():
unref_list = object_dict['unref_list']
handle_list = object_dict['handle_list']()
for handle in handle_list:
ref_handles = [i for i in \
self.find_backlink_handles(handle)]

View File

@ -252,10 +252,9 @@ def db_copy(from_db,to_db,callback):
# Start batch transaction to use async TXN and other tricks
trans = to_db.transaction_begin("", batch=True)
for table_name in tables.keys():
cursor_func = tables[table_name]['cursor_func']
add_func = tables[table_name]['add_func']
for table_name, table_dict in tables.iteritems():
cursor_func = table_dict['cursor_func']
add_func = table_dict['add_func']
cursor = cursor_func()
item = cursor.first()

View File

@ -421,8 +421,7 @@ class BookList(object):
f = open(self.file, "w")
f.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
f.write('<booklist>\n')
for name in self.bookmap.keys():
for name in self.bookmap:
book = self.get_book(name)
dbname = book.get_dbname()
f.write('<book name="%s" database="%s">\n' % (name, dbname) )
@ -430,14 +429,13 @@ class BookList(object):
f.write(' <item name="%s" trans_name="%s">\n' %
(item.get_name(),item.get_translated_name() ) )
options = item.option_class.handler.options_dict
for option_name in options.keys():
option_value = options[option_name]
for option_name, option_value in options.iteritems():
if isinstance(option_value, (list, tuple)):
f.write(' <option name="%s" value="" '
'length="%d">\n' % (
escape(option_name),
len(options[option_name]) ) )
for list_index in range(len(options[option_name])):
for list_index in range(len(option_value)):
option_type = \
Utils.type_name(option_value[list_index])
value = escape(unicode(option_value[list_index]))

View File

@ -279,12 +279,12 @@ class PrintPreview(object):
self._drawing_area.queue_draw()
self._zoom_in_button.set_sensitive(self._zoom !=
max(self.zoom_factors.keys()))
max(self.zoom_factors))
self._zoom_out_button.set_sensitive(self._zoom !=
min(self.zoom_factors.keys()))
min(self.zoom_factors))
def __zoom_in(self):
zoom = [z for z in self.zoom_factors.keys() if z > self._zoom]
zoom = [z for z in self.zoom_factors if z > self._zoom]
if zoom:
return min(zoom)
@ -292,7 +292,7 @@ class PrintPreview(object):
return self._zoom
def __zoom_out(self):
zoom = [z for z in self.zoom_factors.keys() if z < self._zoom]
zoom = [z for z in self.zoom_factors if z < self._zoom]
if zoom:
return max(zoom)

View File

@ -340,13 +340,13 @@ class HtmlDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
def write_support_files(self):
if self.map:
for name in self.map.keys():
for name, handle in self.map.iteritems():
if name == 'template.html':
continue
fname = '%s%s%s' % (self.base, os.path.sep, name)
try:
f = open(fname, 'wb')
f.write(self.map[name].read())
f.write(handle.read())
f.close()
except IOError,msg:
errmsg = "%s\n%s" % (_("Could not create %s") % fname, msg)

View File

@ -123,16 +123,14 @@ class GenChart(object):
self.array[y][x] = value
def dimensions(self):
return (max(self.array.keys())+1, self.max_x+1)
return (max(self.array)+1, self.max_x+1)
def compress(self):
new_map = {}
new_array = {}
old_y = 0
new_y = 0
for key in self.array.keys():
i = self.array[key]
for key, i in self.array.iteritems():
old_y = key
if self.not_blank(i.values()):
self.compress_map[old_y] = new_y
@ -203,14 +201,12 @@ class AncestorTree(Report):
self.scale = 1
self.apply_filter(center_person.get_handle(), 1)
keys = self.map.keys()
keys.sort()
keys = sorted(self.map)
max_key = log2(keys[-1])
self.genchart = GenChart(max_key+1)
for key in self.map.keys():
self.genchart.set(key,self.map[key])
for key, chart in self.map.iteritems():
self.genchart.set(key, chart)
self.calc()
if self.force_fit:

View File

@ -200,8 +200,7 @@ class AgeStatsGramplet(Gramplet):
def compute_stats(self, hash):
""" Returns the statistics of a dictionary of data """
hashkeys = hash.keys()
hashkeys.sort()
hashkeys = sorted(hash)
count = sum(hash.values())
sumval = sum([k * hash[k] for k in hash])
minval = min(hashkeys)
@ -241,8 +240,8 @@ class AgeStatsGramplet(Gramplet):
"""
# first, binify:
bin = [0] * (max_val/bin_size)
for value in hash.keys():
bin[value/bin_size] += hash[value]
for value, hash_value in hash.iteritems():
bin[value/bin_size] += hash_value
text = ""
max_bin = float(max(bin))
if max_bin != 0:

View File

@ -101,8 +101,7 @@ class GivenNameCloudGramplet(Gramplet):
totals = {}
for (count, givensubname) in cloud_names: # givensubname_sort:
totals[count] = totals.get(count, 0) + 1
sums = totals.keys()
sums.sort()
sums = sorted(totals)
sums.reverse()
total = 0
include_greater_than = 0

View File

@ -236,8 +236,7 @@ class PedigreeGramplet(Gramplet):
self.process_person(active_person.handle, 1, "f") # father
self.process_person(active_person.handle, 0, "a") # active #FIXME: should be 1?
self.process_person(active_person.handle, 1, "m") # mother
gens = self._generations.keys()
gens.sort()
gens = sorted(self._generations)
self.append_text(_("\nBreakdown by generation:\n"))
all = [active_person.handle]
percent_sign = _("percent sign or text string|%")

View File

@ -80,7 +80,7 @@ class PluginManagerGramplet(Gramplet):
types[row[1]] = 1
self.set_text("")
# name, type, ver, desc, gver, use, rating, contact, download
for type in types.keys():
for type in types:
self.render_text("<b>%s Plugins</b>\n" % _(type))
row_count = 1
for row in rows:

View File

@ -114,8 +114,7 @@ class SurnameCloudGramplet(Gramplet):
totals = {}
for (count, givensubname) in cloud_names: # givensubname_sort:
totals[count] = totals.get(count, 0) + 1
sums = totals.keys()
sums.sort()
sums = sorted(totals)
sums.reverse()
total = 0
include_greater_than = 0

View File

@ -147,10 +147,8 @@ def run(database, document, filter_name, *args, **kwargs):
surnames = list(set([name.get_group_name() for name in names]))
for surname in surnames:
namelist[surname] = namelist.get(surname, 0) + 1
surnames = namelist.keys()
surnames.sort()
stab.columns(_("Surname"), _("Count"))
for name in surnames:
for name in sorted(namelist):
stab.row(name, namelist[name])
matches += 1
stab.set_callback("leftdouble",

View File

@ -166,11 +166,9 @@ class AncestorReport(Report):
# get the entries out of the map, and sort them.
keys = self.map.keys()
keys.sort()
generation = 0
for key in keys :
for key in sorted(self.map):
# check the index number to see if we need to start a new generation
if generation == log2(key):

View File

@ -154,12 +154,10 @@ class DetAncestorReport(Report):
self.doc.write_text(title,mark)
self.doc.end_paragraph()
keys = self.map.keys()
keys.sort()
generation = 0
need_header = 1
for key in keys :
for key in sorted(self.map):
if generation == 0 or key >= 2**generation:
if self.pgbrk and generation > 0:
self.doc.page_break()
@ -221,9 +219,7 @@ class DetAncestorReport(Report):
if self.dupperson:
# Check for duplicate record (result of distant cousins marrying)
keys = self.map.keys()
keys.sort()
for dkey in keys:
for dkey in sorted(self.map):
if dkey >= key:
break
if self.map[key] == self.map[dkey]:

View File

@ -157,7 +157,7 @@ class DetDescendantReport(Report):
for family_handle in person.get_family_handle_list():
family = self.database.get_family_from_handle(family_handle)
for child_ref in family.get_child_ref_list():
ix = max(self.map.keys())
ix = max(self.map)
self.apply_henry_filter(child_ref.ref, ix+1,
pid+HENRY[index], cur_gen+1)
index += 1
@ -178,7 +178,7 @@ class DetDescendantReport(Report):
for family_handle in person.get_family_handle_list():
family = self.database.get_family_from_handle(family_handle)
for child_ref in family.get_child_ref_list():
ix = max(self.map.keys())
ix = max(self.map)
self.apply_mod_reg_filter_aux(child_ref.ref, ix+1, cur_gen+1)
def apply_mod_reg_filter(self,person_handle):
@ -209,8 +209,7 @@ class DetDescendantReport(Report):
self.doc.write_text(title, mark)
self.doc.end_paragraph()
keys = self.map.keys()
keys.sort()
keys = sorted(self.map)
generation = 0
for generation in xrange(len(self.gen_keys)):
@ -289,9 +288,7 @@ class DetDescendantReport(Report):
if self.dubperson:
# Check for duplicate record (result of distant cousins marrying)
keys = self.map.keys()
keys.sort()
for dkey in keys:
for dkey in sorted(self.map):
if dkey >= key:
break
if self.map[key] == self.map[dkey]:

View File

@ -142,12 +142,11 @@ class EndOfLineReport(Report):
self.doc.end_paragraph()
self.doc.start_table('EolTable','EOL-Table')
for generation in self.eol_map.keys():
for generation, handles in self.eol_map.iteritems():
self.write_generation_row(generation)
for person_handle in self.eol_map[generation].keys():
for person_handle, pedigrees in handles.iteritems():
self.write_person_row(person_handle)
for pedigree in self.eol_map[generation][person_handle]:
for pedigree in pedigrees:
self.write_pedigree_row(pedigree)
self.doc.end_table()

View File

@ -113,8 +113,8 @@ class KinshipReport(Report):
self.traverse_up(self.person.get_handle(), 1, 0)
# Write Kin
for Ga in self.kinship_map.keys():
for Gb in self.kinship_map[Ga]:
for Ga, Gbs in self.kinship_map.iteritems():
for Gb in Gbs:
# To understand these calculations, see:
# http://en.wikipedia.org/wiki/Cousin#Mathematical_definitions
x = min (Ga,Gb)

View File

@ -111,7 +111,7 @@ class NumberOfAncestorsReport(Report):
temp = thisgen
thisgen = {}
for person_handle in temp.keys():
for person_handle, person_data in temp.iteritems():
person = self.__db.get_person_from_handle(person_handle)
family_handle = person.get_main_parents_family_handle()
if family_handle:
@ -120,16 +120,16 @@ class NumberOfAncestorsReport(Report):
mother_handle = family.get_mother_handle()
if father_handle:
thisgen[father_handle] = \
thisgen.get(father_handle, 0) + temp[person_handle]
thisgen.get(father_handle, 0) + person_data
all_people[father_handle] = \
all_people.get(father_handle, 0) + \
temp[person_handle]
person_data
if mother_handle:
thisgen[mother_handle] = \
thisgen.get(mother_handle, 0) + temp[person_handle]
thisgen.get(mother_handle, 0) + person_data
all_people[mother_handle] = \
all_people.get(mother_handle, 0) + \
temp[person_handle]
person_data
if( total_theoretical != 1 ):
percent = '(%3.2f%%)' % (( sum(all_people.values()) / (total_theoretical-1) ) * 100)
@ -142,7 +142,7 @@ class NumberOfAncestorsReport(Report):
"%(last_generation)d is %(count)d. %(percent)s") % {
'second_generation' : 2,
'last_generation' : gen,
'count' : len(all_people.keys()),
'count' : len(all_people),
'percent' : percent}
self.doc.start_paragraph('NOA-Normal')

View File

@ -49,11 +49,10 @@ class DumpGenderStats(Tool.Tool, ManagedWindow.ManagedWindow):
self.__class__)
stats_list = []
for name in dbstate.db.genderStats.stats.keys():
for name, value in dbstate.db.genderStats.stats.iteritems():
stats_list.append(
(name,)
+ dbstate.db.genderStats.stats[name]
+ value
+ (_GENDER[dbstate.db.genderStats.guess_gender(name)],)
)
@ -81,10 +80,10 @@ class DumpGenderStats(Tool.Tool, ManagedWindow.ManagedWindow):
self.show()
else:
print "\t%s\t%s\t%s\t%s\t%s\n" % (
'Name','Male','Female','Unknown','Guess')
print '\t%s'*5 % ('Name','Male','Female','Unknown','Guess')
print
for entry in stats_list:
print "\t%s\t%s\t%s\t%s\t%s" % entry
print '\t%s'*5 % entry
def build_menu_names(self, obj):
return (self.label,None)

View File

@ -358,8 +358,8 @@ class DisplayChart(ManagedWindow.ManagedWindow):
else:
the_map[name] = 1
unsort_list = [ (the_map[item], item) for item in the_map.keys() ]
unsort_list.sort(by_value)
unsort_list = sorted([(d, k) for k,d in the_map.iteritems()],by_value)
sort_list = [ item[1] for item in unsort_list ]
## Presently there's no Birth and Death. Instead there's Birth Date and
## Birth Place, as well as Death Date and Death Place.

View File

@ -110,9 +110,7 @@ class Merge(Tool.Tool,ManagedWindow.ManagedWindow):
use_soundex = self.options.handler.options_dict['soundex']
my_menu = gtk.ListStore(str, object)
vals = _val2label.keys()
vals.sort()
for val in vals:
for val in sorted(_val2label):
my_menu.append([_val2label[val], val])
self.soundex_obj = top.get_object("soundex")
@ -243,8 +241,7 @@ class Merge(Tool.Tool,ManagedWindow.ManagedWindow):
else:
self.map[p1key] = (p2key,chance)
self.list = self.map.keys()
self.list.sort()
self.list = sorted(self.map)
self.length = len(self.list)
self.progress.close()
@ -575,10 +572,10 @@ class ShowMatches(ManagedWindow.ManagedWindow):
GrampsDisplay.help(WIKI_HELP_PAGE , WIKI_HELP_SEC)
def redraw(self):
list = []
for p1key in self.map.keys():
for p1key, p1data in self.map.iteritems():
if p1key in self.dellist:
continue
(p2key,c) = self.map[p1key]
(p2key,c) = p1data
if p1key == p2key:
continue
list.append((c,p1key,p2key))
@ -608,8 +605,8 @@ class ShowMatches(ManagedWindow.ManagedWindow):
def on_update(self):
self.dellist[self.p2] = self.p1
for key in self.dellist.keys():
if self.dellist[key] == self.p2:
for key, data in self.dellist.iteritems():
if data == self.p2:
self.dellist[key] = self.p1
self.update()
self.redraw()

View File

@ -127,7 +127,7 @@ class PHPGedViewConnector(object):
result = []
types = []
if type == self.TYPE_ALL:
for entry in self.type_trans.keys():
for entry in self.type_trans:
types.append(entry)
else:
types.append(type)

View File

@ -349,7 +349,7 @@ class MonitoredDataType(object):
map = get_val().get_map().copy()
if ignore_values :
for key in map.keys():
for key in map:
try :
i = ignore_values.index(key)
except ValueError:
@ -535,14 +535,12 @@ class MonitoredComboSelectedEntry(object):
Fill combo with data
"""
self.store = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
keys = self.mapping.keys()
keys.sort(self.__by_value)
index = 0
for key in keys:
keys = sorted(self.mapping.keys(), self.__by_value)
for index, key in enumerate(keys):
self.store.append(row=[key, self.mapping[key]])
if key == self.active_key:
self.active_index = index
index = index + 1
def __by_value(self, first, second):
"""

View File

@ -426,9 +426,9 @@ class StyledTextBuffer(gtk.TextBuffer):
def _remove_style_from_selection(self, style):
start, end = self._get_selection()
tags = self._get_tag_from_range(start.get_offset(), end.get_offset())
for tag_name in tags.keys():
for tag_name, tag_data in tags.iteritems():
if tag_name.startswith(str(style)):
for start, end in tags[tag_name]:
for start, end in tag_data:
self.remove_tag_by_name(tag_name,
self.get_iter_at_offset(start),
self.get_iter_at_offset(end+1))

View File

@ -220,10 +220,10 @@ class StyledTextEditor(gtk.TextView):
Handle formatting shortcuts.
"""
for accel in self.action_accels.keys():
for accel, accel_name in self.action_accels.iteritems():
key, mod = gtk.accelerator_parse(accel)
if (event.keyval, event.state) == (key, mod):
action_name = self.action_accels[accel]
action_name = accel_name
action = self.action_group.get_action(action_name)
action.activate()
return True
@ -523,18 +523,18 @@ class StyledTextEditor(gtk.TextView):
def _on_buffer_style_changed(self, buffer, changed_styles):
"""Synchronize actions as the format changes at the buffer's cursor."""
for style in changed_styles.keys():
for style, style_value in changed_styles.iteritems():
if str(style) in self.toggle_actions:
action = self.action_group.get_action(str(style))
self._internal_style_change = True
action.set_active(changed_styles[style])
action.set_active(style_value)
self._internal_style_change = False
if ((style == StyledTextTagType.FONTFACE) or
(style == StyledTextTagType.FONTSIZE)):
action = self.action_group.get_action(str(style))
self._internal_style_change = True
action.set_value(changed_styles[style])
action.set_value(style_value)
self._internal_style_change = False
def _spell_change_cb(self, menuitem, language):