[pypy-commit] pypy default: put flatiter typedef with class

bdkearns noreply at buildbot.pypy.org
Fri Oct 10 06:25:42 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r73874:f4c2ef76f510
Date: 2014-10-09 16:27 -0400
http://bitbucket.org/pypy/pypy/changeset/f4c2ef76f510/

Log:	put flatiter typedef with class

diff --git a/pypy/module/micronumpy/flatiter.py b/pypy/module/micronumpy/flatiter.py
--- a/pypy/module/micronumpy/flatiter.py
+++ b/pypy/module/micronumpy/flatiter.py
@@ -1,7 +1,10 @@
 from pypy.interpreter.error import OperationError, oefmt
+from pypy.interpreter.gateway import interp2app
+from pypy.interpreter.typedef import TypeDef, GetSetProperty
 from pypy.module.micronumpy import loop
-from pypy.module.micronumpy.base import W_NDimArray, convert_to_array
+from pypy.module.micronumpy.base import convert_to_array
 from pypy.module.micronumpy.concrete import BaseConcreteArray
+from .ndarray import W_NDimArray
 
 
 class FakeArrayImplementation(BaseConcreteArray):
@@ -90,4 +93,21 @@
     def descr_base(self, space):
         return space.wrap(self.base)
 
-# typedef is in interp_ndarray, so we see the additional arguments
+W_FlatIterator.typedef = TypeDef("numpy.flatiter",
+    __iter__ = interp2app(W_FlatIterator.descr_iter),
+    __getitem__ = interp2app(W_FlatIterator.descr_getitem),
+    __setitem__ = interp2app(W_FlatIterator.descr_setitem),
+    __len__ = interp2app(W_FlatIterator.descr_len),
+
+    __eq__ = interp2app(W_FlatIterator.descr_eq),
+    __ne__ = interp2app(W_FlatIterator.descr_ne),
+    __lt__ = interp2app(W_FlatIterator.descr_lt),
+    __le__ = interp2app(W_FlatIterator.descr_le),
+    __gt__ = interp2app(W_FlatIterator.descr_gt),
+    __ge__ = interp2app(W_FlatIterator.descr_ge),
+
+    next = interp2app(W_FlatIterator.descr_next),
+    base = GetSetProperty(W_FlatIterator.descr_base),
+    index = GetSetProperty(W_FlatIterator.descr_index),
+    coords = GetSetProperty(W_FlatIterator.descr_coords),
+)
diff --git a/pypy/module/micronumpy/ndarray.py b/pypy/module/micronumpy/ndarray.py
--- a/pypy/module/micronumpy/ndarray.py
+++ b/pypy/module/micronumpy/ndarray.py
@@ -18,7 +18,6 @@
 from pypy.module.micronumpy.converters import multi_axis_converter, \
     order_converter, shape_converter, searchside_converter
 from pypy.module.micronumpy.flagsobj import W_FlagsObject
-from pypy.module.micronumpy.flatiter import W_FlatIterator
 from pypy.module.micronumpy.strides import get_shape_from_iterable, \
     shape_agreement, shape_agreement_multiple
 from .selection import app_searchsort
@@ -482,6 +481,7 @@
         loop.flatiter_setitem(space, dtype, arr, iter, state, 1, iter.size)
 
     def descr_get_flatiter(self, space):
+        from .flatiter import W_FlatIterator
         return space.wrap(W_FlatIterator(self))
 
     def descr_item(self, space, __args__):
@@ -1464,23 +1464,3 @@
 
 def _reconstruct(space, w_subtype, w_shape, w_dtype):
     return descr_new_array(space, w_subtype, w_shape, w_dtype)
-
-
-W_FlatIterator.typedef = TypeDef("numpy.flatiter",
-    __iter__ = interp2app(W_FlatIterator.descr_iter),
-    __getitem__ = interp2app(W_FlatIterator.descr_getitem),
-    __setitem__ = interp2app(W_FlatIterator.descr_setitem),
-    __len__ = interp2app(W_FlatIterator.descr_len),
-
-    __eq__ = interp2app(W_FlatIterator.descr_eq),
-    __ne__ = interp2app(W_FlatIterator.descr_ne),
-    __lt__ = interp2app(W_FlatIterator.descr_lt),
-    __le__ = interp2app(W_FlatIterator.descr_le),
-    __gt__ = interp2app(W_FlatIterator.descr_gt),
-    __ge__ = interp2app(W_FlatIterator.descr_ge),
-
-    next = interp2app(W_FlatIterator.descr_next),
-    base = GetSetProperty(W_FlatIterator.descr_base),
-    index = GetSetProperty(W_FlatIterator.descr_index),
-    coords = GetSetProperty(W_FlatIterator.descr_coords),
-)


More information about the pypy-commit mailing list