Объекты MemureView

Объект memoryview представляет буферный интерфейс уровня C как объект Python, который затем может быть передан как любой другой объект.

PyObject *PyMemoryView_FromObject(PyObject *obj)
Return value: New reference.

Создать объект memoryview из объекта, предоставляющего интерфейс буфера. Если obj поддерживает экспорт буфера с возможностью записи, объект memoryview будет считываться/записываться, в противном случае он может быть доступен только для чтения или считываться/записываться по усмотрению экспортера.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Return value: New reference.

Создать объект memoryview, используя mem в качестве базового буфера. flags может быть одним из PyBUF_READ или PyBUF_WRITE.

Добавлено в версии 3.3.

PyObject *PyMemoryView_FromBuffer(Py_buffer *view)
Return value: New reference.

Создать объект memoryview, переносящий заданный view буферной структуры. Для простых байтовых буферов предпочтительной функцией является PyMemoryView_FromMemory().

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Return value: New reference.

Создать объект memoryview в смежный чанке памяти (в «C» или «F» ortran порядке) из объекта, определяющего интерфейс буфера. Если память является смежной, объект memoryview указывает на исходную память. В противном случае выполняется копирование, и вид памяти указывает на новый байтовый объект.

int PyMemoryView_Check(PyObject *obj)

Возвращает true, если obj объект является объектом memoryview. В настоящее время создание подклассов memoryview запрещено.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

Возвращает указатель на закрытую копию памяти буфера экспортера. mview должен быть сущностью memoryview; этот макрос не проверяет его тип, необходимо сделать это самостоятельно или вы рискуете сбоями.

Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)

Возвращает либо указатель на экспортируемый объект, на котором основано memoryview, либо NULL, было ли memoryview создано одной из функций PyMemoryView_FromMemory() или PyMemoryView_FromBuffer(). mview должен быть memoryview сущностью.