Author: Brian Kearns <bdkea...@gmail.com>
Branch: numpy-refactor
Changeset: r69508:026fac042564
Date: 2014-02-27 02:24 -0500
http://bitbucket.org/pypy/pypy/changeset/026fac042564/

Log:    allow creation of flagsobj from applevel

diff --git a/pypy/module/micronumpy/flagsobj.py 
b/pypy/module/micronumpy/flagsobj.py
--- a/pypy/module/micronumpy/flagsobj.py
+++ b/pypy/module/micronumpy/flagsobj.py
@@ -6,9 +6,13 @@
 
 class W_FlagsObject(W_Root):
     def __init__(self, arr):
-        self.arr = arr
         self.flags = 0
 
+    def descr__new__(space, w_subtype):
+        self = space.allocate_instance(W_FlagsObject, w_subtype)
+        W_FlagsObject.__init__(self, None)
+        return self
+
     def descr_get_contiguous(self, space):
         return space.w_True
 
@@ -60,6 +64,8 @@
 
 W_FlagsObject.typedef = TypeDef("flagsobj",
     __module__ = "numpy",
+    __new__ = interp2app(W_FlagsObject.descr__new__.im_func),
+
     __getitem__ = interp2app(W_FlagsObject.descr_getitem),
     __setitem__ = interp2app(W_FlagsObject.descr_setitem),
     __eq__ = interp2app(W_FlagsObject.descr_eq),
diff --git a/pypy/module/micronumpy/test/test_flagsobj.py 
b/pypy/module/micronumpy/test/test_flagsobj.py
--- a/pypy/module/micronumpy/test/test_flagsobj.py
+++ b/pypy/module/micronumpy/test/test_flagsobj.py
@@ -2,6 +2,14 @@
 
 
 class AppTestFlagsObj(BaseNumpyAppTest):
+    def test_init(self):
+        import numpy as np
+        a = np.array([1,2,3])
+        assert a.flags['C'] is True
+        b = type(a.flags)()
+        assert b is not a.flags
+        assert b['C'] is True
+
     def test_repr(self):
         import numpy as np
         a = np.array([1,2,3])
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to