Author: Ronan Lamy <[email protected]>
Branch: longdouble2
Changeset: r62904:e2a5bea67fff
Date: 2013-03-31 02:33 +0100
http://bitbucket.org/pypy/pypy/changeset/e2a5bea67fff/
Log: Factor out other-endian dtype creation
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
@@ -66,6 +66,16 @@
self.native = native
self.float_type = None
+ def _nonnative(self, name):
+ """NOT RPYTHON
+ Return the non-native version of this dtype
+ """
+ itemtypename = self.itemtype.__class__.__name__
+ itemtype = getattr(types, 'NonNative' + itemtypename)()
+ return W_Dtype(itemtype, self.num, self.kind, name, self.char,
+ self.BoxType, native=False)
+
+
@specialize.argtype(1)
def box(self, value):
return self.itemtype.box(value)
@@ -636,21 +646,13 @@
self.dtypes_by_name[byteorder_prefix + can_name] = dtype
self.dtypes_by_name['=' + can_name] = dtype
new_name = nonnative_byteorder_prefix + can_name
- itemtypename = dtype.itemtype.__class__.__name__
- itemtype = getattr(types, 'NonNative' + itemtypename)()
- self.dtypes_by_name[new_name] = W_Dtype(
- itemtype,
- dtype.num, dtype.kind, new_name, dtype.char, dtype.BoxType,
- native=False)
+ self.dtypes_by_name[new_name] = dtype._nonnative(new_name)
if dtype.kind != dtype.char:
can_name = dtype.char
self.dtypes_by_name[byteorder_prefix + can_name] = dtype
self.dtypes_by_name['=' + can_name] = dtype
new_name = nonnative_byteorder_prefix + can_name
- self.dtypes_by_name[new_name] = W_Dtype(
- itemtype,
- dtype.num, dtype.kind, new_name, dtype.char, dtype.BoxType,
- native=False)
+ self.dtypes_by_name[new_name] = dtype._nonnative(new_name)
for alias in dtype.aliases:
self.dtypes_by_name[alias] = dtype
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit