Author: Brian Kearns <[email protected]>
Branch:
Changeset: r69023:eabb5dd86586
Date: 2014-01-30 17:24 -0500
http://bitbucket.org/pypy/pypy/changeset/eabb5dd86586/
Log: fix numpy dtype char aliases
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
@@ -803,29 +803,19 @@
for dtype in reversed(self.builtin_dtypes):
self.dtypes_by_num[dtype.num] = dtype
self.dtypes_by_name[dtype.name] = dtype
- can_name = dtype.kind + str(dtype.get_size())
- self.dtypes_by_name[can_name] = dtype
- self.dtypes_by_name[NPY_NATBYTE + can_name] = dtype
- self.dtypes_by_name[NPY_NATIVE + can_name] = dtype
- new_name = NPY_OPPBYTE + can_name
- itemtype = type(dtype.itemtype)(False)
- self.dtypes_by_name[new_name] = W_Dtype(
- itemtype, dtype.num, dtype.kind, new_name, dtype.char,
- dtype.w_box_type, byteorder=NPY_OPPBYTE,
- float_type=dtype.float_type)
- if dtype.kind != dtype.char:
- can_name = dtype.char
+ for can_name in [dtype.kind + str(dtype.get_size()),
+ dtype.char]:
+ self.dtypes_by_name[can_name] = dtype
self.dtypes_by_name[NPY_NATBYTE + can_name] = dtype
self.dtypes_by_name[NPY_NATIVE + can_name] = dtype
new_name = NPY_OPPBYTE + can_name
+ itemtype = type(dtype.itemtype)(False)
self.dtypes_by_name[new_name] = W_Dtype(
itemtype, dtype.num, dtype.kind, new_name, dtype.char,
dtype.w_box_type, byteorder=NPY_OPPBYTE,
float_type=dtype.float_type)
-
for alias in dtype.aliases:
self.dtypes_by_name[alias] = dtype
- self.dtypes_by_name[dtype.char] = dtype
typeinfo_full = {
'LONGLONG': self.w_int64dtype,
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
@@ -788,6 +788,14 @@
assert dtype('>i8').str == '>i8'
assert dtype('int8').str == '|i1'
assert dtype('float').str == byteorder + 'f8'
+ assert dtype('f').str == byteorder + 'f4'
+ assert dtype('=f').str == byteorder + 'f4'
+ assert dtype('>f').str == '>f4'
+ assert dtype('<f').str == '<f4'
+ assert dtype('d').str == byteorder + 'f8'
+ assert dtype('=d').str == byteorder + 'f8'
+ assert dtype('>d').str == '>f8'
+ assert dtype('<d').str == '<f8'
# strange
assert dtype('string').str == '|S0'
assert dtype('unicode').str == byteorder + 'U0'
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit