[pypy-commit] pypy default: provide byteswap for scalars

bdkearns noreply at buildbot.pypy.org
Thu Jan 30 23:36:37 CET 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r69024:e7e998e6b19f
Date: 2014-01-30 17:35 -0500
http://bitbucket.org/pypy/pypy/changeset/e7e998e6b19f/

Log:	provide byteswap for scalars

diff --git a/pypy/module/micronumpy/interp_boxes.py b/pypy/module/micronumpy/interp_boxes.py
--- a/pypy/module/micronumpy/interp_boxes.py
+++ b/pypy/module/micronumpy/interp_boxes.py
@@ -327,6 +327,9 @@
     def descr_buffer(self, space):
         return self.descr_ravel(space).descr_get_data(space)
 
+    def descr_byteswap(self, space):
+        return self.get_dtype(space).itemtype.byteswap(self)
+
     w_flags = None
     def descr_get_flags(self, space):
         if self.w_flags is None:
@@ -592,6 +595,7 @@
     view = interp2app(W_GenericBox.descr_view),
     squeeze = interp2app(W_GenericBox.descr_self),
     copy = interp2app(W_GenericBox.descr_copy),
+    byteswap = interp2app(W_GenericBox.descr_byteswap),
 
     dtype = GetSetProperty(W_GenericBox.descr_get_dtype),
     size = GetSetProperty(W_GenericBox.descr_get_size),
diff --git a/pypy/module/micronumpy/test/test_scalar.py b/pypy/module/micronumpy/test/test_scalar.py
--- a/pypy/module/micronumpy/test/test_scalar.py
+++ b/pypy/module/micronumpy/test/test_scalar.py
@@ -111,6 +111,13 @@
         b = buffer(a)
         assert str(b) == a
 
+    def test_byteswap(self):
+        import numpy as np
+        assert np.int64(123).byteswap() == 8863084066665136128
+        a = np.complex64(1+2j).byteswap()
+        assert repr(a.real).startswith('4.60060')
+        assert repr(a.imag).startswith('8.96831')
+
     def test_squeeze(self):
         import numpy as np
         assert np.True_.squeeze() is np.True_


More information about the pypy-commit mailing list