[Yum-devel] [PATCH] Get rid of uses of has_key().

Ville Skyttä ville.skytta at iki.fi
Sun Apr 25 20:05:51 UTC 2010


---
 cli.py                  |    2 +-
 rpmUtils/transaction.py |    7 +++----
 rpmUtils/updates.py     |   40 ++++++++++++++++++++--------------------
 yum-updatesd.py         |    8 ++------
 yum/__init__.py         |   15 +++++----------
 yum/comps.py            |   21 +++++++++------------
 yum/depsolve.py         |    2 +-
 yum/mdparser.py         |    2 +-
 yum/packageSack.py      |   13 ++++++-------
 yum/packages.py         |   33 +++++++++++++--------------------
 yum/pgpmsg.py           |    6 ++----
 yum/repos.py            |    2 +-
 yum/rpmsack.py          |    9 +++------
 yum/sqlitesack.py       |   10 ++++------
 yum/transactioninfo.py  |    6 +++---
 yum/update_md.py        |    4 ++--
 yum/yumRepo.py          |   20 +++++++++-----------
 17 files changed, 85 insertions(+), 115 deletions(-)

diff --git a/cli.py b/cli.py
index 4d5b538..4479a5e 100644
--- a/cli.py
+++ b/cli.py
@@ -345,7 +345,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
         p = re.compile('needs (\d+)MB on the (\S+) filesystem')
         disk = {}
         for m in p.finditer(errstring):
-            if not disk.has_key(m.group(2)):
+            if m.group(2) not in disk:
                 disk[m.group(2)] = int(m.group(1))
             if disk[m.group(2)] < int(m.group(1)):
                 disk[m.group(2)] = int(m.group(1))
diff --git a/rpmUtils/transaction.py b/rpmUtils/transaction.py
index 329de69..d50e201 100644
--- a/rpmUtils/transaction.py
+++ b/rpmUtils/transaction.py
@@ -94,9 +94,8 @@ class TransactionWrapper:
         self.addTsFlag(rpm.RPMTRANS_FLAG_TEST)
         # FIXME GARBAGE - remove once this is reimplemented elsehwere
         # KEEPING FOR API COMPLIANCE ONLY
-        if conf.has_key('diskspacecheck'):
-            if conf['diskspacecheck'] == 0:
-                self.ts.setProbFilter(rpm.RPMPROB_FILTER_DISKSPACE)
+        if conf.get('diskspacecheck') == 0:
+            self.ts.setProbFilter(rpm.RPMPROB_FILTER_DISKSPACE)
         tserrors = self.ts.run(cb.callback, '')
     
         reserrors = []
@@ -151,7 +150,7 @@ class TransactionWrapper:
             preq = 0
             tup = miscutils.pkgTupleFromHeader(h)
             for p in _return_all_provides(h):
-                if req.has_key(p):
+                if p in req:
                     # Don't count a package that provides its require
                     s = req[p]
                     if len(s) > 1 or tup not in s:
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 935a4ac..c231f5c 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -91,7 +91,7 @@ class Updates:
         self._delFromDict(self.updating_dict, self.updatesdict.get(pkgtup, []), pkgtup)
         self._delFromDict(self.updatesdict, self.updating_dict.get(pkgtup, []), pkgtup)
 
-        if self.rawobsoletes.has_key(pkgtup):
+        if pkgtup in self.rawobsoletes:
             if self._obsoletes_by_name:
                 for name, flag, version in self.rawobsoletes[pkgtup]:
                     self._delFromDict(self._obsoletes_by_name, [name], (flag, version, pkgtup))
@@ -111,12 +111,12 @@ class Updates:
             
         returndict = {}
         for (n, a, e, v, r) in pkglist:
-            if not returndict.has_key((n, a)):
+            if (n, a) not in returndict:
                 returndict[(n, a)] = []
             returndict[(n, a)].append((e,v,r))
 
             if Nonelists:
-                if not returndict.has_key((n, None)):
+                if (n, None) not in returndict:
                     returndict[(n, None)] = []
                 returndict[(n, None)].append((a, e, v, r))
             
@@ -199,7 +199,7 @@ class Updates:
         returndict = {}
         for new in obslist:
             for old in obsdict[new]:
-                if not returndict.has_key(old):
+                if old not in returndict:
                     returndict[old] = []
                 returndict[old].append(new)
         
@@ -221,21 +221,21 @@ class Updates:
         # 
         obs_arches = {}
         for (n, a, e, v, r) in self.rawobsoletes:
-            if not obs_arches.has_key(n):
+            if n not in obs_arches:
                 obs_arches[n] = []
             obs_arches[n].append(a)
 
         for pkgtup in self.rawobsoletes:
             (name, arch, epoch, ver, rel) = pkgtup
             for (obs_n, flag, (obs_e, obs_v, obs_r)) in self.rawobsoletes[(pkgtup)]:
-                if self.installdict.has_key((obs_n, None)):
+                if (obs_n, None) in self.installdict:
                     for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
                         if flag in [None, 0] or \
                                 rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, obs_v, obs_r)),
                                                               (obs_n, rpm_a, rpm_e, rpm_v, rpm_r)):
                             # make sure the obsoleting pkg is not already installed
                             willInstall = 1
-                            if self.installdict.has_key((name, None)):
+                            if (name, None) in self.installdict:
                                 for (ins_a, ins_e, ins_v, ins_r) in self.installdict[(name, None)]:
                                     pkgver = (epoch, ver, rel)
                                     installedver = (ins_e, ins_v, ins_r)
@@ -245,7 +245,7 @@ class Updates:
                             if rpm_a != arch and rpm_a in obs_arches[name]:
                                 willInstall = 0
                             if willInstall:
-                                if not obsdict.has_key(pkgtup):
+                                if pkgtup not in obsdict:
                                     obsdict[pkgtup] = []
                                 obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
         self.obsoletes = obsdict
@@ -258,7 +258,7 @@ class Updates:
         self.obsoleted_dict = {}
         for new in self.obsoletes:
             for old in self.obsoletes[new]:
-                if not self.obsoleted_dict.has_key(old):
+                if old not in self.obsoleted_dict:
                     self.obsoleted_dict[old] = []
                 self.obsoleted_dict[old].append(new)
         self.obsoleting_dict = {}
@@ -309,7 +309,7 @@ class Updates:
 
         for (n, a) in newpkgs:
             # simple ones - look for exact matches or older stuff
-            if self.installdict.has_key((n, a)):
+            if (n, a) in self.installdict:
                 for (rpm_e, rpm_v, rpm_r) in self.installdict[(n, a)]:
                     try:
                         (e, v, r) = self.returnNewest(newpkgs[(n,a)])
@@ -362,14 +362,14 @@ class Updates:
         for (n, a) in simpleupdate:
             # try to be as precise as possible
             if n in self.exactarchlist:
-                if self.installdict.has_key((n, a)):
+                if (n, a) in self.installdict:
                     (rpm_e, rpm_v, rpm_r) = self.returnNewest(self.installdict[(n, a)])
-                    if newpkgs.has_key((n,a)):
+                    if (n, a) in newpkgs:
                         (e, v, r) = self.returnNewest(newpkgs[(n, a)])
                         rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
                         if rc > 0:
                             # this is definitely an update - put it in the dict
-                            if not updatedict.has_key((n, a, rpm_e, rpm_v, rpm_r)):
+                            if (n, a, rpm_e, rpm_v, rpm_r) not in updatedict:
                                 updatedict[(n, a, rpm_e, rpm_v, rpm_r)] = []
                             updatedict[(n, a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
     
@@ -379,12 +379,12 @@ class Updates:
                 # we just need to find the arch of the installed pkg so we can 
                 # check it's (e, v, r)
                 (rpm_a, rpm_e, rpm_v, rpm_r) = self.installdict[(n, None)][0]
-                if newpkgs.has_key((n, None)):
+                if (n, None) in newpkgs:
                     for (a, e, v, r) in newpkgs[(n, None)]:
                         rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
                         if rc > 0:
                             # this is definitely an update - put it in the dict
-                            if not updatedict.has_key((n, rpm_a, rpm_e, rpm_v, rpm_r)):
+                            if (n, rpm_a, rpm_e, rpm_v, rpm_r) not in updatedict:
                                 updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)] = []
                             updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
 
