[pypy-commit] pypy default: issue1748: provide array.__iter__
pjenvey
noreply at buildbot.pypy.org
Wed Apr 30 00:12:41 CEST 2014
Author: Philip Jenvey <pjenvey at underboss.org>
Branch:
Changeset: r71066:a199610f2d6a
Date: 2014-04-29 15:11 -0700
http://bitbucket.org/pypy/pypy/changeset/a199610f2d6a/
Log: issue1748: provide array.__iter__
diff --git a/pypy/module/array/interp_array.py b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -448,6 +448,9 @@
self.descr_delitem(space, space.newslice(w_start, w_stop,
space.w_None))
+ def descr_iter(self, space):
+ return space.newseqiter(self)
+
def descr_add(self, space, w_other):
raise NotImplementedError
@@ -503,6 +506,7 @@
__setslice__ = interp2app(W_ArrayBase.descr_setslice),
__delitem__ = interp2app(W_ArrayBase.descr_delitem),
__delslice__ = interp2app(W_ArrayBase.descr_delslice),
+ __iter__ = interp2app(W_ArrayBase.descr_iter),
__add__ = interpindirect2app(W_ArrayBase.descr_add),
__iadd__ = interpindirect2app(W_ArrayBase.descr_inplace_add),
diff --git a/pypy/module/array/test/test_array.py b/pypy/module/array/test/test_array.py
--- a/pypy/module/array/test/test_array.py
+++ b/pypy/module/array/test/test_array.py
@@ -697,6 +697,8 @@
for i in a:
b.append(i)
assert repr(b) == "array('i', [1, 2, 3])"
+ assert hasattr(b, '__iter__')
+ assert next(b.__iter__()) == 1
def test_lying_iterable(self):
class lier(object):
More information about the pypy-commit
mailing list