Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r44981:9eafb5ae7f72
Date: 2011-06-16 19:05 -0700
http://bitbucket.org/pypy/pypy/changeset/9eafb5ae7f72/
Log: Added the shape property to numpy arrays.
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
@@ -1,7 +1,7 @@
from pypy.interpreter.baseobjspace import ObjSpace, W_Root, Wrappable
from pypy.interpreter.error import operationerrfmt
from pypy.interpreter.gateway import interp2app, unwrap_spec
-from pypy.interpreter.typedef import TypeDef
+from pypy.interpreter.typedef import TypeDef, GetSetProperty
from pypy.rlib import jit
from pypy.rpython.lltypesystem import lltype
from pypy.tool.sourcetools import func_with_new_name
@@ -80,6 +80,9 @@
def get_concrete(self):
raise NotImplementedError
+ def descr_get_shape(self, space):
+ return space.newtuple([self.descr_len(space)])
+
def descr_len(self, space):
return self.get_concrete().descr_len(space)
@@ -325,6 +328,9 @@
BaseArray.typedef = TypeDef(
'numarray',
__new__ = interp2app(descr_new_numarray),
+
+ shape = GetSetProperty(BaseArray.descr_get_shape),
+
__len__ = interp2app(BaseArray.descr_len),
__getitem__ = interp2app(BaseArray.descr_getitem),
__setitem__ = interp2app(BaseArray.descr_setitem),
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
@@ -56,6 +56,15 @@
assert len(a) == 5
assert len(a + a) == 5
+ def test_shape(self):
+ from numpy import array
+ a = array(range(5))
+ assert a.shape == (5,)
+ b = a + a
+ assert b.shape == (5,)
+ c = a[:3]
+ assert c.shape == (3,)
+
def test_add(self):
from numpy import array
a = array(range(5))
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit