summaryrefslogtreecommitdiffstats
path: root/pym/portage/cache/template.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-06-21 21:10:00 +0000
committerZac Medico <zmedico@gentoo.org>2007-06-21 21:10:00 +0000
commit46224ed3874b469c38ea5e973b1e5faf5483b376 (patch)
treeeb5ad28a035fc9f9eb92da5cc8877141972e1634 /pym/portage/cache/template.py
parent50dc22b8f85c5b1b5911a200f0b74257ed962461 (diff)
downloadportage-46224ed3874b469c38ea5e973b1e5faf5483b376.tar.gz
portage-46224ed3874b469c38ea5e973b1e5faf5483b376.tar.bz2
portage-46224ed3874b469c38ea5e973b1e5faf5483b376.zip
Implement iterkeys on top of __iter__ instead of vice versa. Thanks to Brian Harring for the suggestion.
svn path=/main/trunk/; revision=6918
Diffstat (limited to 'pym/portage/cache/template.py')
-rw-r--r--pym/portage/cache/template.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/pym/portage/cache/template.py b/pym/portage/cache/template.py
index 161b07f55..d5a07528c 100644
--- a/pym/portage/cache/template.py
+++ b/pym/portage/cache/template.py
@@ -95,7 +95,7 @@ class database(object):
return tuple(self.iterkeys())
def iterkeys(self):
- raise NotImplementedError
+ return iter(self)
def iteritems(self):
for x in self.iterkeys():
@@ -123,6 +123,16 @@ class database(object):
raise NotImplementedError
return self.has_key(cpv)
+ def __iter__(self):
+ """This method should always be overridden. It is provided only for
+ backward compatibility with modules that override iterkeys instead. It
+ will automatically raise a NotImplementedError if iterkeys has not been
+ overridden."""
+ if self.iterkeys is database.iterkeys:
+ # prevent a possible recursive loop
+ raise NotImplementedError(self)
+ return self.iterkeys()
+
def get(self, k, x=None):
try:
return self[k]