Author: Brian Kearns <bdkea...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit