from libc.string cimport strlen
from cpython.bytearray cimport PyByteArray_FromStringAndSize, PyByteArray_Resize
from cpython.bytearray cimport PyByteArray_AS_STRING
+from cpython.memoryview cimport PyMemoryView_FromObject
cdef class Escaping:
f"escape_literal failed: {error_message(self.conn)}"
)
- return memoryview(PQBuffer._from_buffer(<unsigned char *>out, strlen(out)))
+ return PyMemoryView_FromObject(
+ PQBuffer._from_buffer(<unsigned char *>out, strlen(out))
+ )
def escape_identifier(self, data: "Buffer") -> memoryview:
cdef char *out
f"escape_identifier failed: {error_message(self.conn)}"
)
- return memoryview(PQBuffer._from_buffer(<unsigned char *>out, strlen(out)))
+ return PyMemoryView_FromObject(
+ PQBuffer._from_buffer(<unsigned char *>out, strlen(out))
+ )
def escape_string(self, data: "Buffer") -> memoryview:
cdef int error
# shrink back or the length will be reported different
PyByteArray_Resize(rv, len_out)
- return memoryview(rv)
+ return PyMemoryView_FromObject(rv)
def escape_bytea(self, data: "Buffer") -> memoryview:
cdef size_t len_out
f"couldn't allocate for escape_bytea of {len(data)} bytes"
)
- return memoryview(
+ return PyMemoryView_FromObject(
PQBuffer._from_buffer(out, len_out - 1) # out includes final 0
)
f"couldn't allocate for unescape_bytea of {len(data)} bytes"
)
- return memoryview(PQBuffer._from_buffer(out, len_out))
+ return PyMemoryView_FromObject(PQBuffer._from_buffer(out, len_out))