Clean up config.__getitem__(), get() and setdefault() implementions.
authorZac Medico <zmedico@gentoo.org>
Thu, 21 Jun 2007 21:37:25 +0000 (21:37 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 21 Jun 2007 21:37:25 +0000 (21:37 -0000)
svn path=/main/trunk/; revision=6920

pym/portage/__init__.py

index bfc6f08399411c4daa2e50e9d8d8090f6f38ccaa..6a4564ba5657c9e7a11487380c2d2e2b483b7382 100644 (file)
@@ -2192,14 +2192,16 @@ class config(object):
                                        del x[mykey]
 
        def __getitem__(self,mykey):
-               match = ''
-               for x in self.lookuplist:
-                       if x is None:
-                               writemsg("!!! lookuplist is null.\n")
-                       elif x.has_key(mykey):
-                               match = x[mykey]
-                               break
-               return match
+               for d in self.lookuplist:
+                       if mykey in d:
+                               return d[mykey]
+               return '' # for backward compat, don't raise KeyError
+
+       def get(self, k, x=None):
+               for d in self.lookuplist:
+                       if k in d:
+                               return d[k]
+               return x
 
        def has_key(self,mykey):
                return mykey in self
@@ -2212,18 +2214,13 @@ class config(object):
                return False
 
        def setdefault(self, k, x=None):
-               if k in self:
-                       return self[k]
+               v = self.get(k)
+               if v is not None:
+                       return v
                else:
                        self[k] = x
                        return x
 
-       def get(self, k, x=None):
-               if k in self:
-                       return self[k]
-               else:
-                       return x
-
        def keys(self):
                return list(self)