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