Cool. Thanks Niranda. That worked. :) On Sun, May 29, 2022 at 3:25 PM Niranda Perera <[email protected]> wrote:
> 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> > > -- Cedric Yau [email protected]
