To bring closure to this thread: #8401 <https://github.com/apache/arrow/pull/8401> implements the necessary functionality to import and export from and to the C data interface, includes an integration test to run these against the API provided by pyarrow, and the CI is green.
Special thanks to Antoine Pitrou that was instrumental in guiding me through this. Best, Jorge On Thu, Sep 24, 2020 at 7:25 PM Antoine Pitrou <anto...@python.org> wrote: > > Le 24/09/2020 à 17:18, Antoine Pitrou a écrit : > >> 1. in pyarrow, I was only able to find Array.from_buffers and > from_pandas. > >> Is the ABI implemented but not documented? > > > > It is implemented in C++ and also exposed (but undocumented) in Python. > > > > The Python methods are called `Array._import_from_c`, > > `Array._export_to_c`, likewise for `Schema` and `RecordBatch`. > > > > You can find the source for Array methods here: > > > https://github.com/apache/arrow/blob/master/python/pyarrow/array.pxi#L1201 > > > > There are ad-hoc tests for Python here: > > > https://github.com/apache/arrow/blob/master/python/pyarrow/tests/test_cffi.py > > > > The core C++ implementation is exported and documented here: > > https://github.com/apache/arrow/blob/master/cpp/src/arrow/c/bridge.h > > Ah, and there are a couple of low-level C helpers you may find useful > here, if you want to reimplement the same operations in Rust: > https://github.com/apache/arrow/blob/master/cpp/src/arrow/c/helpers.h > > Regards > > Antoine. >