]> granicus.if.org Git - python/commitdiff
#3057: Fix the MutableMapping ABC to use the 2.6 dict interface.
authorGeorg Brandl <georg@python.org>
Sat, 7 Jun 2008 17:03:28 +0000 (17:03 +0000)
committerGeorg Brandl <georg@python.org>
Sat, 7 Jun 2008 17:03:28 +0000 (17:03 +0000)
Lib/_abcoll.py

index 856a816eeccb9ca4d7d166dc74adebc757db915d..5acbb701b69bfc6a03557c94dfb83b5d3ab2aec4 100644 (file)
@@ -329,14 +329,25 @@ class Mapping(Sized, Iterable, Container):
         else:
             return True
 
+    def iterkeys(self):
+        return iter(self)
+
+    def itervalues(self):
+        for key in self:
+            yield self[key]
+
+    def iteritems(self):
+        for key in self:
+            yield (key, self[key])
+
     def keys(self):
-        return KeysView(self)
+        return list(self)
 
     def items(self):
-        return ItemsView(self)
+        return [(key, self[key]) for key in self]
 
     def values(self):
-        return ValuesView(self)
+        return [self[key] for key in self]
 
     def __eq__(self, other):
         return isinstance(other, Mapping) and \
@@ -363,8 +374,6 @@ class KeysView(MappingView, Set):
         for key in self._mapping:
             yield key
 
-KeysView.register(type({}.keys()))
-
 
 class ItemsView(MappingView, Set):
 
@@ -381,8 +390,6 @@ class ItemsView(MappingView, Set):
         for key in self._mapping:
             yield (key, self._mapping[key])
 
-ItemsView.register(type({}.items()))
-
 
 class ValuesView(MappingView):
 
@@ -396,8 +403,6 @@ class ValuesView(MappingView):
         for key in self._mapping:
             yield self._mapping[key]
 
-ValuesView.register(type({}.values()))
-
 
 class MutableMapping(Mapping):