[pypy-commit] pypy numpy-newbyteorder: provide ndarray.newbyteorder()
bdkearns
noreply at buildbot.pypy.org
Thu Nov 14 09:33:56 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch: numpy-newbyteorder
Changeset: r68019:303889d4a9d6
Date: 2013-11-14 03:23 -0500
http://bitbucket.org/pypy/pypy/changeset/303889d4a9d6/
Log: provide ndarray.newbyteorder()
diff --git a/pypy/module/micronumpy/conversion_utils.py b/pypy/module/micronumpy/conversion_utils.py
--- a/pypy/module/micronumpy/conversion_utils.py
+++ b/pypy/module/micronumpy/conversion_utils.py
@@ -63,6 +63,7 @@
raise OperationError(space.w_TypeError, space.wrap(
"order not understood"))
+
def multi_axis_converter(space, w_axis, ndim):
if space.is_none(w_axis):
return [True] * ndim
diff --git a/pypy/module/micronumpy/interp_numarray.py b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -625,10 +625,10 @@
raise OperationError(space.w_NotImplementedError, space.wrap(
"itemset not implemented yet"))
- @unwrap_spec(neworder=str)
- def descr_newbyteorder(self, space, neworder):
- raise OperationError(space.w_NotImplementedError, space.wrap(
- "newbyteorder not implemented yet"))
+ @unwrap_spec(new_order=str)
+ def descr_newbyteorder(self, space, new_order=NPY_SWAP):
+ return self.descr_view(space,
+ self.get_dtype().descr_newbyteorder(space, new_order))
@unwrap_spec(w_axis=WrappedDefault(None),
w_out=WrappedDefault(None))
@@ -1268,6 +1268,7 @@
diagonal = interp2app(W_NDimArray.descr_diagonal),
trace = interp2app(W_NDimArray.descr_trace),
view = interp2app(W_NDimArray.descr_view),
+ newbyteorder = interp2app(W_NDimArray.descr_newbyteorder),
ctypes = GetSetProperty(W_NDimArray.descr_get_ctypes), # XXX unimplemented
__array_interface__ = GetSetProperty(W_NDimArray.descr_array_iface),
diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -2928,6 +2928,15 @@
assert str(a.dtype) == '|S1'
assert a == 'x'
+ def test_newbyteorder(self):
+ import numpy as np
+ a = np.array([1, 2], dtype=np.int16)
+ b = a.newbyteorder()
+ assert (b == [256, 512]).all()
+ c = b.byteswap()
+ assert (c == [1, 2]).all()
+ assert (a == [1, 2]).all()
+
def test_pickle(self):
from numpypy import dtype, array
from cPickle import loads, dumps
More information about the pypy-commit
mailing list