[pypy-commit] pypy fix-result-types: kill find_dtype_for_scalar()

rlamy noreply at buildbot.pypy.org
Fri May 22 04:48:13 CEST 2015


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: fix-result-types
Changeset: r77471:2cddaf2f9154
Date: 2015-05-22 03:48 +0100
http://bitbucket.org/pypy/pypy/changeset/2cddaf2f9154/

Log:	kill find_dtype_for_scalar()

diff --git a/pypy/module/micronumpy/casting.py b/pypy/module/micronumpy/casting.py
--- a/pypy/module/micronumpy/casting.py
+++ b/pypy/module/micronumpy/casting.py
@@ -322,7 +322,3 @@
     elif space.isinstance_w(w_obj, space.w_str):
         return variable_dtype(space, 'S%d' % space.len_w(w_obj))
     return object_dtype
-
-def find_dtype_for_scalar(space, w_obj, current_guess=None):
-    dtype = scalar2dtype(space, w_obj)
-    return find_binop_result_dtype(space, dtype, current_guess)
diff --git a/pypy/module/micronumpy/strides.py b/pypy/module/micronumpy/strides.py
--- a/pypy/module/micronumpy/strides.py
+++ b/pypy/module/micronumpy/strides.py
@@ -220,22 +220,22 @@
         batch = new_batch
 
 
+def _dtype_guess(space, dtype, w_elem):
+    from .casting import scalar2dtype, find_binop_result_dtype
+    if isinstance(w_elem, W_NDimArray) and w_elem.is_scalar():
+        w_elem = w_elem.get_scalar_value()
+    elem_dtype = scalar2dtype(space, w_elem)
+    return find_binop_result_dtype(space, elem_dtype, dtype)
+
 def find_dtype_for_seq(space, elems_w, dtype):
-    from pypy.module.micronumpy.casting import find_dtype_for_scalar
     if len(elems_w) == 1:
         w_elem = elems_w[0]
-        if isinstance(w_elem, W_NDimArray) and w_elem.is_scalar():
-            w_elem = w_elem.get_scalar_value()
-        return find_dtype_for_scalar(space, w_elem, dtype)
+        return _dtype_guess(space, dtype, w_elem)
     return _find_dtype_for_seq(space, elems_w, dtype)
 
-
 def _find_dtype_for_seq(space, elems_w, dtype):
-    from pypy.module.micronumpy.casting import find_dtype_for_scalar
     for w_elem in elems_w:
-        if isinstance(w_elem, W_NDimArray) and w_elem.is_scalar():
-            w_elem = w_elem.get_scalar_value()
-        dtype = find_dtype_for_scalar(space, w_elem, dtype)
+        dtype = _dtype_guess(space, dtype, w_elem)
     return dtype
 
 


More information about the pypy-commit mailing list