2222from cython.operator cimport dereference as deref
2323
2424from pyarrow.includes.libarrow cimport *
25+ from pyarrow.includes.common cimport PyObject_to_object
2526cimport pyarrow.includes.pyarrow as pyarrow
2627
2728import pyarrow.config
@@ -32,6 +33,7 @@ from pyarrow.schema cimport box_data_type, box_schema
3233
3334from pyarrow.compat import frombytes, tobytes
3435
36+ cimport cpython
3537
3638cdef class ChunkedArray:
3739 '''
@@ -100,8 +102,10 @@ cdef class Column:
100102
101103 import pandas as pd
102104
103- check_status(pyarrow.ConvertColumnToPandas(self .sp_column, self , & arr))
104- return pd.Series(< object > arr, name = self .name)
105+ check_status(pyarrow.ConvertColumnToPandas(self .sp_column,
106+ < PyObject* > self , & arr))
107+
108+ return pd.Series(PyObject_to_object(arr), name = self .name)
105109
106110 cdef _check_nullptr(self ):
107111 if self .column == NULL :
@@ -248,9 +252,10 @@ cdef class RecordBatch:
248252 data = []
249253 for i in range (self .batch.num_columns()):
250254 arr = self .batch.column(i)
251- check_status(pyarrow.ConvertArrayToPandas(arr, self , & np_arr))
255+ check_status(pyarrow.ConvertArrayToPandas(arr, < PyObject* > self ,
256+ & np_arr))
252257 names.append(frombytes(self .batch.column_name(i)))
253- data.append(< object > np_arr)
258+ data.append(PyObject_to_object( np_arr) )
254259
255260 return pd.DataFrame(dict (zip (names, data)), columns = names)
256261
@@ -375,9 +380,10 @@ cdef class Table:
375380 for i in range (self .table.num_columns()):
376381 col = self .table.column(i)
377382 column = self .column(i)
378- check_status(pyarrow.ConvertColumnToPandas(col, column, & arr))
383+ check_status(pyarrow.ConvertColumnToPandas(
384+ col, < PyObject* > column, & arr))
379385 names.append(frombytes(col.get().name()))
380- data.append(< object > arr)
386+ data.append(PyObject_to_object( arr) )
381387
382388 return pd.DataFrame(dict (zip (names, data)), columns = names)
383389
0 commit comments