[pypy-commit] pypy nditer-buffered: more strides -> strideops module substitution

mattip noreply at buildbot.pypy.org
Tue Jul 21 23:12:21 CEST 2015


Author: mattip <matti.picus at gmail.com>
Branch: nditer-buffered
Changeset: r78633:3673d97c6f8c
Date: 2015-07-20 16:16 -0400
http://bitbucket.org/pypy/pypy/changeset/3673d97c6f8c/

Log:	more strides -> strideops module substitution

diff --git a/pypy/module/micronumpy/arrayops.py b/pypy/module/micronumpy/arrayops.py
--- a/pypy/module/micronumpy/arrayops.py
+++ b/pypy/module/micronumpy/arrayops.py
@@ -4,7 +4,7 @@
 from pypy.module.micronumpy import constants as NPY
 from pypy.module.micronumpy.base import convert_to_array, W_NDimArray
 from pypy.module.micronumpy.converters import clipmode_converter
-from pypy.module.micronumpy.strides import (
+from pypy.module.micronumpy.strideops import (
     Chunk, Chunks, shape_agreement, shape_agreement_multiple)
 from .casting import find_binop_result_dtype, find_result_type
 
diff --git a/pypy/module/micronumpy/base.py b/pypy/module/micronumpy/base.py
--- a/pypy/module/micronumpy/base.py
+++ b/pypy/module/micronumpy/base.py
@@ -38,7 +38,7 @@
     @staticmethod
     def from_shape(space, shape, dtype, order='C', w_instance=None, zero=True):
         from pypy.module.micronumpy import concrete, descriptor, boxes
-        from pypy.module.micronumpy.strides import calc_strides
+        from pypy.module.micronumpy.strideops import calc_strides
         strides, backstrides = calc_strides(shape, dtype.base, order)
         impl = concrete.ConcreteArray(shape, dtype.base, order, strides,
                                       backstrides, zero=zero)
@@ -53,7 +53,7 @@
                                order='C', owning=False, w_subtype=None,
                                w_base=None, writable=True, strides=None, start=0):
         from pypy.module.micronumpy import concrete
-        from pypy.module.micronumpy.strides import (calc_strides,
+        from pypy.module.micronumpy.strideops import (calc_strides,
                                                     calc_backstrides)
         isize = dtype.elsize
         if storage_bytes > 0 :
diff --git a/pypy/module/micronumpy/concrete.py b/pypy/module/micronumpy/concrete.py
--- a/pypy/module/micronumpy/concrete.py
+++ b/pypy/module/micronumpy/concrete.py
@@ -9,7 +9,7 @@
 from pypy.module.micronumpy.base import convert_to_array, W_NDimArray, \
     ArrayArgumentException, W_NumpyObject
 from pypy.module.micronumpy.iterators import ArrayIter
-from pypy.module.micronumpy.strides import (Chunk, Chunks, NewAxisChunk,
+from pypy.module.micronumpy.strideops import (Chunk, Chunks, NewAxisChunk,
     RecordChunk, calc_strides, calc_new_strides, shape_agreement,
     calculate_broadcast_strides, calc_backstrides, calc_start, is_c_contiguous,
     is_f_contiguous)
diff --git a/pypy/module/micronumpy/ctors.py b/pypy/module/micronumpy/ctors.py
--- a/pypy/module/micronumpy/ctors.py
+++ b/pypy/module/micronumpy/ctors.py
@@ -82,7 +82,7 @@
     return w_res
 
 def _array(space, w_object, w_dtype=None, copy=True, w_order=None, subok=False):
-    from pypy.module.micronumpy import strides
+    from pypy.module.micronumpy import strideops
 
     # for anything that isn't already an array, try __array__ method first
     if not isinstance(w_object, W_NDimArray):
@@ -141,7 +141,7 @@
                     w_base=w_base, start=imp.start)
     else:
         # not an array
-        shape, elems_w = strides.find_shape_and_elems(space, w_object, dtype)
+        shape, elems_w = strideops.find_shape_and_elems(space, w_object, dtype)
     if dtype is None and space.isinstance_w(w_object, space.w_buffer):
         dtype = descriptor.get_dtype_cache(space).w_uint8dtype
     if dtype is None or (dtype.is_str_or_unicode() and dtype.elsize < 1):
@@ -163,7 +163,7 @@
 def numpify(space, w_object):
     """Convert the object to a W_NumpyObject"""
     # XXX: code duplication with _array()
-    from pypy.module.micronumpy import strides
+    from pypy.module.micronumpy import strideops
     if isinstance(w_object, W_NumpyObject):
         return w_object
     # for anything that isn't already an array, try __array__ method first
@@ -171,7 +171,7 @@
     if w_array is not None:
         return w_array
 
-    shape, elems_w = strides.find_shape_and_elems(space, w_object, None)
+    shape, elems_w = strideops.find_shape_and_elems(space, w_object, None)
     dtype = find_dtype_for_seq(space, elems_w, None)
     if dtype is None:
         dtype = descriptor.get_dtype_cache(space).w_float64dtype
diff --git a/pypy/module/micronumpy/flagsobj.py b/pypy/module/micronumpy/flagsobj.py
--- a/pypy/module/micronumpy/flagsobj.py
+++ b/pypy/module/micronumpy/flagsobj.py
@@ -6,7 +6,7 @@
 from pypy.interpreter.gateway import interp2app
 from pypy.interpreter.typedef import TypeDef, GetSetProperty
 from pypy.module.micronumpy import constants as NPY
-from pypy.module.micronumpy.strides import is_c_contiguous, is_f_contiguous
+from pypy.module.micronumpy.strideops import is_c_contiguous, is_f_contiguous
 
 def enable_flags(arr, flags):
     arr.flags |= flags
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,8 +18,9 @@
 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.strideops import get_shape_from_iterable, \
-    shape_agreement, shape_agreement_multiple, is_c_contiguous, is_f_contiguous
+from pypy.module.micronumpy.strideops import (get_shape_from_iterable,
+    shape_agreement, shape_agreement_multiple, is_c_contiguous,
+    is_f_contiguous, calc_strides)
 from pypy.module.micronumpy.casting import can_cast_array
 
 
@@ -1298,7 +1299,6 @@
 def descr_new_array(space, w_subtype, w_shape, w_dtype=None, w_buffer=None,
                     offset=0, w_strides=None, w_order=None):
     from pypy.module.micronumpy.concrete import ConcreteArray
-    from pypy.module.micronumpy.strides import calc_strides
     dtype = space.interp_w(descriptor.W_Dtype, space.call_function(
         space.gettypefor(descriptor.W_Dtype), w_dtype))
     shape = shape_converter(space, w_shape, dtype)
diff --git a/pypy/module/micronumpy/nditer.py b/pypy/module/micronumpy/nditer.py
--- a/pypy/module/micronumpy/nditer.py
+++ b/pypy/module/micronumpy/nditer.py
@@ -212,7 +212,7 @@
 def get_iter(space, order, arr, shape, dtype, op_flags, base):
     imp = arr.implementation
     backward = is_backward(imp, order)
-    if len(shape) == 1:
+    if len(shape) == 1 and len(imp.shape) > 0:
         min_dim = 0
         min_stride = 0xefffffff
         for i in range(len(imp.shape)):
@@ -316,6 +316,7 @@
     shape = [s+1 for s in old_iter.shape_m1]
     strides = old_iter.strides
     backstrides = old_iter.backstrides
+    print shape, strides, backstrides
     if order == 'F':
         new_shape = shape[1:]
         new_strides = strides[1:]
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -22,7 +22,7 @@
 from rpython.tool.sourcetools import func_with_new_name
 from pypy.module.micronumpy import boxes, support
 from pypy.module.micronumpy.concrete import SliceArray, VoidBoxStorage, V_OBJECTSTORE
-from pypy.module.micronumpy.strides import calc_strides
+from pypy.module.micronumpy.strideops import calc_strides
 from . import constants as NPY
 
 degToRad = math.pi / 180.0
diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py
--- a/pypy/module/micronumpy/ufuncs.py
+++ b/pypy/module/micronumpy/ufuncs.py
@@ -17,7 +17,7 @@
 from pypy.module.micronumpy.base import convert_to_array, W_NDimArray
 from pypy.module.micronumpy.ctors import numpify
 from pypy.module.micronumpy.nditer import W_NDIter, coalesce_iter
-from pypy.module.micronumpy.strides import shape_agreement
+from pypy.module.micronumpy.strideops import shape_agreement
 from pypy.module.micronumpy.support import (_parse_signature, product,
         get_storage_as_int, is_rhs_priority_higher)
 from .casting import (
@@ -861,6 +861,7 @@
                       w_itershape)
         # coalesce each iterators, according to inner_dimensions
         for i in range(len(inargs) + len(outargs)):
+            print 'ndim', self.core_num_dims[i]
             for j in range(self.core_num_dims[i]):
                 new_iter = coalesce_iter(nd_it.iters[i][0], nd_it.op_flags[i],
                                 nd_it, nd_it.order, flat=False)


More information about the pypy-commit mailing list