diff --git a/src/BaseDoc.py b/src/BaseDoc.py index 2c455747d..4d8b01190 100644 --- a/src/BaseDoc.py +++ b/src/BaseDoc.py @@ -1199,7 +1199,7 @@ class SheetParser(handler.ContentHandler): self.f.set_underline(int(attrs['underline'])) self.f.set_color(cnv2color(attrs['color'])) elif tag == "para": - if attrs.has_key('description'): + if 'description' in attrs: self.p.set_description(attrs['description']) self.p.set_right_margin(Utils.gfloat(attrs['rmargin'])) self.p.set_right_margin(Utils.gfloat(attrs['rmargin'])) diff --git a/src/Config/_GrampsIniKeys.py b/src/Config/_GrampsIniKeys.py index 340b4e973..ffa6aefd4 100644 --- a/src/Config/_GrampsIniKeys.py +++ b/src/Config/_GrampsIniKeys.py @@ -75,7 +75,7 @@ class IniKeyClient: data = {} for sec in cp.sections(): name = sec.lower() - if not data.has_key(name): + if name not in data: data[name] = {} for opt in cp.options(sec): data[name][opt.lower()] = cp.get(sec, opt).strip() diff --git a/src/DataViews/RelationView.py b/src/DataViews/RelationView.py index 677a27ec1..78ad1a345 100644 --- a/src/DataViews/RelationView.py +++ b/src/DataViews/RelationView.py @@ -1089,7 +1089,7 @@ class RelationshipView(PageView.PersonNavView): """ if button_activated(event, _LEFT_BUTTON): person, handle = pair - if self.collapsed_items.has_key(person.handle): + if person.handle in self.collapsed_items: if handle in self.collapsed_items[person.handle]: self.collapsed_items[person.handle].remove(handle) else: diff --git a/src/DateHandler/__init__.py b/src/DateHandler/__init__.py index 45161b159..4df2866c0 100644 --- a/src/DateHandler/__init__.py +++ b/src/DateHandler/__init__.py @@ -45,7 +45,7 @@ import _Date_sv # Initialize global parser try: - if LANG_TO_PARSER.has_key(LANG): + if LANG in LANG_TO_PARSER: parser = LANG_TO_PARSER[LANG]() else: parser = LANG_TO_PARSER[LANG_SHORT]() @@ -64,7 +64,7 @@ except: val = 0 try: - if LANG_TO_DISPLAY.has_key(LANG): + if LANG in LANG_TO_DISPLAY: displayer = LANG_TO_DISPLAY[LANG](val) else: displayer = LANG_TO_DISPLAY[LANG_SHORT](val) diff --git a/src/DbLoader.py b/src/DbLoader.py index 6fe5cc3ca..ff5277d4e 100644 --- a/src/DbLoader.py +++ b/src/DbLoader.py @@ -431,7 +431,7 @@ def format_maker(formats): """ format_list = [ ('auto', _('Automatically detected')) ] for format in formats: - if _KNOWN_FORMATS.has_key(format): + if format in _KNOWN_FORMATS: format_list.append( (format, _KNOWN_FORMATS[format][0]) ) type_selector = GrampsFormatWidget() diff --git a/src/DbManager.py b/src/DbManager.py index 740a82031..6cf273305 100644 --- a/src/DbManager.py +++ b/src/DbManager.py @@ -45,7 +45,7 @@ LOG = logging.getLogger(".DbManager") if os.sys.platform == "win32": _RCS_FOUND = os.system("rcs -V >nul 2>nul") == 0 - if _RCS_FOUND and not os.environ.has_key("TZ"): + if _RCS_FOUND and "TZ" not in os.environ: # RCS requires the "TZ" variable be set. os.environ["TZ"] = str(time.timezone) else: diff --git a/src/DisplayModels/_PeopleModel.py b/src/DisplayModels/_PeopleModel.py index 91fe9e31d..ab682a198 100644 --- a/src/DisplayModels/_PeopleModel.py +++ b/src/DisplayModels/_PeopleModel.py @@ -133,7 +133,7 @@ class NodeTreeMap: return (self.top_iter2path[surname], index) def has_entry(self, handle): - return self.iter2path.has_key(handle) + return handle in self.iter2path def get_iter(self, path): try: @@ -146,7 +146,7 @@ class NodeTreeMap: return None def has_top_node(self, node): - return self.sname_sub.has_key(node) + return node in self.sname_sub def find_next_node(self, node): try: @@ -167,7 +167,7 @@ class NodeTreeMap: def has_child(self, node): if node is None: return len(self.sname_sub) - if self.sname_sub.has_key(node) and len(self.sname_sub[node]) > 0: + if node in self.sname_sub and len(self.sname_sub[node]) > 0: return True return False diff --git a/src/FilterEditor/_EditRule.py b/src/FilterEditor/_EditRule.py index 17051f216..dca278c76 100644 --- a/src/FilterEditor/_EditRule.py +++ b/src/FilterEditor/_EditRule.py @@ -490,7 +490,7 @@ class EditRule(ManagedWindow.ManagedWindow): t = MyFilters(self.filterdb.get_filters('Event')) elif v == _('Source filter name:'): t = MyFilters(self.filterdb.get_filters('Source')) - elif _name2typeclass.has_key(v): + elif v in _name2typeclass: t = MySelect(_name2typeclass[v]) elif v == _('Inclusive:'): t = MyBoolean(_('Include original person')) diff --git a/src/Filters/Rules/Family/_IsBookmarked.py b/src/Filters/Rules/Family/_IsBookmarked.py index 3b5c3cb71..b7493e9e2 100644 --- a/src/Filters/Rules/Family/_IsBookmarked.py +++ b/src/Filters/Rules/Family/_IsBookmarked.py @@ -18,7 +18,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: $ +# $Id$ #------------------------------------------------------------------------- # diff --git a/src/Filters/Rules/Person/_HasCommonAncestorWith.py b/src/Filters/Rules/Person/_HasCommonAncestorWith.py index 5da05718d..658f9f7b1 100644 --- a/src/Filters/Rules/Person/_HasCommonAncestorWith.py +++ b/src/Filters/Rules/Person/_HasCommonAncestorWith.py @@ -79,5 +79,5 @@ class HasCommonAncestorWith(Rule): handle = person.handle return for_each_ancestor( db,[handle], - lambda self, handle: self.ancestor_cache.has_key(handle), + lambda self, handle: handle in self.ancestor_cache, self); diff --git a/src/Filters/Rules/Person/_HasCommonAncestorWithFilterMatch.py b/src/Filters/Rules/Person/_HasCommonAncestorWithFilterMatch.py index c2186530a..1bd4117b2 100644 --- a/src/Filters/Rules/Person/_HasCommonAncestorWithFilterMatch.py +++ b/src/Filters/Rules/Person/_HasCommonAncestorWithFilterMatch.py @@ -60,7 +60,7 @@ class HasCommonAncestorWithFilterMatch(HasCommonAncestorWith,MatchesFilter): filt.prepare(db) def init(self, h): self.ancestor_cache[h] = 1 for handle in db.get_person_handles(sort_handles=False): - if (not self.ancestor_cache.has_key (handle) + if (handle not in self.ancestor_cache and filt.apply (db, db.get_person_from_handle(handle))): for_each_ancestor(db,[handle],init,self) filt.reset() diff --git a/src/Filters/Rules/Person/_IsAncestorOf.py b/src/Filters/Rules/Person/_IsAncestorOf.py index edcc78253..65147b841 100644 --- a/src/Filters/Rules/Person/_IsAncestorOf.py +++ b/src/Filters/Rules/Person/_IsAncestorOf.py @@ -68,7 +68,7 @@ class IsAncestorOf(Rule): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_ancestor_list(self,db,person,first): if not person: diff --git a/src/Filters/Rules/Person/_IsAncestorOfFilterMatch.py b/src/Filters/Rules/Person/_IsAncestorOfFilterMatch.py index 71d16bef2..0688f9a7d 100644 --- a/src/Filters/Rules/Person/_IsAncestorOfFilterMatch.py +++ b/src/Filters/Rules/Person/_IsAncestorOfFilterMatch.py @@ -77,4 +77,4 @@ class IsAncestorOfFilterMatch(IsAncestorOf,MatchesFilter): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map diff --git a/src/Filters/Rules/Person/_IsChildOfFilterMatch.py b/src/Filters/Rules/Person/_IsChildOfFilterMatch.py index 7ebdafed9..ec8a4eb9a 100644 --- a/src/Filters/Rules/Person/_IsChildOfFilterMatch.py +++ b/src/Filters/Rules/Person/_IsChildOfFilterMatch.py @@ -63,7 +63,7 @@ class IsChildOfFilterMatch(MatchesFilter): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person): if not person: diff --git a/src/Filters/Rules/Person/_IsDescendantOf.py b/src/Filters/Rules/Person/_IsDescendantOf.py index 3655f0219..203e2d5a3 100644 --- a/src/Filters/Rules/Person/_IsDescendantOf.py +++ b/src/Filters/Rules/Person/_IsDescendantOf.py @@ -68,7 +68,7 @@ class IsDescendantOf(Rule): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person,first): if not person: diff --git a/src/Filters/Rules/Person/_IsDescendantOfFilterMatch.py b/src/Filters/Rules/Person/_IsDescendantOfFilterMatch.py index d4f7c6ccf..fcc2f330d 100644 --- a/src/Filters/Rules/Person/_IsDescendantOfFilterMatch.py +++ b/src/Filters/Rules/Person/_IsDescendantOfFilterMatch.py @@ -77,4 +77,4 @@ class IsDescendantOfFilterMatch(IsDescendantOf,MatchesFilter): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map diff --git a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOf.py b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOf.py index 5aaf0dd70..356537750 100644 --- a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOf.py +++ b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOf.py @@ -62,10 +62,10 @@ class IsLessThanNthGenerationAncestorOf(Rule): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_ancestor_list(self, handle,gen): -# if self.map.has_key(p.get_handle()) == 1: +# if p.get_handle() in self.map: # loop_error(self.orig,p) if not handle: return diff --git a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfBookmarked.py b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfBookmarked.py index c0bb9e152..8b491dd6a 100644 --- a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfBookmarked.py +++ b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfBookmarked.py @@ -70,7 +70,7 @@ class IsLessThanNthGenerationAncestorOfBookmarked(Rule): def init_ancestor_list(self, handle,gen): -# if self.map.has_key(p.get_handle()) == 1: +# if p.get_handle() in self.map: # loop_error(self.orig,p) if not handle: return diff --git a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfDefaultPerson.py b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfDefaultPerson.py index 5d7ebaaa1..0122cf68d 100644 --- a/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfDefaultPerson.py +++ b/src/Filters/Rules/Person/_IsLessThanNthGenerationAncestorOfDefaultPerson.py @@ -63,7 +63,7 @@ class IsLessThanNthGenerationAncestorOfDefaultPerson(Rule): self.apply = lambda db,p: False def init_ancestor_list(self, handle,gen): -# if self.map.has_key(p.get_handle()) == 1: +# if p.get_handle() in self.map: # loop_error(self.orig,p) if not handle: return diff --git a/src/Filters/Rules/Person/_IsLessThanNthGenerationDescendantOf.py b/src/Filters/Rules/Person/_IsLessThanNthGenerationDescendantOf.py index 790128be5..0deb5f4c5 100644 --- a/src/Filters/Rules/Person/_IsLessThanNthGenerationDescendantOf.py +++ b/src/Filters/Rules/Person/_IsLessThanNthGenerationDescendantOf.py @@ -63,7 +63,7 @@ class IsLessThanNthGenerationDescendantOf(Rule): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person,gen): if not person: diff --git a/src/Filters/Rules/Person/_IsMoreThanNthGenerationAncestorOf.py b/src/Filters/Rules/Person/_IsMoreThanNthGenerationAncestorOf.py index 9b1ffc753..d18b4f5ca 100644 --- a/src/Filters/Rules/Person/_IsMoreThanNthGenerationAncestorOf.py +++ b/src/Filters/Rules/Person/_IsMoreThanNthGenerationAncestorOf.py @@ -62,10 +62,10 @@ class IsMoreThanNthGenerationAncestorOf(Rule): self.map = [] def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_ancestor_list(self, handle,gen): -# if self.map.has_key(p.get_handle()) == 1: +# if p.get_handle() in self.map: # loop_error(self.orig,p) if not handle: return diff --git a/src/Filters/Rules/Person/_IsMoreThanNthGenerationDescendantOf.py b/src/Filters/Rules/Person/_IsMoreThanNthGenerationDescendantOf.py index 5b855ae0e..0adf84283 100644 --- a/src/Filters/Rules/Person/_IsMoreThanNthGenerationDescendantOf.py +++ b/src/Filters/Rules/Person/_IsMoreThanNthGenerationDescendantOf.py @@ -63,7 +63,7 @@ class IsMoreThanNthGenerationDescendantOf(Rule): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person,gen): if not person: diff --git a/src/Filters/Rules/Person/_IsParentOfFilterMatch.py b/src/Filters/Rules/Person/_IsParentOfFilterMatch.py index 2149c223e..5b71ddb72 100644 --- a/src/Filters/Rules/Person/_IsParentOfFilterMatch.py +++ b/src/Filters/Rules/Person/_IsParentOfFilterMatch.py @@ -63,7 +63,7 @@ class IsParentOfFilterMatch(MatchesFilter): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person): for fam_id in person.get_parent_family_handle_list(): diff --git a/src/Filters/Rules/Person/_IsSiblingOfFilterMatch.py b/src/Filters/Rules/Person/_IsSiblingOfFilterMatch.py index 644ec9036..aacbf1858 100644 --- a/src/Filters/Rules/Person/_IsSiblingOfFilterMatch.py +++ b/src/Filters/Rules/Person/_IsSiblingOfFilterMatch.py @@ -62,7 +62,7 @@ class IsSiblingOfFilterMatch(MatchesFilter): self.map = {} def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,person): if not person: diff --git a/src/Filters/Rules/Person/_RelationshipPathBetween.py b/src/Filters/Rules/Person/_RelationshipPathBetween.py index 42219b1f3..522aa9c19 100644 --- a/src/Filters/Rules/Person/_RelationshipPathBetween.py +++ b/src/Filters/Rules/Person/_RelationshipPathBetween.py @@ -89,7 +89,7 @@ class RelationshipPathBetween(Rule): self.apply_filter(rank+1,family.get_mother_handle(),plist,pmap) def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map def init_list(self,p1_handle,p2_handle): firstMap = {} @@ -129,5 +129,5 @@ class RelationshipPathBetween(Rule): def get_intersection(self,target, map1, map2): for e in map1.keys(): - if map2.has_key(e): + if e in map2: target[e] = map2[e] diff --git a/src/Filters/Rules/Person/_RelationshipPathBetweenBookmarks.py b/src/Filters/Rules/Person/_RelationshipPathBetweenBookmarks.py index 4990dc4a2..57f38a551 100644 --- a/src/Filters/Rules/Person/_RelationshipPathBetweenBookmarks.py +++ b/src/Filters/Rules/Person/_RelationshipPathBetweenBookmarks.py @@ -172,6 +172,6 @@ class RelationshipPathBetweenBookmarks(Rule): pass def apply(self,db,person): - return self.map.has_key(person.handle) + return person.handle in self.map diff --git a/src/Filters/_FilterParser.py b/src/Filters/_FilterParser.py index d70636464..4a1f19b9a 100644 --- a/src/Filters/_FilterParser.py +++ b/src/Filters/_FilterParser.py @@ -57,7 +57,7 @@ class FilterParser(handler.ContentHandler): def startElement(self, tag, attrs): if tag == "object": - if attrs.has_key('type'): + if 'type' in attrs: self.namespace = attrs['type'] if self.namespace == 'Media': self.namespace = 'MediaObject' @@ -66,7 +66,7 @@ class FilterParser(handler.ContentHandler): elif tag == "filter": self.f = GenericFilterFactory(self.namespace)() self.f.set_name(attrs['name']) - if attrs.has_key('function'): + if 'function' in attrs: try: if int(attrs['function']): op = 'or' @@ -75,9 +75,9 @@ class FilterParser(handler.ContentHandler): except ValueError: op = attrs['function'] self.f.set_logical_op(op) - if attrs.has_key('invert'): + if 'invert' in attrs: self.f.set_invert(attrs['invert']) - if attrs.has_key('comment'): + if 'comment' in attrs: self.f.set_comment(attrs['comment']) self.gfilter_list.add(self.namespace, self.f) elif tag == "rule": diff --git a/src/GrampsDbUtils/_GedcomInfo.py b/src/GrampsDbUtils/_GedcomInfo.py index 58039b77f..c558716aa 100644 --- a/src/GrampsDbUtils/_GedcomInfo.py +++ b/src/GrampsDbUtils/_GedcomInfo.py @@ -237,12 +237,12 @@ class GedcomDescription: self.tag2gramps_map[tag] = value def gramps2tag(self,key): - if self.gramps2tag_map.has_key(key): + if key in self.gramps2tag_map: return self.gramps2tag_map[key] return "" def tag2gramps(self,key): - if self.tag2gramps_map.has_key(key): + if key in self.tag2gramps_map: return self.tag2gramps_map[key] return key @@ -267,7 +267,7 @@ class GedcomInfoDB: self.map[name] = obj def get_description(self, name): - if self.map.has_key(name): + if name in self.map: return self.map[name] return self.standard diff --git a/src/GrampsDbUtils/_GedcomParse.py b/src/GrampsDbUtils/_GedcomParse.py index b82db9f30..937ded70b 100644 --- a/src/GrampsDbUtils/_GedcomParse.py +++ b/src/GrampsDbUtils/_GedcomParse.py @@ -2827,7 +2827,7 @@ class GedcomParser(UpdateCallback): @type state: CurrentState """ if state.event.get_type().is_custom(): - if GED_2_GRAMPS.has_key(line.data): + if line.data in GED_2_GRAMPS: name = gen.lib.EventType(GED_2_GRAMPS[line.data]) else: val = self.gedsource.tag2gramps(line.data) @@ -2842,8 +2842,8 @@ class GedcomParser(UpdateCallback): state.event.set_type(name) else: try: - if not GED_2_GRAMPS.has_key(line.data) and \ - not GED_2_FAMILY.has_key(line.data) and \ + if line.data not in GED_2_GRAMPS and \ + line.data not in GED_2_FAMILY and \ line.data[0] != 'Y': state.event.set_description(line.data) except IndexError: @@ -3802,7 +3802,7 @@ class GedcomParser(UpdateCallback): @type state: CurrentState """ if state.attr.get_type() == "": - if GED_2_GRAMPS.has_key(line.data): + if line.data in GED_2_GRAMPS: name = GED_2_GRAMPS[line.data] else: val = self.gedsource.tag2gramps(line.data) diff --git a/src/GrampsDbUtils/_GedcomStageOne.py b/src/GrampsDbUtils/_GedcomStageOne.py index 742543a79..2f0ad38bf 100644 --- a/src/GrampsDbUtils/_GedcomStageOne.py +++ b/src/GrampsDbUtils/_GedcomStageOne.py @@ -79,7 +79,7 @@ def add_to_list(table, key, value): Add the value to the table entry associated with key. If the entry does not exist, it is added. """ - if table.has_key(key): + if key in table: table[key].append(value) else: table[key] = [value] diff --git a/src/GrampsDbUtils/_GedcomUtils.py b/src/GrampsDbUtils/_GedcomUtils.py index 53a16c66e..a82e06626 100644 --- a/src/GrampsDbUtils/_GedcomUtils.py +++ b/src/GrampsDbUtils/_GedcomUtils.py @@ -183,7 +183,7 @@ class IdMapper: def get_translate(self, gid): gid = self.clean(gid) - if self.swap.has_key(gid): + if gid in self.swap: return self.swap[gid] else: if self.trans.get(str(gid)): diff --git a/src/GrampsDbUtils/_GrampsBSDDB.py b/src/GrampsDbUtils/_GrampsBSDDB.py index 90fbf941b..d3b567cdb 100644 --- a/src/GrampsDbUtils/_GrampsBSDDB.py +++ b/src/GrampsDbUtils/_GrampsBSDDB.py @@ -477,7 +477,7 @@ class GrampsBSDDB(GrampsDbBase, UpdateCallback): if gstats is None: # New database. Set up the current version. self.metadata.put('version', _DBVERSION, txn=the_txn) - elif not self.metadata.has_key('version'): + elif 'version' not in self.metadata: # Not new database, but the version is missing. # Use 0, but it is likely to fail anyway. self.metadata.put('version', 0, txn=the_txn) @@ -874,7 +874,7 @@ class GrampsBSDDB(GrampsDbBase, UpdateCallback): # from the primary object 'obj, or any of its secondary objects. handle = obj.handle - update = self.reference_map_primary_map.has_key(str(handle)) + update = str(handle) in self.reference_map_primary_map if update: # First thing to do is get hold of all rows in the reference_map @@ -1330,7 +1330,7 @@ class GrampsBSDDB(GrampsDbBase, UpdateCallback): pass def __get_obj_from_gramps_id(self, val, tbl, class_init, prim_tbl): - if tbl.has_key(str(val)): + if str(val) in tbl: data = tbl.get(str(val), txn=self.txn) obj = class_init() ### FIXME: this is a dirty hack that works without no @@ -1476,7 +1476,7 @@ class GrampsBSDDB(GrampsDbBase, UpdateCallback): obj = class_type() hndl = str(hndl) new = True - if dmap.has_key(hndl): + if hndl in dmap: data = dmap.get(hndl, txn=self.txn) obj.unserialize(data) #references create object with id None before object is really made diff --git a/src/GrampsDbUtils/_ReadXML.py b/src/GrampsDbUtils/_ReadXML.py index ab52a2f1e..0cd4619b3 100644 --- a/src/GrampsDbUtils/_ReadXML.py +++ b/src/GrampsDbUtils/_ReadXML.py @@ -884,7 +884,7 @@ class GrampsParser(UpdateCallback): # Parse witnesses created by older gramps self.in_witness = True self.witness_comment = "" - if attrs.has_key('name'): + if 'name' in attrs: note = gen.lib.Note() note.handle = Utils.create_id() note.set(_("Witness name: %s") % attrs['name']) @@ -901,7 +901,7 @@ class GrampsParser(UpdateCallback): handle = attrs['hlink'].replace('_', '') person, new = self.db.find_person_from_handle(handle, self.trans) except KeyError: - if attrs.has_key('ref'): + if 'ref' in attrs: person, new = self.find_person_by_gramps_id( self.map_gid(attrs["ref"])) else: @@ -955,7 +955,7 @@ class GrampsParser(UpdateCallback): self.eventref = gen.lib.EventRef() self.eventref.ref = attrs['hlink'].replace('_', '') self.eventref.private = bool(attrs.get('priv')) - if attrs.has_key('role'): + if 'role' in attrs: self.eventref.role.set_from_xml_str(attrs['role']) # We count here on events being already parsed prior to parsing @@ -984,7 +984,7 @@ class GrampsParser(UpdateCallback): self.attribute = gen.lib.Attribute() self.attribute.private = bool(attrs.get("priv")) self.attribute.type = gen.lib.AttributeType() - if attrs.has_key('type'): + if 'type' in attrs: self.attribute.type.set_from_xml_str(attrs["type"]) self.attribute.value = attrs.get("value", '') if self.photo: @@ -1071,7 +1071,7 @@ class GrampsParser(UpdateCallback): self.name_formats.append((number, name, fmt_str, active)) def remap_name_format(self, old_number): - if self.name_formats_map.has_key(old_number): # This should not happen + if old_number in self.name_formats_map: # This should not happen return self.name_formats_map[old_number] # Find the lowest new number not taken yet: new_number = -1 @@ -1109,7 +1109,7 @@ class GrampsParser(UpdateCallback): self.person.marker.set_from_xml_str(attrs.get("marker", '')) def start_people(self, attrs): - if attrs.has_key('home'): + if 'home' in attrs: self.home = attrs['home'].replace('_', '') def start_father(self, attrs): @@ -1144,7 +1144,7 @@ class GrampsParser(UpdateCallback): # Here we are handling the old XML, in which # frel and mrel belonged to the "childof" tag # If that were the case then childref_map has the childref ready - if self.childref_map.has_key((self.family.handle, handle)): + if (self.family.handle, handle) in self.childref_map: self.family.add_child_ref( self.childref_map[(self.family.handle, handle)]) @@ -1176,7 +1176,7 @@ class GrampsParser(UpdateCallback): self.person.add_person_ref(self.personref) def start_url(self, attrs): - if not attrs.has_key("href"): + if "href" not in attrs: return url = gen.lib.Url() url.path = attrs["href"] @@ -1211,7 +1211,7 @@ class GrampsParser(UpdateCallback): # GRAMPS LEGACY: the type now belongs to tag # Here we need to support old format of - if attrs.has_key('type'): + if 'type' in attrs: self.family.type.set_from_xml_str(attrs["type"]) # Old and new markers: complete=1 and marker=word both have to work @@ -1221,12 +1221,12 @@ class GrampsParser(UpdateCallback): self.family.marker.set_from_xml_str(attrs.get("marker", '')) def start_rel(self, attrs): - if attrs.has_key('type'): + if 'type' in attrs: self.family.type.set_from_xml_str(attrs["type"]) def start_file(self, attrs): self.object.mime = attrs['mime'] - if attrs.has_key('description'): + if 'description' in attrs: self.object.desc = attrs['description'] else: self.object.desc = "" @@ -1251,9 +1251,9 @@ class GrampsParser(UpdateCallback): # frel and mrel belonged to the "childof" tag mrel = gen.lib.ChildRefType() frel = gen.lib.ChildRefType() - if attrs.has_key('mrel'): + if 'mrel' in attrs: mrel.set_from_xml_str(attrs['mrel']) - if attrs.has_key('frel'): + if 'frel' in attrs: frel.set_from_xml_str(attrs['frel']) childref = gen.lib.ChildRef() @@ -1292,11 +1292,11 @@ class GrampsParser(UpdateCallback): # check if these pointers need to be remapped # and set the name attributes - if self.name_formats_map.has_key(sort_as): + if sort_as in self.name_formats_map: self.name.sort_as = self.name_formats_map[sort_as] else: self.name.sort_as = sort_as - if self.name_formats_map.has_key(display_as): + if display_as in self.name_formats_map: self.name.sort_as = self.name_formats_map[display_as] else: self.name_display_as = display_as @@ -1739,12 +1739,12 @@ class GrampsParser(UpdateCallback): except: rng_day = 0 - if attrs.has_key("cformat"): + if "cformat" in attrs: cal = gen.lib.Date.calendar_names.index(attrs['calendar']) else: cal = gen.lib.Date.CAL_GREGORIAN - if attrs.has_key('quality'): + if 'quality' in attrs: val = attrs['quality'] if val == 'estimated': qual = gen.lib.Date.QUAL_ESTIMATED @@ -1794,12 +1794,12 @@ class GrampsParser(UpdateCallback): except: day = 0 - if attrs.has_key("cformat"): + if "cformat" in attrs: cal = gen.lib.Date.calendar_names.index(attrs['cformat']) else: cal = gen.lib.Date.CAL_GREGORIAN - if attrs.has_key('type'): + if 'type' in attrs: val = attrs['type'] if val == "about": mod = gen.lib.Date.MOD_ABOUT @@ -1810,7 +1810,7 @@ class GrampsParser(UpdateCallback): else: mod = gen.lib.Date.MOD_NONE - if attrs.has_key('quality'): + if 'quality' in attrs: val = attrs['quality'] if val == 'estimated': qual = gen.lib.Date.QUAL_ESTIMATED @@ -1840,11 +1840,11 @@ class GrampsParser(UpdateCallback): date_value.set_as_text(attrs['val']) def start_created(self, attrs): - if attrs.has_key('sources'): + if 'sources' in attrs: self.num_srcs = int(attrs['sources']) else: self.num_srcs = 0 - if attrs.has_key('places'): + if 'places' in attrs: self.num_places = int(attrs['places']) else: self.num_places = 0 @@ -2039,7 +2039,7 @@ class GrampsParser(UpdateCallback): ##handle = None ##if self.place_ref is None: #todo, add place_ref in start and init ## #legacy cody? I see no reason for this, but it was present - ## if self.place_map.has_key(tag): + ## if tag in self.place_map: ## place = self.place_map[tag] ## handle = place.get_handle() ## place = None @@ -2377,10 +2377,10 @@ class VersionParser: def __element_handler(self, tag, attrs): " Handle XML elements " - if tag == "database" and attrs.has_key('xmlns'): + if tag == "database" and 'xmlns' in attrs: xmlns = attrs.get('xmlns') self.__xml_version = xmlns.split('/')[4] - elif tag == "created" and attrs.has_key('version'): + elif tag == "created" and 'version' in attrs: self.__gramps_version = attrs.get('version') def get_xmlns_version(self): diff --git a/src/GrampsDbUtils/_WriteGedcom.py b/src/GrampsDbUtils/_WriteGedcom.py index 2179196d7..989fee50c 100644 --- a/src/GrampsDbUtils/_WriteGedcom.py +++ b/src/GrampsDbUtils/_WriteGedcom.py @@ -210,10 +210,10 @@ def make_date(subdate, calendar, mode, quality): if prefix: retval = "%s %s" % (prefix, retval) - if DATE_MODIFIER.has_key(mode): + if mode in DATE_MODIFIER: retval = "%s %s" % (DATE_MODIFIER[mode], retval) - if DATE_QUALITY.has_key(quality): + if quality in DATE_QUALITY: retval = "%s %s" % (DATE_QUALITY[quality], retval) return retval diff --git a/src/GrampsDbUtils/importdbdir.py b/src/GrampsDbUtils/importdbdir.py index cf0023e67..3d4a7bb0d 100644 --- a/src/GrampsDbUtils/importdbdir.py +++ b/src/GrampsDbUtils/importdbdir.py @@ -247,7 +247,7 @@ def import_table(id_table, add_obj, find_next_gramps_id, # Then we check gramps_id for conflicts and change it if needed gramps_id = str(obj.gramps_id) - if id_table.has_key(gramps_id): + if gramps_id in id_table: gramps_id = find_next_gramps_id() obj.gramps_id = gramps_id add_obj(obj, trans) diff --git a/src/GrampsLogger/_ErrorReportAssistant.py b/src/GrampsLogger/_ErrorReportAssistant.py index 8539ac6de..8d06a1aaf 100644 --- a/src/GrampsLogger/_ErrorReportAssistant.py +++ b/src/GrampsLogger/_ErrorReportAssistant.py @@ -54,7 +54,7 @@ class ErrorReportAssistant: self.w.show() def on_page_changed(self, obj,page,data=None): - if self.cb.has_key(page): + if page in self.cb: self.cb[page]() def complete(self): diff --git a/src/ListModel.py b/src/ListModel.py index 4e7cbe7f7..c69d9dbd6 100644 --- a/src/ListModel.py +++ b/src/ListModel.py @@ -160,7 +160,7 @@ class ListModel: Callback executed when the text of the cell renderer has changed """ self.model[path][col] = new_text - if self.function.has_key(col): + if col in self.function: self.function[col](int(path), new_text) def unselect(self): diff --git a/src/Merge/_MergeSource.py b/src/Merge/_MergeSource.py index eb8cd0aea..a423cd926 100644 --- a/src/Merge/_MergeSource.py +++ b/src/Merge/_MergeSource.py @@ -150,7 +150,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(): - if not src1_map.has_key(key): + if key not in src1_map: src1_map[key] = src2_map[key] # replace references in other objetcs diff --git a/src/Mime/_PythonMime.py b/src/Mime/_PythonMime.py index 3103f7faf..6e2981cfd 100644 --- a/src/Mime/_PythonMime.py +++ b/src/Mime/_PythonMime.py @@ -64,7 +64,7 @@ def mime_type_is_defined(mime_type): """ Return True if a description for a mime type exists. """ - return _type_map.has_key(mime_type) + return mime_type in _type_map def find_mime_type_pixbuf(mime_type): return gtk.gdk.pixbuf_new_from_file(const.ICON) diff --git a/src/Mime/_WinMime.py b/src/Mime/_WinMime.py index 4418e0acf..4b2431a23 100644 --- a/src/Mime/_WinMime.py +++ b/src/Mime/_WinMime.py @@ -153,7 +153,7 @@ def _get_extension(mime_type): 'application/abiword' : '.abw', 'application/rtf' : '.rtf', } - if extmap.has_key(mime_type): + if mime_type in extmap: extension = extmap[mime_type] return extension diff --git a/src/Models/_FastModel.py b/src/Models/_FastModel.py index 4cd6f8df4..85b1445d7 100644 --- a/src/Models/_FastModel.py +++ b/src/Models/_FastModel.py @@ -132,7 +132,7 @@ class FastModel(gtk.GenericTreeModel): # If we are at the second level we first check to see if we # have the number of children of this row already in the cache - if not self._num_children_cache.has_key(rowref[0]): + if rowref[0] not in self._num_children_cache: # If not calculate the number of children and put it in the cache. self._num_children_cache[rowref[0]] = self._cursor.get_n_children([rowref[0],]) @@ -179,7 +179,7 @@ class FastModel(gtk.GenericTreeModel): if rowref: # If we are at the second level we first check to see if we # have the number of children of this row already in the cache - if not self._num_children_cache.has_key(rowref[0]): + if rowref[0] not in self._num_children_cache: # If not calculate the number of children and put it in the cache. self._num_children_cache[rowref[0]] = self._cursor.get_n_children([rowref[0],]) diff --git a/src/Models/_ListCursor.py b/src/Models/_ListCursor.py index 427e1ee60..e79a0ef89 100644 --- a/src/Models/_ListCursor.py +++ b/src/Models/_ListCursor.py @@ -108,7 +108,7 @@ class ListCursor(object): """ # See if the record is in the cache. - if self._object_cache.has_key(index) and use_cache: + if index in self._object_cache and use_cache: ret = self._object_cache[index] # If the record is not in the cache or we are ignoring the diff --git a/src/Models/_PathCursor.py b/src/Models/_PathCursor.py index 7bbcfdb3e..e8e1089a9 100644 --- a/src/Models/_PathCursor.py +++ b/src/Models/_PathCursor.py @@ -167,7 +167,7 @@ class PathCursor(object): """ # See if the record is in the cache. - if self._object_cache.has_key(index) and use_cache: + if index in self._object_cache and use_cache: ret = self._object_cache[index]['primary'] # If the record is not in the cache or we are ignoring the @@ -262,8 +262,8 @@ class PathCursor(object): # First check to see if the record has already # been fetched. - if self._object_cache.has_key(path[0]) and \ - self._object_cache[path[0]].has_key(path[1]): + if path[0] in self._object_cache and \ + path[1] in self._object_cache[path[0]]: # return record from cache. ret = self._object_cache[path[0]][path[1]] diff --git a/src/PageView.py b/src/PageView.py index 53ae62c6a..5975175a7 100644 --- a/src/PageView.py +++ b/src/PageView.py @@ -812,7 +812,7 @@ class ListView(BookMarkView): for pair in [pair for pair in self.column_order() if pair[0]]: name = self.colinfo[pair[1]] - if self.model and self.model.__dict__.has_key('marker_color_column'): + if self.model and 'marker_color_column' in self.model.__dict__: mcol = self.model.marker_color_column column = gtk.TreeViewColumn(name, self.renderer, text=pair[1], foreground=mcol) diff --git a/src/PluginUtils/_MenuOptions.py b/src/PluginUtils/_MenuOptions.py index fae021f34..fdd709e0c 100644 --- a/src/PluginUtils/_MenuOptions.py +++ b/src/PluginUtils/_MenuOptions.py @@ -699,7 +699,7 @@ class Menu: @type option: Option @return: nothing """ - if not self.__options.has_key(category): + if category not in self.__options: self.__categories.append(category) self.__options[category] = [] self.__options[category].append((name, option)) diff --git a/src/PluginUtils/_Options.py b/src/PluginUtils/_Options.py index 516a6c45b..14fdf4082 100644 --- a/src/PluginUtils/_Options.py +++ b/src/PluginUtils/_Options.py @@ -96,7 +96,7 @@ class OptionList: @param name: name of the option to remove. @type name: str """ - if self.options.has_key(name): + if name in self.options: del self.options[name] def get_option(self, name): @@ -268,7 +268,7 @@ class OptionParser(handler.ContentHandler): self.o = {} elif tag == "option": self.oname = attrs['name'] - if attrs.has_key('length'): + if 'length' in attrs: self.an_o = [] else: self.an_o = attrs['value'] @@ -335,7 +335,7 @@ class OptionHandler: options = self.saved_option_list.get_options() bad_opts = [] for option_name in options.keys(): - if not self.options_dict.has_key(option_name): + 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, self.option_list_collection.filename) diff --git a/src/PluginUtils/_PluginDialogs.py b/src/PluginUtils/_PluginDialogs.py index f4e4ebe09..7234f6abf 100644 --- a/src/PluginUtils/_PluginDialogs.py +++ b/src/PluginUtils/_PluginDialogs.py @@ -160,7 +160,7 @@ class PluginDialog(ManagedWindow.ManagedWindow): store, node = self.selection.get_selected() if node: path = store.get_path(node) - if not node or not self.imap.has_key(path): + if not node or path not in self.imap: return data = self.imap[path] @@ -200,7 +200,7 @@ class PluginDialog(ManagedWindow.ManagedWindow): category = _UNSUPPORTED else: category = categories[plugin[3]] - if item_hash.has_key(category): + if category in item_hash: item_hash[category].append(plugin) else: item_hash[category] = [plugin] @@ -212,7 +212,7 @@ class PluginDialog(ManagedWindow.ManagedWindow): key_list.reverse() prev = None - if item_hash.has_key(_UNSUPPORTED): + if _UNSUPPORTED in item_hash: key = _UNSUPPORTED data = item_hash[key] node = self.store.insert_after(None, prev) diff --git a/src/PluginUtils/_PluginWindows.py b/src/PluginUtils/_PluginWindows.py index e0fd53f80..21d1670fa 100644 --- a/src/PluginUtils/_PluginWindows.py +++ b/src/PluginUtils/_PluginWindows.py @@ -400,7 +400,7 @@ class ToolManagedWindowBase(ManagedWindow.ManagedWindow): before the report executes. This task should only be called in the add_user_options task.""" - if self.frames.has_key(frame_name): + if frame_name in self.frames: self.frames[frame_name].append((label_text, widget)) else: self.frames[frame_name] = [(label_text, widget)] diff --git a/src/Relationship.py b/src/Relationship.py index e1a6ec023..69fb6833a 100644 --- a/src/Relationship.py +++ b/src/Relationship.py @@ -803,7 +803,7 @@ class RelationshipCalculator: self.map_handle = orig_person.handle for person_handle in secondMap.keys() : - if firstMap.has_key(person_handle) : + if person_handle in firstMap : com = [] #a common ancestor for rel1, fam1 in zip(firstMap[person_handle][0], @@ -903,13 +903,13 @@ class RelationshipCalculator: store = True #normally we store all parents if stoprecursemap: store = False #but not if a stop map given - if stoprecursemap.has_key(person.handle): + if person.handle in stoprecursemap: commonancestor = True store = True #add person to the map, take into account that person can be obtained #from different sides - if pmap.has_key(person.handle): + if person.handle in pmap: #person is already a grandparent in another branch, we already have # had lookup of all parents, we call that a crosslink if not stoprecursemap: @@ -997,7 +997,7 @@ class RelationshipCalculator: if ref.ref != person.handle] addstr = self.REL_SIBLING for chandle in child_list : - if pmap.has_key(chandle) : + if chandle in pmap : pmap[chandle][0] += [rel_str + addstr] pmap[chandle][1] += [rel_fam_new] #person is already a grandparent in another branch diff --git a/src/ReportBase/_DocReportDialog.py b/src/ReportBase/_DocReportDialog.py index 93b64af82..2f266180c 100644 --- a/src/ReportBase/_DocReportDialog.py +++ b/src/ReportBase/_DocReportDialog.py @@ -186,7 +186,7 @@ class DocReportDialog(ReportDialog): def html_file_enable(self, obj): active = obj.get_active() text = unicode(obj.get_model()[active][0]) - if _template_map.has_key(text): + if text in _template_map: if _template_map[text]: self.html_fileentry.set_sensitive(0) else: @@ -266,7 +266,7 @@ class DocReportDialog(ReportDialog): model = self.template_combo.get_model() text = unicode(model[self.template_combo.get_active()][0]) - if _template_map.has_key(text): + if text in _template_map: if text == _user_template: self.template_name = self.html_fileentry.get_full_path(0) else: diff --git a/src/ReportBase/_ReportDialog.py b/src/ReportBase/_ReportDialog.py index 525882118..eeff9b5d1 100644 --- a/src/ReportBase/_ReportDialog.py +++ b/src/ReportBase/_ReportDialog.py @@ -236,7 +236,7 @@ class ReportDialog(ManagedWindow.ManagedWindow): before the report executes. This task should only be called in the add_user_options task.""" - if self.frames.has_key(frame_name): + if frame_name in self.frames: self.frames[frame_name].append((label_text, widget)) else: self.frames[frame_name] = [(label_text, widget)] @@ -389,7 +389,7 @@ class ReportDialog(ManagedWindow.ManagedWindow): row = row + 1 def setup_main_options(self): - if self.frames.has_key(""): + if "" in self.frames: flist = self.frames[""] for (text, widget) in flist: label = gtk.Label("%s" % text) diff --git a/src/TipOfDay.py b/src/TipOfDay.py index f39251838..928561751 100644 --- a/src/TipOfDay.py +++ b/src/TipOfDay.py @@ -167,7 +167,7 @@ class TipParser: self.tlist = [] # Skip all tips with xml:lang attribute, as they are # already in the translation catalog - self.skip = attrs.has_key('xml:lang') + self.skip = 'xml:lang' in attrs elif tag != "tips": # let all the other tags through, except for the "tips" tag self.tlist.append("<%s>" % tag) diff --git a/src/Utils.py b/src/Utils.py index 3033d8178..afec39aa9 100644 --- a/src/Utils.py +++ b/src/Utils.py @@ -1114,7 +1114,7 @@ def launch(prog_str, path): if len(prog_data) > 1: for item in prog_data: - if subval.has_key(item): + if item in subval: need_path = False value = subval[item] else: diff --git a/src/ViewManager.py b/src/ViewManager.py index e465e6069..b201f3e03 100644 --- a/src/ViewManager.py +++ b/src/ViewManager.py @@ -1386,7 +1386,7 @@ class ViewManager: category = _UNSUPPORTED else: category = categories[item[3]] - if hash_data.has_key(category): + if category in hash_data: hash_data[category].append( (item[0], item[1], item[2], item[4], item[3], item[10])) else: @@ -1413,7 +1413,7 @@ class ViewManager: # If there are any unsupported items we add separator # and the unsupported category at the end of the menu - if hash_data.has_key(_UNSUPPORTED): + if _UNSUPPORTED in hash_data: ofile.write('') ofile.write('' % _UNSUPPORTED) actions.append((_UNSUPPORTED, None, _UNSUPPORTED)) diff --git a/src/ansel_utf8.py b/src/ansel_utf8.py index 1177ba5c9..6e3036922 100644 --- a/src/ansel_utf8.py +++ b/src/ansel_utf8.py @@ -332,10 +332,10 @@ def ansel_to_utf8(s): head = ' ' s = s[1:] else: - if _twobyte.has_key(s[0:2]): + if s[0:2] in _twobyte: head = _twobyte[s[0:2]] s = s[2:] - elif _onebyte.has_key(s[0]): + elif s[0] in _onebyte: head = _onebyte[s[0]] s = s[1:] elif s[0] in _acombiners.keys(): diff --git a/src/docgen/GtkPrint.py b/src/docgen/GtkPrint.py index e803d5b16..ada52d377 100644 --- a/src/docgen/GtkPrint.py +++ b/src/docgen/GtkPrint.py @@ -132,7 +132,7 @@ def paperstyle_to_pagesetup(paper_style): # All sizes not included in the translation table (even if a standard size) # are handled as custom format, because we are not intelligent enough. - if gramps_to_gtk.has_key(gramps_paper_name): + if gramps_paper_name in gramps_to_gtk: paper_size = gtk.PaperSize(gramps_to_gtk[gramps_paper_name]) log.debug("Selected paper size: %s" % gramps_to_gtk[gramps_paper_name]) else: @@ -257,7 +257,7 @@ class PrintPreview: ##log.debug("Page number %d doesn't exist." % page_no) ##page_no = 0 - ##if not self._page_surfaces.has_key(page_no): + ##if page_no not in self._page_surfaces: ##surface = self.create_surface() ##cr = cairo.Context(surface) diff --git a/src/docgen/RTFDoc.py b/src/docgen/RTFDoc.py index af6764938..a1aecdf63 100644 --- a/src/docgen/RTFDoc.py +++ b/src/docgen/RTFDoc.py @@ -100,11 +100,11 @@ class RTFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc): style = style_sheet.get_paragraph_style(style_name) fgcolor = style.get_font().get_color() bgcolor = style.get_background_color() - if not self.color_map.has_key(fgcolor): + if fgcolor not in self.color_map: self.color_map[fgcolor] = index self.f.write('\\red%d\\green%d\\blue%d;' % fgcolor) index = index + 1 - if not self.color_map.has_key(bgcolor): + if bgcolor not in self.color_map: self.f.write('\\red%d\\green%d\\blue%d;' % bgcolor) self.color_map[bgcolor] = index index = index + 1 diff --git a/src/gen/db/base.py b/src/gen/db/base.py index 0e5142157..5a4467c61 100644 --- a/src/gen/db/base.py +++ b/src/gen/db/base.py @@ -650,7 +650,7 @@ class GrampsDbBase(Callback): person ID prefix. """ index = self.person_prefix % self.pmap_index - while self.id_trans.has_key(str(index)): + while str(index) in self.id_trans: self.pmap_index += 1 index = self.person_prefix % self.pmap_index self.pmap_index += 1 @@ -662,7 +662,7 @@ class GrampsDbBase(Callback): place ID prefix. """ index = self.place_prefix % self.lmap_index - while self.pid_trans.has_key(str(index)): + while str(index) in self.pid_trans: self.lmap_index += 1 index = self.place_prefix % self.lmap_index self.lmap_index += 1 @@ -674,7 +674,7 @@ class GrampsDbBase(Callback): event ID prefix. """ index = self.event_prefix % self.emap_index - while self.eid_trans.has_key(str(index)): + while str(index) in self.eid_trans: self.emap_index += 1 index = self.event_prefix % self.emap_index self.emap_index += 1 @@ -686,7 +686,7 @@ class GrampsDbBase(Callback): off the media object ID prefix. """ index = self.mediaobject_prefix % self.omap_index - while self.oid_trans.has_key(str(index)): + while str(index) in self.oid_trans: self.omap_index += 1 index = self.mediaobject_prefix % self.omap_index self.omap_index += 1 @@ -698,7 +698,7 @@ class GrampsDbBase(Callback): source ID prefix. """ index = self.source_prefix % self.smap_index - while self.sid_trans.has_key(str(index)): + while str(index) in self.sid_trans: self.smap_index += 1 index = self.source_prefix % self.smap_index self.smap_index += 1 @@ -710,7 +710,7 @@ class GrampsDbBase(Callback): family ID prefix. """ index = self.family_prefix % self.fmap_index - while self.fid_trans.has_key(str(index)): + while str(index) in self.fid_trans: self.fmap_index += 1 index = self.family_prefix % self.fmap_index self.fmap_index += 1 @@ -722,7 +722,7 @@ class GrampsDbBase(Callback): off the repository ID prefix. """ index = self.repository_prefix % self.rmap_index - while self.rid_trans.has_key(str(index)): + while str(index) in self.rid_trans: self.rmap_index += 1 index = self.repository_prefix % self.rmap_index self.rmap_index += 1 @@ -734,7 +734,7 @@ class GrampsDbBase(Callback): note ID prefix. """ index = self.note_prefix % self.nmap_index - while self.nid_trans.has_key(str(index)): + while str(index) in self.nid_trans: self.nmap_index += 1 index = self.note_prefix % self.nmap_index self.nmap_index += 1 @@ -826,7 +826,7 @@ class GrampsDbBase(Callback): obj = class_type() handle = str(handle) new = True - if dmap.has_key(handle): + if handle in dmap: obj.unserialize(dmap.get(handle)) #references create object with id None before object is really made if obj.gramps_id is not None: @@ -839,7 +839,7 @@ class GrampsDbBase(Callback): def __check_from_handle(self, handle, transaction, class_type, dmap, add_func, set_gid=True): handle = str(handle) - if not dmap.has_key(handle): + if handle not in dmap: obj = class_type() obj.set_handle(handle) add_func(obj, transaction, set_gid=set_gid) @@ -1283,7 +1283,7 @@ class GrampsDbBase(Callback): """ Return if a key exists in the name_group table. """ - return self.name_group.has_key(str(name)) + return str(name) in self.name_group def set_name_group_mapping(self, name, group): """ @@ -1483,7 +1483,7 @@ class GrampsDbBase(Callback): } table = key2table[obj_key] - return table.has_key(str(gramps_id)) + return str(gramps_id) in table def find_initial_person(self): person = self.get_default_person() @@ -1814,7 +1814,7 @@ class GrampsDbBase(Callback): self.emit(signal_root + '-delete', ([handle], )) del db_map[handle] else: - if db_map.has_key(handle): + if handle in db_map: signal = signal_root + '-update' else: signal = signal_root + '-add' @@ -2191,49 +2191,49 @@ class GrampsDbBase(Callback): """ Return True if the handle exists in the current Person database. """ - return self.person_map.has_key(str(handle)) + return str(handle) in self.person_map def has_event_handle(self, handle): """ Return True if the handle exists in the current Event database. """ - return self.event_map.has_key(str(handle)) + return str(handle) in self.event_map def has_source_handle(self, handle): """ Return True if the handle exists in the current Source database. """ - return self.source_map.has_key(str(handle)) + return str(handle) in self.source_map def has_place_handle(self, handle): """ Return True if the handle exists in the current Place database. """ - return self.place_map.has_key(str(handle)) + return str(handle) in self.place_map def has_family_handle(self, handle): """ Return True if the handle exists in the current Family database. """ - return self.family_map.has_key(str(handle)) + return str(handle) in self.family_map def has_object_handle(self, handle): """ Return True if the handle exists in the current MediaObjectdatabase. """ - return self.media_map.has_key(str(handle)) + return str(handle) in self.media_map def has_repository_handle(self, handle): """ Return True if the handle exists in the current Repository database. """ - return self.repository_map.has_key(str(handle)) + return str(handle) in self.repository_map def has_note_handle(self, handle): """ Return True if the handle exists in the current Note database. """ - return self.note_map.has_key(str(handle)) + return str(handle) in self.note_map def __sortbyplace(self, first, second): return locale.strcoll(self.place_map.get(str(first))[2], diff --git a/src/gen/db/dbdir.py b/src/gen/db/dbdir.py index 6408ce142..d6ba92057 100644 --- a/src/gen/db/dbdir.py +++ b/src/gen/db/dbdir.py @@ -540,7 +540,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback): if gstats is None: # New database. Set up the current version. self.metadata.put('version', _DBVERSION, txn=the_txn) - elif not self.metadata.has_key('version'): + elif 'version' not in self.metadata: # Not new database, but the version is missing. # Use 0, but it is likely to fail anyway. self.metadata.put('version', 0, txn=the_txn) @@ -930,7 +930,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback): # from the primary object 'obj' or any of its secondary objects. handle = obj.handle - update = self.reference_map_primary_map.has_key(str(handle)) + update = str(handle) in self.reference_map_primary_map if update: # First thing to do is get hold of all rows in the reference_map @@ -1373,7 +1373,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback): def __get_obj_from_gramps_id(self, val, tbl, class_init, prim_tbl): try: - if tbl.has_key(str(val)): + if str(val) in tbl: data = tbl.get(str(val), txn=self.txn) obj = class_init() ### FIXME: this is a dirty hack that works without no @@ -1532,7 +1532,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback): obj = class_type() handle = str(handle) new = True - if dmap.has_key(handle): + if handle in dmap: data = dmap.get(handle, txn=self.txn) obj.unserialize(data) #references create object with id None before object is really made diff --git a/src/gen/lib/genderstats.py b/src/gen/lib/genderstats.py index 556e28f75..e1ac9b07f 100644 --- a/src/gen/lib/genderstats.py +++ b/src/gen/lib/genderstats.py @@ -60,7 +60,7 @@ class GenderStats: return name.split (' ')[0].replace ('?', '') def name_stats (self, name): - if self.stats.has_key (name): + if name in self.stats: return self.stats[name] return (0, 0, 0) @@ -95,7 +95,7 @@ class GenderStats: def guess_gender (self, name): name = self._get_key_from_name (name) - if not name or not self.stats.has_key (name): + if not name or name not in self.stats: return Person.UNKNOWN (male, female, unknown) = self.stats[name] diff --git a/src/gen/lib/grampstype.py b/src/gen/lib/grampstype.py index e8575494c..69e73f8ff 100644 --- a/src/gen/lib/grampstype.py +++ b/src/gen/lib/grampstype.py @@ -158,7 +158,7 @@ class GrampsType(object): This method sets the type instance based on the untranslated string (obtained e.g. from XML). """ - if self._E2IMAP.has_key(value): + if value in self._E2IMAP: self.__value = self._E2IMAP[value] self.__string = u'' else: diff --git a/src/gen/lib/test/date_test.py b/src/gen/lib/test/date_test.py index f811af654..82becd0ef 100644 --- a/src/gen/lib/test/date_test.py +++ b/src/gen/lib/test/date_test.py @@ -29,7 +29,7 @@ import traceback import locale import gettext -if os.environ.has_key("GRAMPSI18N"): +if "GRAMPSI18N" in os.environ: loc = os.environ["GRAMPSI18N"] else: loc = "/usr/share/locale" diff --git a/src/gen/utils/callback.py b/src/gen/utils/callback.py index 5a726854b..57ee11bf4 100644 --- a/src/gen/utils/callback.py +++ b/src/gen/utils/callback.py @@ -239,7 +239,7 @@ class Callback(object): """A traversal function to walk through all the classes in the inheritance tree. The return is a list of all the __signals__ dictionaries.""" - if cls.__dict__.has_key('__signals__'): + if '__signals__' in cls.__dict__: signal_list = [cls.__signals__] else: signal_list = [] @@ -254,7 +254,7 @@ class Callback(object): # Build a signal dict from the list of signal dicts for s in trav(self.__class__): for (k, v) in s.items(): - if self.__signal_map.has_key(k): + if k in self.__signal_map: # signal name clash sys.stderr.write("Warning: signal name clash: %s\n" % str(k)) self.__signal_map[k] = v diff --git a/src/gramps.py b/src/gramps.py index 24ce3dd8b..b03fd4103 100644 --- a/src/gramps.py +++ b/src/gramps.py @@ -62,7 +62,7 @@ gobject.threads_init() # Load internationalization setup # #------------------------------------------------------------------------- -if os.environ.has_key("GRAMPSI18N"): +if "GRAMPSI18N" in os.environ: loc = os.environ["GRAMPSI18N"] elif os.path.exists( os.path.join(const.ROOT_DIR, "lang") ): loc = os.path.join(const.ROOT_DIR, "lang") diff --git a/src/plugins/BookReport.py b/src/plugins/BookReport.py index f1b9dad9c..e7f79f9c9 100644 --- a/src/plugins/BookReport.py +++ b/src/plugins/BookReport.py @@ -524,7 +524,7 @@ class BookParser(handler.ContentHandler): self.o = {} elif tag == "option": self.an_o_name = attrs['name'] - if attrs.has_key('length'): + if 'length' in attrs: self.an_o_value = [] else: converter = Utils.get_type_converter_by_name(attrs['type']) @@ -1165,7 +1165,7 @@ def cl_report(database, name, category, options_str_dict): if clr.show: return - if not clr.options_dict.has_key('bookname'): + if 'bookname' not in clr.options_dict: print "Please Specify a book name" return diff --git a/src/plugins/DescendTree.py b/src/plugins/DescendTree.py index 4efc5661e..0776e3691 100644 --- a/src/plugins/DescendTree.py +++ b/src/plugins/DescendTree.py @@ -73,7 +73,7 @@ class GenChart: self.max_y = 0 def get_xy(self,x,y): - if not self.array.has_key(y): + if y not in self.array: return 0 return self.array[y].get(x,0) @@ -81,7 +81,7 @@ class GenChart: self.max_x = max(self.max_x,x) self.max_y = max(self.max_y,y) - if not self.array.has_key(y): + if y not in self.array: self.array[y] = {} self.array[y][x] = value diff --git a/src/plugins/DetDescendantReport.py b/src/plugins/DetDescendantReport.py index a94b0ba12..0f702d7e0 100644 --- a/src/plugins/DetDescendantReport.py +++ b/src/plugins/DetDescendantReport.py @@ -423,7 +423,7 @@ class DetDescendantReport(Report): ReportUtils.roman(cnt).lower() + ".") cnt += 1 - if self.henry.has_key(child_handle): + if child_handle in self.henry: self.doc.write_text("%s [%s]. " % (child_name, self.henry[child_handle]), child_mark ) diff --git a/src/plugins/EndOfLineReport.py b/src/plugins/EndOfLineReport.py index 84569c15c..3ea3a62ec 100644 --- a/src/plugins/EndOfLineReport.py +++ b/src/plugins/EndOfLineReport.py @@ -114,9 +114,9 @@ class EndOfLineReport(Report): if person_is_eol: # This person is the end of a line person_handle = person.get_handle() - if not self.eol_map.has_key(gen): + if gen not in self.eol_map: self.eol_map[gen] = {} - if not self.eol_map[gen].has_key(person_handle): + if person_handle not in self.eol_map[gen]: self.eol_map[gen][person_handle] = [] self.eol_map[gen][person_handle].append( list(pedigree) ) diff --git a/src/plugins/EventCmp.py b/src/plugins/EventCmp.py index 3ff573509..61384769e 100644 --- a/src/plugins/EventCmp.py +++ b/src/plugins/EventCmp.py @@ -304,7 +304,7 @@ class DisplayChart(ManagedWindow.ManagedWindow): for ievent_ref in individual.get_event_ref_list(): ievent = self.db.get_event_from_handle(ievent_ref.ref) event_name = str(ievent.get_type()) - if the_map.has_key(event_name): + if event_name in the_map: the_map[event_name].append(ievent_ref.ref) else: the_map[event_name] = [ievent_ref.ref] @@ -318,7 +318,7 @@ class DisplayChart(ManagedWindow.ManagedWindow): else: tlist = ["",""] for ename in self.event_titles: - if the_map.has_key(ename) and len(the_map[ename]) > 0: + if ename in the_map and len(the_map[ename]) > 0: event_handle = the_map[ename][0] del the_map[ename][0] date = "" @@ -364,7 +364,7 @@ class DisplayChart(ManagedWindow.ManagedWindow): name = str(event.get_type()) if not name: break - if the_map.has_key(name): + if name in the_map: the_map[name] = the_map[name] + 1 else: the_map[name] = 1 @@ -375,11 +375,11 @@ class DisplayChart(ManagedWindow.ManagedWindow): ## Presently there's no Birth and Death. Instead there's Birth Date and ## Birth Place, as well as Death Date and Death Place. ## # Move birth and death to the begining of the list -## if the_map.has_key(_("Death")): +## if _("Death") in the_map: ## sort_list.remove(_("Death")) ## sort_list = [_("Death")] + sort_list -## if the_map.has_key(_("Birth")): +## if _("Birth") in the_map: ## sort_list.remove(_("Birth")) ## sort_list = [_("Birth")] + sort_list diff --git a/src/plugins/FindDupes.py b/src/plugins/FindDupes.py index fa587712b..ad198ae47 100644 --- a/src/plugins/FindDupes.py +++ b/src/plugins/FindDupes.py @@ -206,12 +206,12 @@ class Merge(Tool.Tool,ManagedWindow.ManagedWindow): p1 = self.db.get_person_from_handle(p1_id) key = self.gen_key(p1.get_primary_name().get_surname()) if p1.get_gender() == gen.lib.Person.MALE: - if males.has_key(key): + if key in males: males[key].append(p1_id) else: males[key] = [p1_id] else: - if females.has_key(key): + if key in females: females[key].append(p1_id) else: females[key] = [p1_id] @@ -235,14 +235,14 @@ class Merge(Tool.Tool,ManagedWindow.ManagedWindow): if p1key == p2key: continue p2 = self.db.get_person_from_handle(p2key) - if self.map.has_key(p2key): + if p2key in self.map: (v,c) = self.map[p2key] if v == p1key: continue chance = self.compare_people(p1,p2) if chance >= thresh: - if self.map.has_key(p1key): + if p1key in self.map: val = self.map[p1key] if val[1] > chance: self.map[p1key] = (p2key,chance) @@ -591,7 +591,7 @@ class ShowMatches(ManagedWindow.ManagedWindow): def redraw(self): list = [] for p1key in self.map.keys(): - if self.dellist.has_key(p1key): + if p1key in self.dellist: continue (p2key,c) = self.map[p1key] if p1key == p2key: diff --git a/src/plugins/ImportProGen.py b/src/plugins/ImportProGen.py index 224b660d0..f1c504855 100644 --- a/src/plugins/ImportProGen.py +++ b/src/plugins/ImportProGen.py @@ -260,7 +260,7 @@ class PG30_Def_Table: # If there is a n_fields entry then this is a table that # has details about the record format of another file (PER or REL). - if self.parms.has_key('n_fields'): + if 'n_fields' in self.parms: self.get_fields() self.recfmt = self.get_recfmt() self.nam2fld = {} @@ -374,7 +374,7 @@ class PG30_Def_Table: def diag(self): txt = self.name + '\n' - if self.parms.has_key('n_fields'): + if 'n_fields' in self.parms: txt += 'n_fields = %s\n' % self.parms['n_fields'] # Just grab a field f = self.flds[1] diff --git a/src/plugins/KinshipReport.py b/src/plugins/KinshipReport.py index d2fdd96e3..17cec5787 100644 --- a/src/plugins/KinshipReport.py +++ b/src/plugins/KinshipReport.py @@ -129,8 +129,8 @@ class KinshipReport(Report): self.write_people(title,self.kinship_map[Ga][Gb]) if self.inc_spouses and \ - self.spouse_map.has_key(Ga) and \ - self.spouse_map[Ga].has_key(Gb): + Ga in self.spouse_map and \ + Gb in self.spouse_map[Ga]: title = _("spouses of %s") % title self.write_people(title,self.spouse_map[Ga][Gb]) @@ -189,9 +189,9 @@ class KinshipReport(Report): """ Add a person handle to the kin map. """ - if not self.kinship_map.has_key(Ga): + if Ga not in self.kinship_map: self.kinship_map[Ga] = {} - if not self.kinship_map[Ga].has_key(Gb): + if Gb not in self.kinship_map[Ga]: self.kinship_map[Ga][Gb] = [] if person_handle not in self.kinship_map[Ga][Gb]: self.kinship_map[Ga][Gb].append(person_handle) @@ -200,9 +200,9 @@ class KinshipReport(Report): """ Add a person handle to the spouse map. """ - if not self.spouse_map.has_key(Ga): + if Ga not in self.spouse_map: self.spouse_map[Ga] = {} - if not self.spouse_map[Ga].has_key(Gb): + if Gb not in self.spouse_map[Ga]: self.spouse_map[Ga][Gb] = [] if spouse_handle not in self.spouse_map[Ga][Gb]: self.spouse_map[Ga][Gb].append(spouse_handle) diff --git a/src/plugins/MarkerReport.py b/src/plugins/MarkerReport.py index 55ff6882d..4b2408f63 100644 --- a/src/plugins/MarkerReport.py +++ b/src/plugins/MarkerReport.py @@ -72,7 +72,7 @@ class MarkerReport(Report): def write_report(self): markerstr = self.marker # Use localized name if this is not a custom marker - if MarkerType._E2IMAP.has_key(self.marker): + if self.marker in MarkerType._E2IMAP: mtype = MarkerType._E2IMAP[self.marker] markerstr = MarkerType._I2SMAP[mtype] diff --git a/src/plugins/NarrativeWeb.py b/src/plugins/NarrativeWeb.py index 783297438..eb2cc5fbb 100644 --- a/src/plugins/NarrativeWeb.py +++ b/src/plugins/NarrativeWeb.py @@ -2037,7 +2037,7 @@ class IndividualPage(BasePage): place_handle = event.get_place_handle() if place_handle: # TODO. Figure out what this is for. - #if self.place_list.has_key(place_handle): + #if place_handle in self.place_list: # if lnk not in self.place_list[place_handle]: # self.place_list[place_handle].append(lnk) #else: @@ -2468,7 +2468,7 @@ class IndividualPage(BasePage): descr = event.get_description() place_handle = event.get_place_handle() if place_handle: - if self.place_list.has_key(place_handle): + if place_handle in self.place_list: if lnk not in self.place_list[place_handle]: self.place_list[place_handle].append(lnk) else: @@ -2533,7 +2533,7 @@ class IndividualPage(BasePage): handle = sref.get_reference_handle() gid_list.append(sref) - if self.src_list.has_key(handle): + if handle in self.src_list: if lnk not in self.src_list[handle]: self.src_list[handle].append(lnk) else: @@ -3296,7 +3296,7 @@ def sort_people(db, handle_list): sortnames[person_handle] = _nd.sort_string(primary_name) - if sname_sub.has_key(surname): + if surname in sname_sub: sname_sub[surname].append(person_handle) else: sname_sub[surname] = [person_handle] diff --git a/src/plugins/ReadGrdb.py b/src/plugins/ReadGrdb.py index ffcb16861..f56a7d794 100644 --- a/src/plugins/ReadGrdb.py +++ b/src/plugins/ReadGrdb.py @@ -276,7 +276,7 @@ def import_table(id_table, add_obj, find_next_gramps_id, # Then we check gramps_id for conflicts and change it if needed gramps_id = str(obj.gramps_id) - if id_table.has_key(gramps_id): + if gramps_id in id_table: gramps_id = find_next_gramps_id() obj.gramps_id = gramps_id add_obj(obj, trans) diff --git a/src/plugins/Verify.py b/src/plugins/Verify.py index a4f17f5fc..3b2e36c28 100644 --- a/src/plugins/Verify.py +++ b/src/plugins/Verify.py @@ -600,7 +600,7 @@ class VerifyResults(ManagedWindow): if ignore: handle = row[VerifyResults.OBJ_HANDLE_COL] rule_id = row[VerifyResults.RULE_ID_COL] - if not new_ignores.has_key(handle): + if handle not in new_ignores: new_ignores[handle] = set() new_ignores[handle].add(rule_id) return new_ignores diff --git a/src/plugins/WriteFtree.py b/src/plugins/WriteFtree.py index f1155bee7..419bf6306 100644 --- a/src/plugins/WriteFtree.py +++ b/src/plugins/WriteFtree.py @@ -200,11 +200,11 @@ class FtreeWriter: n = sn count = -1 - if name_map.has_key(n): + if n in name_map: count = 0 while 1: nn = "%s%d" % (n, count) - if not name_map.has_key(nn): + if nn not in name_map: break; count += 1 name_map[nn] = key @@ -228,9 +228,9 @@ class FtreeWriter: family_handle = p.get_main_parents_family_handle() if family_handle: family = self.db.get_family_from_handle(family_handle) - if family.get_father_handle() and id_map.has_key(family.get_father_handle()): + if family.get_father_handle() and family.get_father_handle() in id_map: father = id_map[family.get_father_handle()] - if family.get_mother_handle() and id_map.has_key(family.get_mother_handle()): + if family.get_mother_handle() and family.get_mother_handle() in id_map: mother = id_map[family.get_mother_handle()] # diff --git a/src/plugins/WriteGeneWeb.py b/src/plugins/WriteGeneWeb.py index a697f4f72..dd7dbbf60 100644 --- a/src/plugins/WriteGeneWeb.py +++ b/src/plugins/WriteGeneWeb.py @@ -452,7 +452,7 @@ class GeneWebWriter: pf_list = person.get_parent_family_handle_list() if pf_list: for family_handle in pf_list: - if self.flist.has_key(family_handle): + if family_handle in self.flist: is_child = 1 if is_child == 0: self.persons_details_done.append(person.get_handle()) @@ -476,7 +476,7 @@ class GeneWebWriter: firstname = _("Living") if not (Utils.probably_alive(person,self.db) and self.restrict and self.living): firstname = self.rem_spaces( person.get_primary_name().get_first_name()) - if not self.person_ids.has_key(person.get_handle()): + if person.get_handle() not in self.person_ids: self.person_ids[person.get_handle()] = len(self.person_ids) ret = "%s %s.%d" % (surname, firstname, self.person_ids[person.get_handle()]) return ret @@ -486,7 +486,7 @@ class GeneWebWriter: firstname = _("Living") if not (Utils.probably_alive(person,self.db) and self.restrict and self.living): firstname = self.rem_spaces( person.get_primary_name().get_first_name()) - if not self.person_ids.has_key(person.get_handle()): + if person.get_handle() not in self.person_ids: self.person_ids[person.get_handle()] = len(self.person_ids) if surname != father_lastname: ret = "%s.%d %s" % (firstname, self.person_ids[person.get_handle()], surname) diff --git a/src/test/__init__.py b/src/test/__init__.py index 8cf3a16d5..c58a8ccbb 100644 --- a/src/test/__init__.py +++ b/src/test/__init__.py @@ -18,7 +18,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id:$ +# $Id$ """ This package implements unittest support for GRAMPS diff --git a/src/widgets/styledtextbuffer.py b/src/widgets/styledtextbuffer.py index abefb4871..bf73b5a06 100644 --- a/src/widgets/styledtextbuffer.py +++ b/src/widgets/styledtextbuffer.py @@ -459,7 +459,7 @@ class StyledTextBuffer(gtk.TextBuffer): iter = self.get_iter_at_offset(pos) for tag in iter.get_tags(): name = tag.get_property('name') - if tagdict.has_key(name): + if name in tagdict: if tagdict[name][-1][1] == pos - 1: tagdict[name][-1] = (tagdict[name][-1][0], pos) else: