Author: Brian Kearns <[email protected]>
Branch: 
Changeset: r69349:f9df75b6805c
Date: 2014-02-24 03:30 -0500
http://bitbucket.org/pypy/pypy/changeset/f9df75b6805c/

Log:    another dtype repr case

diff --git a/pypy/module/micronumpy/interp_dtype.py 
b/pypy/module/micronumpy/interp_dtype.py
--- a/pypy/module/micronumpy/interp_dtype.py
+++ b/pypy/module/micronumpy/interp_dtype.py
@@ -56,7 +56,10 @@
         self.w_box_type = w_box_type
         self.float_type = float_type
         if byteorder is None:
-            byteorder = NPY.IGNORE if self.num == NPY.STRING else NPY.NATIVE
+            if itemtype.get_element_size() == 1:
+                byteorder = NPY.IGNORE
+            else:
+                byteorder = NPY.NATIVE
         self.byteorder = byteorder
         self.names = names
         self.fields = fields
@@ -140,7 +143,7 @@
                 self.descr_get_shape(space)]))
         else:
             if self.is_flexible_type():
-                return space.wrap('|' + self.char + str(self.get_size()))
+                return self.descr_get_str(space)
             else:
                 return self.descr_get_name(space)
 
@@ -152,7 +155,11 @@
                                 self.descr_get_shape(space)])
         else:
             if self.is_flexible_type():
-                r = space.wrap(self.char + str(self.get_size()))
+                if self.byteorder != NPY.IGNORE:
+                    byteorder = NPY.NATBYTE if self.is_native() else 
NPY.OPPBYTE
+                else:
+                    byteorder = ''
+                r = space.wrap(byteorder + self.char + str(self.size))
             else:
                 r = self.descr_get_name(space)
         return space.wrap("dtype(%s)" % space.str_w(space.repr(r)))
diff --git a/pypy/module/micronumpy/test/test_dtypes.py 
b/pypy/module/micronumpy/test/test_dtypes.py
--- a/pypy/module/micronumpy/test/test_dtypes.py
+++ b/pypy/module/micronumpy/test/test_dtypes.py
@@ -182,7 +182,7 @@
 
     def test_repr_str(self):
         from numpypy import dtype
-
+        b = dtype(int).newbyteorder().newbyteorder().byteorder
         assert '.dtype' in repr(dtype)
         d = dtype('?')
         assert repr(d) == "dtype('bool')"
@@ -193,9 +193,15 @@
         d = dtype('S5')
         assert repr(d) == "dtype('S5')"
         assert str(d) == "|S5"
+        d = dtype('U5')
+        assert repr(d) == "dtype('%sU5')" % b
+        assert str(d) == "%sU5" % b
         d = dtype(('<f8', 2))
         assert repr(d) == "dtype(('<f8', (2,)))"
         assert str(d) == "('<f8', (2,))"
+        d = dtype('V16')
+        assert repr(d) == "dtype('V16')"
+        assert str(d) == "|V16"
 
     def test_bool_array(self):
         from numpypy import array, False_, True_
@@ -865,6 +871,8 @@
         assert dtype('>S5').byteorder == '|'
         assert dtype('<S5').byteorder == '|'
         assert dtype('<S5').newbyteorder('=').byteorder == '|'
+        assert dtype('void').byteorder == '|'
+        assert dtype((int, 2)).byteorder == '|'
 
     def test_dtype_str(self):
         from numpypy import dtype
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to