Currently, many of the methods of pyarrow Array/ChunkedArray/RecordBatch/Table crash when the object is backed by buffers pointing to non-CPU data (i.e. all methods that actually do something with the data and not just return info like the schema or the length).
We should ensure users don't see segfaults but get a proper error about the method only being support for data on the CPU. Probably that will require adding some "ensure cpu" helper function to most methods in the Python bindings.
This helper function will then have to inspect the device of the buffers and ensure all of them are on the CPU (not sure if there already exists a helper for this on the C++ side?)