Регистр кодеков и поддерживающие функции
-
int PyCodec_Register(PyObject *search_function) -
Часть Стабильной ABI.
Зарегистрировать новую функцию поиска кодеков.
В качестве побочного эффекта, эта функция пытается загрузить пакет
encodings, если это еще не сделано, чтобы убедиться, что он всегда стоит первым в списке функций поиска.
-
int PyCodec_Unregister(PyObject *search_function) -
Часть Стабильной ABI с версии 3.10.
Отменить регистрацию функции поиска кодеков и очистить кэш регистра. Если функция поиска не зарегистрирована, ничего не делать. Возвращает 0 при успехе. Вызывает исключение и возвращает -1 при ошибке.
Введено в версии 3.10.
-
int PyCodec_KnownEncoding(const char *encoding) -
Часть Стабильной ABI.
Возвращает
1или0, в зависимости от того, есть ли зарегистрированный кодек для заданного encoding. Эта функция всегда выполняется успешно.
-
PyObject *PyCodec_Encode(PyObject *object, const char *encoding, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Общий API кодирования, основанный на кодеках.
object передаётся в функцию кодирования, найденную для заданного encoding, используя метод обработки ошибок, определённый параметром errors. errors может быть
NULL, чтобы использовать метод по умолчанию, определённый для кодека. ВызываетLookupError, если кодер не найден.
-
PyObject *PyCodec_Decode(PyObject *object, const char *encoding, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Общий API декодирования, основанный на кодеках.
object передаётся в функцию декодирования, найденную для заданного encoding, используя метод обработки ошибок, определённый параметром errors. errors может быть
NULL, чтобы использовать метод по умолчанию, определённый для кодека. ВызываетLookupError, если декодер не найден.
API поиска кодеков
В следующих функциях строка encoding ищется, преобразуясь в символы строчными буквами, что делает поиск кодеков через этот механизм фактически регистронезависимым. Если кодек не найден, устанавливается KeyError, и возвращается NULL.
-
PyObject *PyCodec_Encoder(const char *encoding) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить функцию кодирования для заданного encoding.
-
PyObject *PyCodec_Decoder(const char *encoding) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить функцию декодирования для заданного encoding.
-
PyObject *PyCodec_IncrementalEncoder(const char *encoding, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить объект
IncrementalEncoderдля заданного encoding.
-
PyObject *PyCodec_IncrementalDecoder(const char *encoding, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить объект
IncrementalDecoderдля заданного encoding.
-
PyObject *PyCodec_StreamReader(const char *encoding, PyObject *stream, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить функцию-фабрику
StreamReaderдля заданного encoding.
-
PyObject *PyCodec_StreamWriter(const char *encoding, PyObject *stream, const char *errors) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Получить функцию-фабрику
StreamWriterдля заданного encoding.
API регистра для обработчиков ошибок кодирования Unicode
-
int PyCodec_RegisterError(const char *name, PyObject *error) -
Часть Стабильной ABI.
Зарегистрировать функцию обратного вызова обработки ошибок error под данным name. Эта функция обратного вызова будет вызываться кодеком, когда он столкнётся с некодируемыми символами/недекодируемыми байтами, а name указан как параметр ошибки в вызове функции encode/decode.
Функция обратного вызова получает один аргумент, экземпляр
UnicodeEncodeError,UnicodeDecodeErrorилиUnicodeTranslateError, который содержит информацию о проблематичной последовательности символов или байтов и их смещении в исходной строке (см. Объекты исключений Unicode для функций извлечения этой информации). Функция обратного вызова должна либо вызвать данное исключение, либо вернуть кортеж из двух элементов: замену проблемной последовательности и целое число, задающее смещение в исходной строке, в котором должно возобновиться кодирование/декодирование.Возвращает
0при успехе,-1при ошибке.
-
PyObject *PyCodec_LookupError(const char *name) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Найти функцию обратного вызова обработки ошибок, зарегистрированную под name. В качестве специального случая
NULLможет быть передан, в котором случае будет возвращена функция обратного вызова обработки ошибок для «strict».
-
PyObject *PyCodec_StrictErrors(PyObject *exc) -
Значение возврата: всегда NULL. Часть Стабильной ABI.
Вызвать exc как исключение.
-
PyObject *PyCodec_IgnoreErrors(PyObject *exc) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Проигнорировать ошибку Unicode, пропустив неверный вход.
-
PyObject *PyCodec_ReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Заменить ошибку кодирования Unicode на
?илиU+FFFD.
-
PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Заменить ошибку кодирования Unicode на XML-ссылках на символы.
-
PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка. Часть Стабильной ABI.
Заменить ошибку кодирования Unicode на обратные слэши (
\x,\uи\U).
-
PyObject *PyCodec_NameReplaceErrors(PyObject *exc) -
Значение возврата: новая ссылка. Часть Стабильной ABI с версии 3.7.
Заменить ошибку кодирования Unicode на
\N{...}escapes.Введено в версии 3.5.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/c-api/codec.html