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

Reply via email to