Объекты MemoryView

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

PyObject *PyMemoryView_FromObject(PyObject *obj)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyBUF_READ

Флаг для запроса буфера, доступного только для чтения.

PyBUF_WRITE

Флаг для запроса буфера с возможностью записи.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI с версии 3.7.

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

Added in version 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI с версии 3.11.

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

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

buffertype может быть одним из PyBUF_READ или PyBUF_WRITE.

int PyMemoryView_Check(PyObject *obj)

Возвращает true, если объект obj является объектом memoryview. В настоящее время не разрешается создавать подклассы memoryview. Эта функция всегда успешна.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

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

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

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