cdef extern from "Python.h": int PyObject_AsReadBuffer(obj, void **buffer, Py_ssize_t *buffer_len) except -1 cdef class Packet: def __init__(self, dataContents = "", flags = 0): cdef char *buf cdef Py_ssize_t len PyObject_AsReadBuffer(dataContents, &buf, &len) # Safe - enet_packet_create copies the buffer self._enet_packet = enet_packet_create(buf, len, flags)