hi Saul -- I think the easiest solution here is the buffer/memoryview
protocol. You won't have to touch the Cython or C++ API from pyarrow
if you do this.

You can interact with a Buffer object like any other Python object
implementing the buffer protocol. See numpy.frombuffer as an example
of a function that interacts with such objects. I would suggest adding
a method to xnd method for this.

If you need to interact with Plasma from C then things will be more
complicated -- Robert or Philipp should be able to advise in this
case.

- Wes

On Tue, Mar 6, 2018 at 4:55 PM, Saul Shanabrook <s.shanabr...@gmail.com> wrote:
> Hey Wes,
>
> I don't have much experience doing C + Python + Cython development, so I am
> probably missing something obvious, but reading the Cython docs,
> <https://cython.readthedocs.io/en/latest/src/userguide/external_C_code.html#public-declarations>
> it
> seems like I can only access types marked as public from C code. When I
> compile arrow locally, I do get some C++ headers for the plasma code, but I
> don't think I can use them from C code either.
>
> Best,
> Saul
>
>
>
> On Tue, Mar 6, 2018 at 3:12 PM Wes McKinney <wesmck...@gmail.com> wrote:
>
>> hi Saul,
>>
>> Are you able to use the buffer/memoryview protocol? Instances of
>> pyarrow.Buffer, like PlasmaBuffer, support this
>>
>> https://github.com/apache/arrow/blob/master/python/pyarrow/plasma.pyx#L182
>>
>> - Wes
>>
>> On Tue, Mar 6, 2018 at 3:09 PM, Saul Shanabrook <s.shanabr...@gmail.com>
>> wrote:
>> > I am trying to use the Plasma store to back xnd objects. Xnd (
>> > https://xnd.readthedocs.io/en/latest/xnd/index.html) is a container
>> library
>> > in C that has Python bindings. I would like to get a pointer to the
>> > allocated memory after creating or get an object in Plasma. I see that
>> this
>> > is supported in the C++ API (
>> >
>> https://arrow.apache.org/docs/cpp/classplasma_1_1_plasma_client.html#ac18ab9cc792c620a97a3dcb165e0ecd7
>> )
>> > but not in the python API (as far as I can tell). Is it possible to use
>> the
>> > C++ Plasma API from a C project? If not, would it make sense to expose
>> > pointer access on the Python API using capsules
>> > https://docs.python.org/3.6/c-api/capsule.html
>> > <https://docs.python.org/3.6/c-api/capsule.html#capsules>?
>>

Reply via email to