Author: Brian Kearns <[email protected]>
Branch: 
Changeset: r69351:cd4420b9945f
Date: 2014-02-24 05:08 -0500
http://bitbucket.org/pypy/pypy/changeset/cd4420b9945f/

Log:    remove some unnecessary code

diff --git a/pypy/module/micronumpy/loop.py b/pypy/module/micronumpy/loop.py
--- a/pypy/module/micronumpy/loop.py
+++ b/pypy/module/micronumpy/loop.py
@@ -90,19 +90,11 @@
         obj_iter.next()
     return out
 
-setslice_driver1 = jit.JitDriver(name='numpy_setslice1',
-                                greens = ['shapelen', 'dtype'],
-                                reds = 'auto')
-setslice_driver2 = jit.JitDriver(name='numpy_setslice2',
+setslice_driver = jit.JitDriver(name='numpy_setslice',
                                 greens = ['shapelen', 'dtype'],
                                 reds = 'auto')
 
 def setslice(space, shape, target, source):
-    if target.dtype.is_str_or_unicode():
-        return setslice_build_and_convert(space, shape, target, source)
-    return setslice_to(space, shape, target, source)
-
-def setslice_to(space, shape, target, source):
     # note that unlike everything else, target and source here are
     # array implementations, not arrays
     target_iter = target.create_iter(shape)
@@ -110,22 +102,11 @@
     dtype = target.dtype
     shapelen = len(shape)
     while not target_iter.done():
-        setslice_driver1.jit_merge_point(shapelen=shapelen, dtype=dtype)
-        target_iter.setitem(source_iter.getitem().convert_to(space, dtype))
-        target_iter.next()
-        source_iter.next()
-    return target
-
-def setslice_build_and_convert(space, shape, target, source):
-    # note that unlike everything else, target and source here are
-    # array implementations, not arrays
-    target_iter = target.create_iter(shape)
-    source_iter = source.create_iter(shape)
-    dtype = target.dtype
-    shapelen = len(shape)
-    while not target_iter.done():
-        setslice_driver2.jit_merge_point(shapelen=shapelen, dtype=dtype)
-        target_iter.setitem(dtype.build_and_convert(space, 
source_iter.getitem()))
+        setslice_driver.jit_merge_point(shapelen=shapelen, dtype=dtype)
+        if dtype.is_str_or_unicode():
+            target_iter.setitem(dtype.coerce(space, source_iter.getitem()))
+        else:
+            target_iter.setitem(source_iter.getitem().convert_to(space, dtype))
         target_iter.next()
         source_iter.next()
     return target
@@ -434,43 +415,21 @@
         ri.next()
     return res
 
-flatiter_setitem_driver1 = jit.JitDriver(name = 'numpy_flatiter_setitem1',
-                                        greens = ['dtype'],
-                                        reds = 'auto')
-
-flatiter_setitem_driver2 = jit.JitDriver(name = 'numpy_flatiter_setitem2',
+flatiter_setitem_driver = jit.JitDriver(name = 'numpy_flatiter_setitem',
                                         greens = ['dtype'],
                                         reds = 'auto')
 
 def flatiter_setitem(space, arr, val, start, step, length):
     dtype = arr.get_dtype()
-    if dtype.is_str_or_unicode():
-        return flatiter_setitem_build_and_convert(space, arr, val, start, 
step, length)
-    return flatiter_setitem_to(space, arr, val, start, step, length)
-
-def flatiter_setitem_to(space, arr, val, start, step, length):
-    dtype = arr.get_dtype()
     arr_iter = arr.create_iter()
     val_iter = val.create_iter()
     arr_iter.next_skip_x(start)
     while length > 0:
-        flatiter_setitem_driver1.jit_merge_point(dtype=dtype)
-        arr_iter.setitem(val_iter.getitem().convert_to(space, dtype))
-        # need to repeat i_nput values until all assignments are done
-        arr_iter.next_skip_x(step)
-        length -= 1
-        val_iter.next()
-        # WTF numpy?
-        val_iter.reset()
-
-def flatiter_setitem_build_and_convert(space, arr, val, start, step, length):
-    dtype = arr.get_dtype()
-    arr_iter = arr.create_iter()
-    val_iter = val.create_iter()
-    arr_iter.next_skip_x(start)
-    while length > 0:
-        flatiter_setitem_driver2.jit_merge_point(dtype=dtype)
-        arr_iter.setitem(dtype.build_and_convert(space, val_iter.getitem()))
+        flatiter_setitem_driver.jit_merge_point(dtype=dtype)
+        if dtype.is_str_or_unicode():
+            arr_iter.setitem(dtype.coerce(space, val_iter.getitem()))
+        else:
+            arr_iter.setitem(val_iter.getitem().convert_to(space, dtype))
         # need to repeat i_nput values until all assignments are done
         arr_iter.next_skip_x(step)
         length -= 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
@@ -1744,23 +1744,6 @@
     def bool(self, v):
         return bool(self.to_str(v))
 
-    def build_and_convert(self, space, mydtype, box):
-        if isinstance(box, interp_boxes.W_StringBox):
-            return box
-        assert isinstance(box, interp_boxes.W_GenericBox)
-        if box.get_dtype(space).is_str_or_unicode():
-            arg = box.get_dtype(space).itemtype.to_str(box)
-        else:
-            w_arg = box.descr_str(space)
-            arg = space.str_w(space.str(w_arg))
-        arr = VoidBoxStorage(mydtype.size, mydtype)
-        i = 0
-        for i in range(min(len(arg), mydtype.size)):
-            arr.storage[i] = arg[i]
-        for j in range(i + 1, mydtype.size):
-            arr.storage[j] = '\x00'
-        return interp_boxes.W_StringBox(arr, 0, arr.dtype)
-
     def fill(self, storage, width, box, start, stop, offset):
         for i in xrange(start, stop, width):
             self._store(storage, i, offset, box, width)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to