Hi Cedric, I think you can use this `GetResultValue(...)` https://github.com/apache/arrow/blob/master/python/pyarrow/includes/common.pxd#L131
On Sun, May 29, 2022 at 4:45 PM Cedric Yau <[email protected]> wrote: > I am trying to add a second function to the example at ( > https://arrow.apache.org/docs/python/integration/extending.html), and am > getting a compilation error message. I can't tell if I'm trying to access > ValueOrDie() improperly or if I might be missing a modification to setup.py > from the example. > > The function is as follows: > > def print_array(obj): > # Just an example function accessing both the pyarrow Cython API > # and the Arrow C++ API > cdef shared_ptr[CArray] arr = pyarrow_unwrap_array(obj) > if arr.get() == NULL: > raise TypeError("not an array") > cdef arr_len = arr.get().length() > cdef int i > cdef CResult[shared_ptr[CScalar]] r > for i in range(arr_len): > r = arr.get().GetScalar(i) > if r.ok(): > print(i, r.ValueOrDie()) > > And produces an error on compilation: > > Error compiling Cython file: > ------------------------------------------------------------ > ... > cdef int i > cdef CResult[shared_ptr[CScalar]] r > for i in range(arr_len): > r = arr.get().GetScalar(i) > if r.ok(): > print(i, r.ValueOrDie()) > ^ > ------------------------------------------------------------ > > example.pyx:26:22: Object of type 'CResult[shared_ptr[CScalar]]' has no > attribute 'ValueOrDie' > Traceback (most recent call last): > File "/home/ubuntu/repos/LbdInternal/PyarrowCython/setup.py", line 12, > in <module> > ext_modules = cythonize("example.pyx") > File > "/home/ubuntu/miniconda3/envs/lbdenv/lib/python3.10/site-packages/Cython/Build/Dependencies.py", > line 1127, in cythonize > cythonize_one(*args) > File > "/home/ubuntu/miniconda3/envs/lbdenv/lib/python3.10/site-packages/Cython/Build/Dependencies.py", > line 1250, in cythonize_one > raise CompileError(None, pyx_file) > Cython.Compiler.Errors.CompileError: example.pyx > > Environment is as follows: > > Ubuntu 20.04/x86 > Python 3.10.4 > cython 0.29.30 > pyarrow 8.0.0 > > Any help would be appreciated. > > Thanks, > Cedric > > -- Niranda Perera https://niranda.dev/ @n1r44 <https://twitter.com/N1R44>
