diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-06-21 21:10:00 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-06-21 21:10:00 +0000 |
commit | 46224ed3874b469c38ea5e973b1e5faf5483b376 (patch) | |
tree | eb5ad28a035fc9f9eb92da5cc8877141972e1634 /pym/portage/cache/template.py | |
parent | 50dc22b8f85c5b1b5911a200f0b74257ed962461 (diff) | |
download | portage-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.py | 12 |
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] |