[pypy-commit] pypy numpy-singledim: added size and ndim properties to numpy array.

Timo Paulssen noreply at buildbot.pypy.org
Wed Jul 13 23:33:00 CEST 2011


Author: Timo Paulssen <timonator at perpetuum-immobile.de>
Branch: numpy-singledim
Changeset: r45572:35414c5cfac1
Date: 2011-07-13 18:08 +0200
http://bitbucket.org/pypy/pypy/changeset/35414c5cfac1/

Log:	added size and ndim properties to numpy array.

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
@@ -244,6 +244,12 @@
     def descr_len(self, space):
         return self.get_concrete().descr_len(space)
 
+    def descr_get_size(self, space):
+        return self.get_concrete().descr_len(space)
+
+    def descr_get_ndim(self, space):
+        return self.get_concrete().descr_get_ndim(space)
+
     def descr_getitem(self, space, w_idx):
         # TODO: indexing by tuples
         start, stop, step, slice_length = space.decode_index4(w_idx, self.find_size())
@@ -467,6 +473,9 @@
     def descr_len(self, space):
         return space.wrap(self.size)
 
+    def descr_get_ndim(self, space):
+        return space.wrap(1)
+
     def getitem(self, item):
         return self.storage[item]
 
@@ -507,6 +516,8 @@
     __new__ = interp2app(descr_new_numarray),
 
     shape = GetSetProperty(BaseArray.descr_get_shape),
+    size = GetSetProperty(BaseArray.descr_get_size),
+    ndim = GetSetProperty(BaseArray.descr_get_ndim),
 
     __len__ = interp2app(BaseArray.descr_len),
     __getitem__ = interp2app(BaseArray.descr_getitem),
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
@@ -66,6 +66,18 @@
         assert len(a) == 5
         assert len(a + a) == 5
 
+    def test_ndim(self):
+        from numpy import array
+        a = array(range(4))
+        assert a.ndim == 1
+        assert (a + a).ndim == 1
+
+    def test_size(self):
+        from numpy import array
+        a = array(range(4))
+        assert a.size == 4
+        assert (a + a).size == 4
+
     def test_shape(self):
         from numpy import array
         a = array(range(5))


More information about the pypy-commit mailing list