diff options
Diffstat (limited to 'pym/cache/template.py')
-rw-r--r-- | pym/cache/template.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pym/cache/template.py b/pym/cache/template.py index d19bb8892..6457f59e5 100644 --- a/pym/cache/template.py +++ b/pym/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] |