summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-06-22 02:45:18 +0000
committerZac Medico <zmedico@gentoo.org>2007-06-22 02:45:18 +0000
commit817be01f9ea3e703a861e4ec8ade82683903232a (patch)
treeea333f579cd56df3f780a9f340dff4c811e1af2f /pym/portage.py
parent05e710dc0187255e2bd7e8ab7480e3ce1ce6fde4 (diff)
downloadportage-817be01f9ea3e703a861e4ec8ade82683903232a.tar.gz
portage-817be01f9ea3e703a861e4ec8ade82683903232a.tar.bz2
portage-817be01f9ea3e703a861e4ec8ade82683903232a.zip
config class mapping interface cleanups from trunk r6916, r6919, and r6920.
svn path=/main/branches/2.1.2/; revision=6933
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py49
1 files changed, 23 insertions, 26 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 44451269d..5369619d2 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2144,49 +2144,46 @@ class config:
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):
- for x in self.lookuplist:
- if x.has_key(mykey):
- return 1
- return 0
+ return mykey in self
def __contains__(self, mykey):
"""Called to implement membership test operators (in and not in)."""
- return bool(self.has_key(mykey))
+ for d in self.lookuplist:
+ if mykey in d:
+ return True
+ 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)
def __iter__(self):
keys = set()
for d in self.lookuplist:
- for k in d:
- if k in keys:
- continue
- keys.add(k)
- yield k
+ keys.update(d)
+ return iter(keys)
+
+ def iterkeys(self):
+ return iter(self)
def __setitem__(self,mykey,myvalue):
"set a value; will be thrown away at reset() time"