Author: mattip <[email protected]>
Branch:
Changeset: r75636:4d999c098b39
Date: 2015-02-02 00:33 +0200
http://bitbucket.org/pypy/pypy/changeset/4d999c098b39/
Log: handle the easiest ravel('K') case - is_c_contiguous and no negative
strides
diff --git a/pypy/module/micronumpy/ndarray.py
b/pypy/module/micronumpy/ndarray.py
--- a/pypy/module/micronumpy/ndarray.py
+++ b/pypy/module/micronumpy/ndarray.py
@@ -430,9 +430,15 @@
order = 'C'
else:
order = space.str_w(w_order)
+ if order == 'K' and is_c_contiguous(self.implementation):
+ for s in self.implementation.get_strides():
+ if s < 0:
+ break
+ else:
+ order = 'C'
if order != 'C':
raise OperationError(space.w_NotImplementedError, space.wrap(
- "order not implemented"))
+ "order != 'C' only partially implemented"))
return self.reshape(space, space.wrap(-1))
@unwrap_spec(w_axis=WrappedDefault(None),
diff --git a/pypy/module/micronumpy/test/test_ndarray.py
b/pypy/module/micronumpy/test/test_ndarray.py
--- a/pypy/module/micronumpy/test/test_ndarray.py
+++ b/pypy/module/micronumpy/test/test_ndarray.py
@@ -2994,6 +2994,7 @@
assert (arange(3).ravel() == arange(3)).all()
assert (arange(6).reshape(2, 3).ravel() == arange(6)).all()
assert (arange(6).reshape(2, 3).T.ravel() == [0, 3, 1, 4, 2, 5]).all()
+ assert (arange(3).ravel('K') == arange(3)).all()
def test_nonzero(self):
from numpy import array
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit