| 216 | PyBuffer::PyBuffer() : Buffer(nullptr, 0) {} |
| 217 | |
| 218 | Status PyBuffer::Init(PyObject* obj) { |
| 219 | if (!PyObject_GetBuffer(obj, &py_buf_, PyBUF_ANY_CONTIGUOUS)) { |
| 220 | data_ = reinterpret_cast<const uint8_t*>(py_buf_.buf); |
| 221 | ARROW_CHECK_NE(data_, nullptr) << "Null pointer in Py_buffer"; |
| 222 | size_ = py_buf_.len; |
| 223 | capacity_ = py_buf_.len; |
| 224 | is_mutable_ = !py_buf_.readonly; |
| 225 | return Status::OK(); |
| 226 | } else { |
| 227 | return ConvertPyError(StatusCode::Invalid); |
| 228 | } |
| 229 | } |
| 230 | |
| 231 | Result<std::shared_ptr<Buffer>> PyBuffer::FromPyObject(PyObject* obj) { |
| 232 | PyBuffer* buf = new PyBuffer(); |
no test coverage detected