@@ -400,7 +400,7 @@ class Updates:
         
         archlists = []
         if self._is_multilib:
-            if rpmUtils.arch.multilibArches.has_key(self.myarch):
+            if self.myarch in rpmUtils.arch.multilibArches:
                 biarches = [self.myarch]
             else:
                 biarches = [self.myarch, rpmUtils.arch.arches[self.myarch]]
@@ -445,7 +445,7 @@ class Updates:
                             rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
                             if rc > 0:
                                 # this is definitely an update - put it in the dict
-                                if not updatedict.has_key((n, a, rpm_e, rpm_v, rpm_r)):
+                                if (n, a, rpm_e, rpm_v, rpm_r) not in updatedict:
                                     updatedict[(n, a, rpm_e, rpm_v, rpm_r)] = []
                                 updatedict[(n, a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
                 else:
@@ -479,7 +479,7 @@ class Updates:
                     rc = rpmUtils.miscutils.compareEVR((e, v, r), (rpm_e, rpm_v, rpm_r))
                     if rc > 0:
                         # this is definitely an update - put it in the dict
-                        if not updatedict.has_key((n, rpm_a, rpm_e, rpm_v, rpm_r)):
+                        if (n, rpm_a, rpm_e, rpm_v, rpm_r) not in updatedict:
                             updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)] = []
                         updatedict[(n, rpm_a, rpm_e, rpm_v, rpm_r)].append((n, a, e, v, r))
                    
@@ -493,7 +493,7 @@ class Updates:
         self.updating_dict = {}
         for old in self.updatesdict:
             for new in self.updatesdict[old]:
-                if not self.updating_dict.has_key(new):
+                if new not in self.updating_dict:
                     self.updating_dict[new] = []
                 self.updating_dict[new].append(old)
 
@@ -688,7 +688,7 @@ class Updates:
         highdict = {}
         for pkgtup in tuplelist:
             (n, a, e, v, r) = pkgtup
-            if not highdict.has_key((n, a)):
+            if (n, a) not in highdict:
                 highdict[(n, a)] = pkgtup
             else:
                 pkgtup2 = highdict[(n, a)]
diff --git a/yum-updatesd.py b/yum-updatesd.py
index f96940c..1ce4720 100644
--- a/yum-updatesd.py
+++ b/yum-updatesd.py
@@ -118,9 +118,7 @@ class SyslogUpdateEmitter(UpdateEmitter):
                       "DEBUG": syslog.LOG_DEBUG }
         if type(lvl) == int:
             return lvl
-        if level_map.has_key(lvl.upper()):
-            return level_map[lvl.upper()]
-        return syslog.LOG_INFO
+        return level_map.get(lvl.upper(), syslog.LOG_INFO)
 
     def _facilityMap(self, facility):
         facility_map = { "KERN": syslog.LOG_KERN,
@@ -142,9 +140,7 @@ class SyslogUpdateEmitter(UpdateEmitter):
                          "LOCAL7": syslog.LOG_LOCAL7,}
         if type(facility) == int:
             return facility
-        elif facility_map.has_key(facility.upper()):
-            return facility_map[facility.upper()]
-        return syslog.LOG_DAEMON
+        return facility_map.get(facility.upper(), syslog.LOG_DAEMON)
 
 
 class EmailUpdateEmitter(UpdateEmitter):
