pitrou commented on code in PR #45818:
URL: https://github.com/apache/arrow/pull/45818#discussion_r2068900808


##########
python/pyarrow/scalar.pxi:
##########
@@ -847,6 +882,33 @@ cdef class BinaryScalar(Scalar):
         buffer = self.as_buffer()
         return None if buffer is None else buffer.to_pybytes()
 
+    def __bytes__(self):
+        return (self.as_py())
+
+    def __getbuffer__(self, cp.Py_buffer* buffer, int flags):
+        cdef Buffer buf = self.as_buffer()
+
+        if buf.buffer.get().is_mutable():

Review Comment:
   I don't think you have to do all this by hand. `self.as_buffer()` already 
gives you a [Python 
buffer-compliant](https://docs.python.org/3/c-api/buffer.html) object, so you 
can build on that.
   
   Something like this:
   ```cython
       def __getbuffer__(self, cp.Py_buffer* view, int flags):
           buf = self.as_buffer()
           if buf is None:
               raise ValueError("Cannot export buffer from null Arrow Scalar")
           return cp.PyObject_GetBuffer(buf, view, flags)
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to