Создание объектов Py_buffer из C и передача как часть диктата в Python

#python #protocol-buffers

Вопрос:

У меня есть приложение на C , которое создает различные объекты в буферах, я хотел бы передать эти буферы в код Python, чтобы пользователи приложения могли писать фрагменты Python для управления этими буферами.

Я уже делаю это с типами данных масштабирования и простыми массивами, передавая ДИКТ в скрипт Python со всеми данными, чего я не могу понять, так это как передать большой буфер из 16 или 24 битных значений в Python как часть ДИКТА. Я видел документацию по протоколу буфера, но большинство, если не все примеры, похоже, работают по-другому, когда Python передает буфер в код C. Я хотел бы сделать это без копирования данных, если это возможно, поэтому протокол буфера оказался подходящим решением.

Я попытался создать и заполнить структуру Py_buffer вручную, но не знаю, что делать с полем PyObject (obj) в структуре. Все в документации говорит об экспортере, что я могу увидеть, если мы создадим объект на Python и передадим его в C, но я хочу сделать это наоборот. Предположительно, если у меня есть что-то в этом поле, это то, что я могу использовать для добавления буфера в DICT, как и любой другой PyObject, который я добавляю.

Комментарии:

1. пара советов, которые облегчат людям ответ на ваш вопрос: добавьте ссылки на документацию, о которой вы говорите, добавьте репрезентативные фрагменты кода, укажите любые ошибки, которые вы получаете.