diff --git a/yum/__init__.py b/yum/__init__.py
index 4fee2c7..a2851bd 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2110,10 +2110,7 @@ class YumBase(depsolve.Depsolve):
            the search keys in the results. """
         sql_fields = []
         for f in fields:
-            if RPM_TO_SQLITE.has_key(f):
-                sql_fields.append(RPM_TO_SQLITE[f])
-            else:
-                sql_fields.append(f)
+            sql_fields.append(RPM_TO_SQLITE.get(f, f))
 
         # yield the results in order of most terms matched first
         sorted_lists = {} # count_of_matches = [(pkgobj, 
@@ -2258,7 +2255,7 @@ class YumBase(depsolve.Depsolve):
         for (po, matched_strings) in match_gen:
             if callback:
                 callback(po, matched_strings)
-            if not matches.has_key(po):
+            if po not in matches:
                 matches[po] = []
             
             matches[po].extend(matched_strings)
@@ -2550,7 +2547,7 @@ class YumBase(depsolve.Depsolve):
                                
                         pkgs = packagesNewestByName(pkgs)
 
-                        if not self.tsInfo.conditionals.has_key(cond):
+                        if cond not in self.tsInfo.conditionals:
                             self.tsInfo.conditionals[cond] = []
                         self.tsInfo.conditionals[cond].extend(pkgs)
         return txmbrs_used
@@ -2994,7 +2991,7 @@ class YumBase(depsolve.Depsolve):
 
                 pkgbyname = {}
                 for pkg in pkgs:
-                    if not pkgbyname.has_key(pkg.name):
+                    if pkg.name not in pkgbyname:
                         pkgbyname[pkg.name] = [ pkg ]
                     else:
                         pkgbyname[pkg.name].append(pkg)
@@ -4363,9 +4360,7 @@ class YumBase(depsolve.Depsolve):
         newrepo = yumRepo.YumRepository(repoid)
         newrepo.name = repoid
         newrepo.basecachedir = self.conf.cachedir
-        var_convert = True
-        if kwargs.has_key('variable_convert') and not kwargs['variable_convert']:
-            var_convert = False
+        var_convert = kwargs.get('variable_convert', True)
         
         if baseurls:
             replaced = []
diff --git a/yum/comps.py b/yum/comps.py
index bbc1ac9..bf070fa 100755
--- a/yum/comps.py
+++ b/yum/comps.py
@@ -32,10 +32,7 @@ from misc import get_my_lang_code
 lang_attr = '{http://www.w3.org/XML/1998/namespace}lang'
 
 def parse_boolean(strng):
-    if BOOLEAN_STATES.has_key(strng.lower()):
-        return BOOLEAN_STATES[strng.lower()]
-    else:
-        return False
+    return BOOLEAN_STATES.get(strng.lower(), False)
 
 def parse_number(strng):
     return int(strng)
@@ -235,11 +232,11 @@ class Group(CompsObj):
             
         # name and description translations
         for lang in obj.translated_name:
-            if not self.translated_name.has_key(lang):
+            if lang not in self.translated_name:
                 self.translated_name[lang] = obj.translated_name[lang]
         
         for lang in obj.translated_description:
-            if not self.translated_description.has_key(lang):
+            if lang not in self.translated_description:
                 self.translated_description[lang] = obj.translated_description[lang]
         
     def xml(self):
@@ -348,11 +345,11 @@ class Category(CompsObj):
         
         # name and description translations
         for lang in obj.translated_name:
-            if not self.translated_name.has_key(lang):
+            if lang not in self.translated_name:
                 self.translated_name[lang] = obj.translated_name[lang]
         
         for lang in obj.translated_description:
-            if not self.translated_description.has_key(lang):
+            if lang not in self.translated_description:
                 self.translated_description[lang] = obj.translated_description[lang]
 
     def xml(self):
@@ -424,7 +421,7 @@ class Comps(object):
 
         for item in group_pattern.split(','):
             item = item.strip()
-            if self._groups.has_key(item):
+            if item in self._groups:
                 thisgroup = self._groups[item]
                 returns[thisgroup.groupid] = thisgroup
                 continue
@@ -490,14 +487,14 @@ class Comps(object):
         return returns.values()
 
     def add_group(self, group):
-        if self._groups.has_key(group.groupid):
+        if group.groupid in self._groups:
             thatgroup = self._groups[group.groupid]
             thatgroup.add(group)
         else:
             self._groups[group.groupid] = group
 
     def add_category(self, category):
-        if self._categories.has_key(category.categoryid):
+        if category.categoryid in self._categories:
             thatcat = self._categories[category.categoryid]
             thatcat.add(category)
         else:
@@ -557,7 +554,7 @@ class Comps(object):
                 check_pkgs = group.optional_packages.keys() + group.default_packages.keys() + group.conditional_packages.keys()
                 group.installed = False
                 for pkgname in check_pkgs:
-                    if inst_pkg_names.has_key(pkgname):
+                    if pkgname in inst_pkg_names:
                         group.installed = True
                         break
         
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 910c9e1..17b2ce9 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -895,7 +895,7 @@ class Depsolve(object):
         for prov in provs:
             if prov[0].startswith('rpmlib('): # ignore rpmlib() provides
                 continue
-            if newpoprovs.has_key(prov):
+            if prov in newpoprovs:
                 continue
             # FIXME: This is probably the best place to fix the postfix rename
             # problem long term (post .21) ... see compare_providers.
diff --git a/yum/mdparser.py b/yum/mdparser.py
index 2753dad..194d5d1 100644
--- a/yum/mdparser.py
+++ b/yum/mdparser.py
@@ -132,7 +132,7 @@ class PrimaryEntry(BaseEntry):
             elif name in ('checksum', 'location'): 
                 p.update(self._prefixprops(child, name))
                 p[name + '_value'] = child.text
-                if name == 'location' and not p.has_key("location_base"):
+                if name == 'location' and "location_base" not in p:
                     p["location_base"] = None
             
             elif name == 'format': 
diff --git a/yum/packageSack.py b/yum/packageSack.py
index dbe54bf..b09fee9 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -348,7 +348,7 @@ class PackageSackBase(object):
         for po in self.returnPackages(repoid=repoid):
             preq = 0
             for p in _return_all_provides(po):
-                if req.has_key(p):
+                if p in req:
                     #  If this pkg provides something that is required by
                     # anything but itself (or another version of itself) it
                     # isn't an orphan.
@@ -785,13 +785,13 @@ class PackageSack(PackageSackBase):
     def searchFiles(self, name):
         """ Return list of packages by filename. """
         self._checkIndexes(failure='build')
-        if self.filenames.has_key(name):
+        if name in self.filenames:
             return self.filenames[name]
         else:
             return []
 
     def _addToDictAsList(self, dict, key, data):
-        if not dict.has_key(key):
+        if key not in dict:
             dict[key] = []
         #if data not in dict[key]: - if I enable this the whole world grinds to a halt
         # need a faster way of looking for the object in any particular list
@@ -928,7 +928,7 @@ class PackageSack(PackageSackBase):
                                         ignore_case=ignore_case)
 
         for pkg in where:
-            if not highdict.has_key((pkg.name, pkg.arch)):
+            if (pkg.name, pkg.arch) not in highdict:
                 highdict[(pkg.name, pkg.arch)] = pkg
             else:
                 pkg2 = highdict[(pkg.name, pkg.arch)]
@@ -956,9 +956,8 @@ class PackageSack(PackageSackBase):
                                        ignore_case=ignore_case)
 
         for pkg in pkgs:
-            if not highdict.has_key(pkg.name):
-                highdict[pkg.name] = []
-                highdict[pkg.name].append(pkg)
+            if pkg.name not in highdict:
+                highdict[pkg.name] = [pkg]
             else:
                 pkg2 = highdict[pkg.name][0]
                 if pkg.verGT(pkg2):
diff --git a/yum/packages.py b/yum/packages.py
index e01790c..ac45518 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -91,7 +91,7 @@ def buildPkgRefDict(pkgs, casematch=True):
         envra = '%s:%s-%s-%s.%s' % (e, n, v, r, a)
         nevra = '%s-%s:%s-%s.%s' % (n, e, v, r, a)
         for item in [name, nameArch, nameVerRelArch, nameVer, nameVerRel, envra, nevra]:
-            if not pkgdict.has_key(item):
+            if item not in pkgdict:
                 pkgdict[item] = []
             pkgdict[item].append(pkg)
             
@@ -393,9 +393,7 @@ class RpmBase(object):
     def returnPrco(self, prcotype, printable=False):
         """return list of provides, requires, conflicts or obsoletes"""
         
-        prcos = []
-        if self.prco.has_key(prcotype):
-            prcos = self.prco[prcotype]
+        prcos = self.prco.get(prcotype, [])
 
         if printable:
             results = []
@@ -913,12 +911,9 @@ class YumAvailablePackage(PackageObject, RpmBase):
             self.installedsize = pkgdict.size['installed']
         
         if hasattr(pkgdict, 'location'):
-            if not pkgdict.location.has_key('base'):
+            url = pkgdict.location.get('base')
+            if url == '':
                 url = None
-            elif pkgdict.location['base'] == '':
-                url = None
-            else:
-                url = pkgdict.location['base']
 
             self.basepath = url
             self.relativepath = pkgdict.location['href']
@@ -938,7 +933,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
         if hasattr(pkgdict, 'files'):
             for fn in pkgdict.files:
                 ftype = pkgdict.files[fn]
-                if not self.files.has_key(ftype):
+                if ftype not in self.files:
                     self.files[ftype] = []
                 self.files[ftype].append(fn)
         
@@ -946,19 +941,17 @@ class YumAvailablePackage(PackageObject, RpmBase):
             for rtype in pkgdict.prco:
                 for rdict in pkgdict.prco[rtype]:
                     name = rdict['name']
-                    f = e = v = r  = None
-                    if rdict.has_key('flags'): f = rdict['flags']
-                    if rdict.has_key('epoch'): e = rdict['epoch']
-                    if rdict.has_key('ver'): v = rdict['ver']
-                    if rdict.has_key('rel'): r = rdict['rel']
+                    f = rdict.get('flags')
+                    e = rdict.get('epoch')
+                    v = rdict.get('ver')
+                    r = rdict.get('rel')
                     self.prco[rtype].append((name, f, (e,v,r)))
 
         if hasattr(pkgdict, 'changelog'):
             for cdict in pkgdict.changelog:
-                date = text = author = None
-                if cdict.has_key('date'): date = cdict['date']
-                if cdict.has_key('value'): text = cdict['value']
-                if cdict.has_key('author'): author = cdict['author']
+                date = cdict.get('date')
+                text = cdict.get('value')
+                author = cdict.get('author')
                 self._changelog.append((date, author, text))
         
         if hasattr(pkgdict, 'checksum'):
@@ -1297,7 +1290,7 @@ class YumHeaderPackage(YumAvailablePackage):
             for (fn, mode, flag) in filetuple:
                 #garbage checks
                 if mode is None or mode == '':
-                    if not self.files.has_key('file'):
+                    if 'file' not in self.files:
                         self.files['file'] = []
                     self.files['file'].append(fn)
                     continue
diff --git a/yum/pgpmsg.py b/yum/pgpmsg.py
index bd52cda..ffd275f 100644
--- a/yum/pgpmsg.py
+++ b/yum/pgpmsg.py
@@ -399,7 +399,7 @@ def map_to_str(m, vals) :
     if type(vals) != types.ListType and type(vals) != types.TupleType :
         vals = list((vals,))
     for i in vals :
-        if m.has_key(i) :
+        if i in m :
             slist.append(m[i])
         else :
             slist.append('unknown(' + str(i) + ')')
@@ -781,9 +781,7 @@ class signature(pgp_packet) :
         if sp[0] == SIG_SUB_TYPE_SGNR_USER_ID : # signer's user id
             return 'signer id: ' + sp[1]
         if sp[0] == SIG_SUB_TYPE_REVOKE_REASON : # reason for revocation
-            reas = ''
-            if revoke_reason_to_str.has_key(sp[1]) :
-                reas = revoke_reason_to_str[sp[1]]
+            reas = revoke_reason_to_str.get(sp[1], '')
             return 'reason for revocation: %s, %s' % (reas, sp[2])
         if sp[0] == SIG_SUB_TYPE_FEATURES : # features
             features = []
diff --git a/yum/repos.py b/yum/repos.py
index cd477ba..7e9c417 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -103,7 +103,7 @@ class RepoStorage:
             self._cache_enabled_repos = None
 
     def delete(self, repoid):
-        if self.repos.has_key(repoid):
+        if repoid in self.repos:
             thisrepo = self.repos[repoid]
             thisrepo.close()
             del self.repos[repoid]
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7f5b233..444e6d9 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -264,14 +264,12 @@ class RPMDBPackageSack(PackageSackBase):
             if hdr['name'] == 'gpg-pubkey':
                 continue
             pkg = self._makePackageObject(hdr, mi.instance())
-            if not result.has_key(pkg.pkgid):
-                result[pkg.pkgid] = pkg
+            result.setdefault(pkg.pkgid, pkg)
         del mi
 
         fileresults = self.searchFiles(name)
         for pkg in fileresults:
-            if not result.has_key(pkg.pkgid):
-                result[pkg.pkgid] = pkg
+            result.setdefault(pkg.pkgid, pkg)
         
         if self.auto_close:
             self.ts.close()
@@ -289,8 +287,7 @@ class RPMDBPackageSack(PackageSackBase):
             if hdr['name'] == 'gpg-pubkey':
                 continue
             pkg = self._makePackageObject(hdr, mi.instance())
-            if not result.has_key(pkg.pkgid):
-                result[pkg.pkgid] = pkg
+            result.setdefault(pkg.pkgid, pkg)
         del mi
 
         result = result.values()
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 43f60cd..7873411 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -259,9 +259,7 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
         if varname.startswith('__') and varname.endswith('__'):
             raise AttributeError, varname
         
-        dbname = varname
-        if db2simplemap.has_key(varname):
-            dbname = db2simplemap[varname]
+        dbname = db2simplemap.get(varname, varname)
         try:
             r = self._sql_MD('primary',
                          "SELECT %s FROM packages WHERE pkgId = ?" % dbname,
@@ -556,7 +554,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
     # Because we don't want to remove a package from the database we just
     # add it to the exclude list
     def delPackage(self, obj):
-        if not self.excludes.has_key(obj.repo):
+        if obj.repo not in self.excludes:
             self.excludes[obj.repo] = {}
         self.excludes[obj.repo][obj.pkgId] = 1
         if (obj.repo, obj.pkgKey) in self._exclude_whitelist:
@@ -780,13 +778,13 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
         return ret
 
     def addDict(self, repo, datatype, dataobj, callback=None):
-        if self.added.has_key(repo):
+        if repo in self.added:
             if datatype in self.added[repo]:
                 return
         else:
             self.added[repo] = []
 
-        if not self.excludes.has_key(repo): 
+        if repo not in self.excludes:
             self.excludes[repo] = {}
 
         if dataobj is None:
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 508ab65..69ff86d 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -130,7 +130,7 @@ class TransactionData:
         if pkgtup is None:
             for members in self.pkgdict.itervalues():
                 returnlist.extend(members)            
-        elif self.pkgdict.has_key(pkgtup):
+        elif pkgtup in self.pkgdict:
             returnlist.extend(self.pkgdict[pkgtup])
         return returnlist
             
@@ -275,7 +275,7 @@ class TransactionData:
             else:
                 self._inSack.addPackage(txmember.po)
 
-        if self.conditionals.has_key(txmember.name):
+        if txmember.name in self.conditionals:
             for pkg in self.conditionals[txmember.name]:
                 if self.rpmdb.contains(po=pkg):
                     continue
@@ -307,7 +307,7 @@ class TransactionData:
     
     def exists(self, pkgtup):
         """tells if the pkg is in the class"""
-        if self.pkgdict.has_key(pkgtup):
+        if pkgtup in self.pkgdict:
             if len(self.pkgdict[pkgtup]) != 0:
                 return 1
         
diff --git a/yum/update_md.py b/yum/update_md.py
index fc051b0..c6e2d37 100644
--- a/yum/update_md.py
+++ b/yum/update_md.py
@@ -73,7 +73,7 @@ class UpdateNotice(object):
 
     def __getitem__(self, item):
         """ Allows scriptable metadata access (ie: un['update_id']). """
-        return self._md.has_key(item) and self._md[item] or None
+        return self._md.get(item) or None
 
     def __setitem__(self, item, val):
        self._md[item] = val
@@ -328,7 +328,7 @@ class UpdateMetadata(object):
         """
         if type(nvr) in (type([]), type(())):
             nvr = '-'.join(nvr)
