[pypy-commit] pypy numpypy-nditer: implement skeleton interface for nditer

mattip noreply at buildbot.pypy.org
Sat May 11 21:42:55 CEST 2013


Author: Matti Picus <matti.picus at gmail.com>
Branch: numpypy-nditer
Changeset: r63993:d10c6ec5d2d6
Date: 2013-05-11 22:22 +0300
http://bitbucket.org/pypy/pypy/changeset/d10c6ec5d2d6/

Log:	implement skeleton interface for nditer

diff --git a/pypy/module/micronumpy/__init__.py b/pypy/module/micronumpy/__init__.py
--- a/pypy/module/micronumpy/__init__.py
+++ b/pypy/module/micronumpy/__init__.py
@@ -21,6 +21,7 @@
 
         'set_string_function': 'appbridge.set_string_function',
         'typeinfo': 'interp_dtype.get_dtype_cache(space).w_typeinfo',
+        'nditer': 'interp_nditer.nditer',
     }
 
 
diff --git a/pypy/module/micronumpy/interp_nditer.py b/pypy/module/micronumpy/interp_nditer.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/micronumpy/interp_nditer.py
@@ -0,0 +1,165 @@
+from pypy.interpreter.baseobjspace import W_Root
+from pypy.interpreter.typedef import TypeDef, GetSetProperty, make_weakref_descr
+from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault
+from pypy.interpreter.error import OperationError
+#from pypy.module.micronumpy.iter import W_NDIter
+
+class W_NDIter(W_Root):
+
+    def __init__(self, *args, **kwargs):
+        pass
+
+    def descr_iter(self, space):
+        return space.wrap(self)
+
+    def descr_getitem(self, space, w_idx):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_setitem(self, space, w_idx, w_value):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_len(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_next(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_iternext(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_copy(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_debug_print(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_enable_external_loop(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    @unwrap_spec(axis=int)
+    def descr_remove_axis(self, space, axis):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_remove_multi_index(self, space, w_multi_index):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_reset(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_operands(self, space, w_indx):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_dtypes(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_finished(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_has_delayed_bufalloc(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_has_index(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_index(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_has_multi_index(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_multi_index(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_iterationneedsapi(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_iterindex(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_itersize(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_itviews(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_ndim(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_nop(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_shape(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+    def descr_get_value(self, space):
+        raise OperationError(space.w_NotImplementedError, space.wrap(
+            'not implemented yet'))
+
+
+ at unwrap_spec(w_flags = WrappedDefault(None), w_op_flags=WrappedDefault(None),
+             w_op_dtypes = WrappedDefault(None), order=str,
+             w_casting=WrappedDefault(None), w_op_axes=WrappedDefault(None),
+             w_itershape=WrappedDefault(None), w_buffersize=WrappedDefault(None))
+def nditer(space, w_seq, w_flags, w_op_flags, w_op_dtypes, w_casting, w_op_axes,
+             w_itershape, w_buffersize, order='K'):
+    return W_NDIter()
+
+W_NDIter.typedef = TypeDef(
+    'nditer',
+    __iter__ = interp2app(W_NDIter.descr_iter),
+    __getitem__ = interp2app(W_NDIter.descr_getitem),
+    __setitem__ = interp2app(W_NDIter.descr_setitem),
+    __len__ = interp2app(W_NDIter.descr_len),
+
+    next = interp2app(W_NDIter.descr_next),
+    iternext = interp2app(W_NDIter.descr_iternext),
+    copy = interp2app(W_NDIter.descr_copy),
+    debug_print = interp2app(W_NDIter.descr_debug_print),
+    enable_external_loop = interp2app(W_NDIter.descr_enable_external_loop),
+    remove_axis = interp2app(W_NDIter.descr_remove_axis),
+    remove_multi_index = interp2app(W_NDIter.descr_remove_multi_index),
+    reset = interp2app(W_NDIter.descr_reset),
+
+    operands = GetSetProperty(W_NDIter.descr_get_operands),
+    dtypes = GetSetProperty(W_NDIter.descr_get_dtypes),
+    finished = GetSetProperty(W_NDIter.descr_get_finished),
+    has_delayed_bufalloc = GetSetProperty(W_NDIter.descr_get_has_delayed_bufalloc),
+    has_index = GetSetProperty(W_NDIter.descr_get_has_index),
+    index = GetSetProperty(W_NDIter.descr_get_index),
+    has_multi_index = GetSetProperty(W_NDIter.descr_get_has_multi_index),
+    multi_index = GetSetProperty(W_NDIter.descr_get_multi_index),
+    iterationneedsapi = GetSetProperty(W_NDIter.descr_get_iterationneedsapi),
+    iterindex = GetSetProperty(W_NDIter.descr_get_iterindex),
+    itersize = GetSetProperty(W_NDIter.descr_get_itersize),
+    itviews = GetSetProperty(W_NDIter.descr_get_itviews),
+    ndim = GetSetProperty(W_NDIter.descr_get_ndim),
+    nop = GetSetProperty(W_NDIter.descr_get_nop),
+    shape = GetSetProperty(W_NDIter.descr_get_shape),
+    value = GetSetProperty(W_NDIter.descr_get_value),
+)


More information about the pypy-commit mailing list