Author: Justin Peel <notmuchtot...@gmail.com>
Branch: numpy-dtype
Changeset: r46234:21b2605606ce
Date: 2011-08-03 01:13 -0600
http://bitbucket.org/pypy/pypy/changeset/21b2605606ce/

Log:    change array repr and str to format ints and bools correctly. still
        need to show dtype.

diff --git a/pypy/module/micronumpy/interp_numarray.py 
b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -200,19 +200,24 @@
             return self.descr_mul(space, w_other)
 
     def _getnums(self, comma):
+        kind = self.find_dtype().kind
+        if kind == 'f':
+            format_func = float2string
+        else:
+            format_func = str
         if self.find_size() > 1000:
             nums = [
-                float2string(self.eval(index))
+                format_func(self.eval(index))
                 for index in range(3)
             ]
             nums.append("..." + "," * comma)
             nums.extend([
-                float2string(self.eval(index))
+                format_func(self.eval(index))
                 for index in range(self.find_size() - 3, self.find_size())
             ])
         else:
             nums = [
-                float2string(self.eval(index))
+                format_func(self.eval(index))
                 for index in range(self.find_size())
             ]
         return nums
diff --git a/pypy/module/micronumpy/test/test_numarray.py 
b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -56,6 +56,10 @@
         assert repr(a) == "array([0.0, 1.0, 2.0, 3.0, 4.0])"
         a = zeros(1001)
         assert repr(a) == "array([0.0, 0.0, 0.0, ..., 0.0, 0.0, 0.0])"
+        a = array(range(5), 'l')
+        assert repr(a) == "array([0, 1, 2, 3, 4])"
+        a = array([True, False, True, False], '?')
+        assert repr(a) == "array([True, False, True, False])"
 
     def test_repr_slice(self):
         from numpy import array, zeros
@@ -73,6 +77,10 @@
         assert str((2*a)[:]) == "[0.0 2.0 4.0 6.0 8.0]"
         a = zeros(1001)
         assert str(a) == "[0.0 0.0 0.0 ..., 0.0 0.0 0.0]"
+        a = array(range(5), 'l')
+        assert str(a) == "[0 1 2 3 4]"
+        a = array([True, False, True, False], '?')
+        assert str(a) == "[True False True False]"
 
     def test_str_slice(self):
         from numpy import array, zeros
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to