Spec-Zone.ru › Python 3.14

Поддержка маршалинга данных

Эти процедуры позволяют коду на C работать с сериализованными объектами, используя тот же формат данных, что и модуль marshal. Предусмотрены функции для записи данных в формате сериализации и дополнительные функции для чтения данных. Файлы для хранения маршалированных данных необходимо открывать в двоичном режиме.

Числовые значения хранятся начиная с младшего байта.

Модуль поддерживает несколько версий формата данных; подробности см. в документации Python module documentation.

Py_MARSHAL_VERSION

Текущая версия формата. См. marshal.version.

void PyMarshal_WriteLongToFile(long value, FILE *file, int version)

Маршалирует целое число long value в file. Будут записаны только младшие 32 бита value, независимо от размера встроенного типа long. Параметр version задаёт формат файла.

Эта функция может завершиться ошибкой, при этом устанавливается индикатор ошибки. Для проверки используйте PyErr_Occurred().

void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version)

Маршалирует объект Python value в file. Параметр version задаёт формат файла.

Эта функция может завершиться ошибкой, при этом устанавливается индикатор ошибки. Для проверки используйте PyErr_Occurred().

PyObject *PyMarshal_WriteObjectToString(PyObject *value, int version)
Возвращаемое значение: новая ссылка.

Возвращает объект bytes, содержащий маршалированное представление value. Параметр version задаёт формат файла.

Следующие функции позволяют считывать маршалированные значения.

long PyMarshal_ReadLongFromFile(FILE *file)

Возвращает значение C-типа long из потока данных в открытом для чтения файле FILE*. С помощью этой функции можно прочитать только 32-битное значение, независимо от встроенного размера long.

В случае ошибки устанавливает соответствующее исключение (EOFError) и возвращает -1.

int PyMarshal_ReadShortFromFile(FILE *file)

Возвращает значение C-типа short из потока данных в открытом для чтения файле FILE*. С помощью этой функции можно прочитать только 16-битное значение, независимо от встроенного размера short.

В случае ошибки устанавливает соответствующее исключение (EOFError) и возвращает -1.

PyObject *PyMarshal_ReadObjectFromFile(FILE *file)
Возвращаемое значение: новая ссылка.

Возвращает объект Python из потока данных в открытом для чтения файле FILE*.

В случае ошибки устанавливает соответствующее исключение (EOFError, ValueError или TypeError) и возвращает NULL.

PyObject *PyMarshal_ReadLastObjectFromFile(FILE *file)
Возвращаемое значение: новая ссылка.

Возвращает объект Python из потока данных в открытом для чтения файле FILE*. В отличие от PyMarshal_ReadObjectFromFile(), эта функция предполагает, что из файла больше не будут считываться объекты, поэтому может активно загружать данные файла в память, чтобы десериализация выполнялась в памяти, а не считывала данные из файла по одному байту за раз. Используйте этот вариант, только если уверены, что больше не будете читать данные из файла.

В случае ошибки устанавливает соответствующее исключение (EOFError, ValueError или TypeError) и возвращает NULL.

PyObject *PyMarshal_ReadObjectFromString(const char *data, Py_ssize_t len)
Возвращаемое значение: новая ссылка.

Возвращает объект Python из потока данных в буфере байтов длиной len, на который указывает data.

В случае ошибки устанавливает соответствующее исключение (EOFError, ValueError или TypeError) и возвращает NULL.

© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/marshal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API