Реестр кодеков и функции поддержки

int PyCodec_Register(PyObject *search_function)
Part of the Stable ABI.

Зарегистрируйте новую функцию поиска кодеков.

В качестве побочного эффекта, он пытается загрузить пакет encodings, если это еще не сделано, чтобы убедиться, что он всегда первый в списке функций поиска.

int PyCodec_Unregister(PyObject *search_function)
Part of the Stable ABI since version 3.10.

Снимите с регистрации функцию поиска кодеков и очистите кэш реестра. Если функция поиска не зарегистрирована, ничего не делать. Верните 0 при успехе. Вызвать исключение и вернуть -1 при ошибке.

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

int PyCodec_KnownEncoding(const char *encoding)
Part of the Stable ABI.

Возвращает 1 или 0 в зависимости от того, существует ли зарегистрированный кодек для данного кодирования. Эта функция всегда успешна.

PyObject *PyCodec_Encode(PyObject *object, const char *encoding, const char *errors)
Return value: New reference. Part of the Stable ABI.

Общий API кодирования на основе кодеков.

объект передается через функцию кодирования, найденную для данного кодирования, используя метод обработки ошибок, определенный errors. errors может быть NULL для использования метода по умолчанию, определенного для кодека. Вызывает ошибку LookupError, если кодировщик не найден.

PyObject *PyCodec_Decode(PyObject *object, const char *encoding, const char *errors)
Return value: New reference. Part of the Stable ABI.

Общий API декодирования на основе кодеков.

объект передается через функцию декодера, найденную для данного кодирования, используя метод обработки ошибок, определенный errors. errors может быть NULL для использования метода по умолчанию, определенного для кодека. Вызывает ошибку LookupError, если кодировщик не найден.

API поиска кодеков

В следующих функциях строка encoding преобразуется во все символы нижнего регистра, что делает поиск кодировок с помощью этого механизма нечувствительным к регистру. Если кодек не найден, устанавливается KeyError и возвращается NULL.

PyObject *PyCodec_Encoder(const char *encoding)
Return value: New reference. Part of the Stable ABI.

Получить функцию кодирования для заданного кодирования.

PyObject *PyCodec_Decoder(const char *encoding)
Return value: New reference. Part of the Stable ABI.

Получить функцию декодера для заданного кодирования.

PyObject *PyCodec_IncrementalEncoder(const char *encoding, const char *errors)
Return value: New reference. Part of the Stable ABI.

Получить объект IncrementalEncoder для заданного кодирования.

PyObject *PyCodec_IncrementalDecoder(const char *encoding, const char *errors)
Return value: New reference. Part of the Stable ABI.

Получить объект IncrementalDecoder для заданного кодирования.

PyObject *PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors)
Return value: New reference. Part of the Stable ABI.

Получить фабричную функцию StreamReader для заданного кодирования.

PyObject *PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors)
Return value: New reference. Part of the Stable ABI.

Получить фабричную функцию StreamWriter для заданного кодирования.

API реестра для обработчиков ошибок кодирования Unicode

int PyCodec_RegisterError(const char *name, PyObject *error)
Part of the Stable ABI.

Регистрация функции обратного вызова error для обработки ошибок под заданным name. Эта функция обратного вызова будет вызываться кодеком, когда он столкнется с некодируемыми символами/недекодируемыми байтами, а name будет указано в качестве параметра ошибки в вызове функции кодирования/декодирования.

Обратный вызов получает единственный аргумент, экземпляр UnicodeEncodeError, UnicodeDecodeError или UnicodeTranslateError, который содержит информацию о проблемной последовательности символов или байтов и их смещении в исходной строке (см. Объекты исключений Unicode для функций для извлечения этой информации). Обратный вызов должен либо вызвать заданное исключение, либо вернуть кортеж из двух элементов, содержащий замену проблемной последовательности и целое число, указывающее смещение в исходной строке, при котором следует возобновить кодирование/декодирование.

Возвращает 0 при успехе, -1 при ошибке.

PyObject *PyCodec_LookupError(const char *name)
Return value: New reference. Part of the Stable ABI.

Поиск функции обратного вызова обработки ошибок, зарегистрированной под именем name. В качестве особого случая можно передать NULL, в этом случае будет возвращен обратный вызов обработки ошибок для «strict».

PyObject *PyCodec_StrictErrors(PyObject *exc)
Return value: Always NULL. Part of the Stable ABI.

Поднимите exc как исключение.

PyObject *PyCodec_IgnoreErrors(PyObject *exc)
Return value: New reference. Part of the Stable ABI.

Игнорирует ошибку юникода, пропуская неисправный вход.

PyObject *PyCodec_ReplaceErrors(PyObject *exc)
Return value: New reference. Part of the Stable ABI.

Замените ошибку кодировки юникода на ? или U+FFFD.

PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
Return value: New reference. Part of the Stable ABI.

Замените ошибку кодировки unicode ссылками на символы XML.

PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
Return value: New reference. Part of the Stable ABI.

Замените ошибку кодировки юникода эскападами обратного слеша (\x, \u и \U).

PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
Return value: New reference. Part of the Stable ABI since version 3.7.

Замените ошибку кодировки юникода эскападами \N{...}.

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

Вернуться на верх