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]

Reply via email to