-        return self._cache.has_key(nvr) and self._cache[nvr] or None
+        return self._cache.get(nvr) or None
 
     #  The problem with the above "get_notice" is that not everyone updates
     # daily. So if you are at pkg-1, pkg-2 has a security notice, and pkg-3
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b67b897..7c3a4d7 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -78,7 +78,7 @@ class YumPackageSack(packageSack.PackageSack):
         self.added = {}
 
     def addDict(self, repo, datatype, dataobj, callback=None):
-        if self.added.has_key(repo):
+        if repo in self.added:
             if datatype in self.added[repo]:
                 return
 
@@ -94,14 +94,14 @@ class YumPackageSack(packageSack.PackageSack):
                 self._addToDictAsList(self.pkgsByID, pkgid, po)
                 self.addPackage(po)
 
-            if not self.added.has_key(repo):
+            if repo not in self.added:
                 self.added[repo] = []
             self.added[repo].append('metadata')
             # indexes will need to be rebuilt
             self.indexesBuilt = 0
 
         elif datatype in ['filelists', 'otherdata']:
-            if self.added.has_key(repo):
+            if repo in self.added:
                 if 'metadata' not in self.added[repo]:
                     raise Errors.RepoError, '%s md for %s imported before primary' \
                            % (datatype, repo.id)
@@ -110,7 +110,7 @@ class YumPackageSack(packageSack.PackageSack):
                 current += 1
                 if callback: callback.progressbar(current, total, repo)
                 pkgdict = dataobj[pkgid]
-                if self.pkgsByID.has_key(pkgid):
+                if pkgid in self.pkgsByID:
                     for po in self.pkgsByID[pkgid]:
                         po.importFromDict(pkgdict)
 
@@ -134,7 +134,7 @@ class YumPackageSack(packageSack.PackageSack):
                 callback=callback,
                 )
         for item in data:
-            if self.added.has_key(repo):
+            if repo in self.added:
                 if item in self.added[repo]:
                     continue
 
@@ -1082,9 +1082,7 @@ class YumRepository(Repository, config.RepoConf):
             self._check_db_version(mdtype + '_db', repoXML=repoXML)):
             mdtype += '_db'
 
-        if repoXML.repoData.has_key(mdtype):
-            return (mdtype, repoXML.getData(mdtype))
-        return (mdtype, None)
+        return (mdtype, repoXML.repoData.get(mdtype))
 
     def _get_mdtype_fname(self, data, compressed=False):
         (r_base, remote) = data.location
@@ -1524,9 +1522,9 @@ class YumRepository(Repository, config.RepoConf):
         fname = os.path.basename(remote)
         local = self.cachedir + '/' + fname
 
-        if self.retrieved.has_key(mdtype):
-            if self.retrieved[mdtype]: # got it, move along
-                return local
+        if self.retrieved.get(mdtype):
+            # got it, move along
+            return local
 
         if self.cache == 1:
             if os.path.exists(local):
-- 
1.7.0.1



More information about the Yum-devel mailing list