Author: Wim Lavrijsen <wlavrij...@lbl.gov> Branch: reflex-support Changeset: r59940:99c1280ae1cd Date: 2013-01-10 17:21 -0800 http://bitbucket.org/pypy/pypy/changeset/99c1280ae1cd/
Log: ability to read-back TTree branches that are of bool type diff --git a/pypy/module/cppyy/capi/cint_capi.py b/pypy/module/cppyy/capi/cint_capi.py --- a/pypy/module/cppyy/capi/cint_capi.py +++ b/pypy/module/cppyy/capi/cint_capi.py @@ -213,6 +213,7 @@ w_typename = space.call_method(w_leaf, "GetTypeName" ) from pypy.module.cppyy import capi typename = capi.c_resolve_name(space.str_w(w_typename)) + if typename == 'bool': typename = '_Bool' w_address = space.call_method(w_leaf, "GetValuePointer") from pypy.module._cffi_backend import cdataobj, newtype cdata = cdataobj.W_CData(space, address, newtype.new_primitive_type(space, typename)) diff --git a/pypy/module/cppyy/test/test_cint.py b/pypy/module/cppyy/test/test_cint.py --- a/pypy/module/cppyy/test/test_cint.py +++ b/pypy/module/cppyy/test/test_cint.py @@ -318,7 +318,7 @@ assert i == self.N def test07_write_builtin(self): - """Test writing of a builtins""" + """Test writing of builtins""" from cppyy import gbl # bootstraps, only needed for tests from cppyy.gbl import TFile, TTree @@ -329,21 +329,25 @@ mytree._python_owns = False import array - a = array.array('i', [0]) - b = array.array('d', [0.]) + ba = array.array('c', [chr(0)]) + ia = array.array('i', [0]) + da = array.array('d', [0.]) - mytree.Branch("myi", a, "myi/I") - mytree.Branch("myd", b, "myd/D") + mytree.Branch("my_bool", ba, "my_bool/O") + mytree.Branch("my_int", ia, "my_int/I") + mytree.Branch("my_double", da, "my_double/D") for i in range(self.N): - a[0] = i+1 # make sure value is different from default (0) - b[0] = (i+1)/2. # id. 0. + # make sure value is different from default (0) + ba[0] = i%2 and chr(0) or chr(1) + ia[0] = i+1 + da[0] = (i+1)/2. mytree.Fill() f.Write() f.Close() def test08_read_builtin(self): - """Test reading of a single branched TTree with an std::vector<double>""" + """Test reading of builtins""" from cppyy import gbl from cppyy.gbl import TFile @@ -351,10 +355,13 @@ f = TFile(self.fname) mytree = f.Get(self.tname) + raises(AttributeError, getattr, mytree, "does_not_exist") + i = 1 for event in mytree: - assert event.myi == i - assert event.myd == i/2. + assert event.my_bool == (i-1)%2 and 0 or 1 + assert event.my_int == i + assert event.my_double == i/2. i += 1 assert (i-1) == self.N _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit