Author: Brian Kearns <bdkea...@gmail.com>
Branch: 
Changeset: r69407:6928506f34e4
Date: 2014-02-25 03:22 -0500
http://bitbucket.org/pypy/pypy/changeset/6928506f34e4/

Log:    fixes for newbyteorder on flexible dtypes

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
@@ -409,7 +409,9 @@
                 endian = newendian
         itemtype = self.itemtype.__class__(endian in (NPY.NATIVE, NPY.NATBYTE))
         return W_Dtype(itemtype, self.num, self.kind, self.char,
-                       self.w_box_type, byteorder=endian, elsize=self.elsize)
+                       self.w_box_type, byteorder=endian, elsize=self.elsize,
+                       names=self.names, fields=self.fields,
+                       shape=self.shape, subdtype=self.subdtype)
 
 
 @specialize.arg(2)
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
@@ -428,6 +428,20 @@
             s2 = np.array(123, dtype=dt2).byteswap().tostring()
             assert s1 == s2
 
+        d = np.dtype([('', '<i8')]).newbyteorder()
+        assert d.shape == ()
+        assert d.names == ('f0',)
+        #assert d.fields['f0'] == ('>i8', 0)
+        assert d.subdtype is None
+        #assert d.descr == [('f0', '>i8')]
+        #assert str(d) == "[('f0', '>i8')]"
+        d = np.dtype(('<i8', 2)).newbyteorder()
+        assert d.shape == (2,)
+        assert d.names is None
+        assert d.fields is None
+        assert d.descr == [('', '|V16')]
+        #assert str(d) == "('>i8', (2,))"
+
     def test_object(self):
         import numpy as np
         import sys
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to