[pypy-commit] pypy cppyy-packaging: vector<bool>'s base class has no 'data'

wlav pypy.commits at gmail.com
Thu Jul 19 00:42:11 EDT 2018


Author: Wim Lavrijsen <WLavrijsen at lbl.gov>
Branch: cppyy-packaging
Changeset: r94877:e3f75a873428
Date: 2018-07-18 21:20 -0700
http://bitbucket.org/pypy/pypy/changeset/e3f75a873428/

Log:	vector<bool>'s base class has no 'data'

diff --git a/pypy/module/_cppyy/pythonify.py b/pypy/module/_cppyy/pythonify.py
--- a/pypy/module/_cppyy/pythonify.py
+++ b/pypy/module/_cppyy/pythonify.py
@@ -459,12 +459,13 @@
         pyclass.__init__ = vector_init
 
         # size-up the return of data()
-        pyclass.__real_data = pyclass.data
-        def data_with_len(self):
-            arr = self.__real_data()
-            arr.reshape((len(self),))
-            return arr
-        pyclass.data = data_with_len
+        if hasattr(pyclass, 'data'):   # not the case for e.g. vector<bool>
+            pyclass.__real_data = pyclass.data
+            def data_with_len(self):
+                arr = self.__real_data()
+                arr.reshape((len(self),))
+                return arr
+            pyclass.data = data_with_len
 
     # combine __getitem__ and __len__ to make a pythonized __getitem__
     if '__getitem__' in pyclass.__dict__ and '__len__' in pyclass.__dict__:


More information about the pypy-commit mailing list