[pypy-commit] pypy py2-mappingproxy: Implement methods: iterkeys(), itervalues(), iteritems().
rlamy
pypy.commits at gmail.com
Tue Aug 9 13:14:44 EDT 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py2-mappingproxy
Changeset: r86121:d7ad5289b8ff
Date: 2016-08-09 18:14 +0100
http://bitbucket.org/pypy/pypy/changeset/d7ad5289b8ff/
Log: Implement methods: iterkeys(), itervalues(), iteritems().
diff --git a/pypy/objspace/std/dictproxyobject.py b/pypy/objspace/std/dictproxyobject.py
--- a/pypy/objspace/std/dictproxyobject.py
+++ b/pypy/objspace/std/dictproxyobject.py
@@ -48,12 +48,21 @@
def keys_w(self, space):
return space.call_method(self.w_mapping, "keys")
+ def descr_iterkeys(self, space):
+ return space.call_method(self.w_mapping, "iterkeys")
+
def values_w(self, space):
return space.call_method(self.w_mapping, "values")
+ def descr_itervalues(self, space):
+ return space.call_method(self.w_mapping, "itervalues")
+
def items_w(self, space):
return space.call_method(self.w_mapping, "items")
+ def descr_iteritems(self, space):
+ return space.call_method(self.w_mapping, "iteritems")
+
def copy_w(self, space):
return space.call_method(self.w_mapping, "copy")
@@ -82,8 +91,11 @@
__repr__=interp2app(W_DictProxyObject.descr_repr),
get=interp2app(W_DictProxyObject.get_w),
keys=interp2app(W_DictProxyObject.keys_w),
+ iterkeys=interp2app(W_DictProxyObject.descr_iterkeys),
values=interp2app(W_DictProxyObject.values_w),
+ itervalues=interp2app(W_DictProxyObject.descr_itervalues),
items=interp2app(W_DictProxyObject.items_w),
+ iteritems=interp2app(W_DictProxyObject.descr_iteritems),
copy=interp2app(W_DictProxyObject.copy_w),
**cmp_methods
)
diff --git a/pypy/objspace/std/test/test_dictproxy.py b/pypy/objspace/std/test/test_dictproxy.py
--- a/pypy/objspace/std/test/test_dictproxy.py
+++ b/pypy/objspace/std/test/test_dictproxy.py
@@ -72,6 +72,9 @@
assert 'z' not in proxy
assert repr(proxy) == 'dict_proxy(%r)' % mapping
assert proxy.keys() == mapping.keys()
+ assert list(proxy.iterkeys()) == proxy.keys()
+ assert list(proxy.itervalues()) == proxy.values()
+ assert list(proxy.iteritems()) == proxy.items()
raises(TypeError, "proxy['a'] = 4")
raises(TypeError, "del proxy['a']")
raises(AttributeError, "proxy.clear()")
More information about the pypy-commit
mailing list