Сообщить об ошибке.

Регистрация и отмена регистрации функции поиска кодеков

Синтаксис:

import codecs

codecs.register(search_function)

# доступна с версии Python 3.10.
codecs.unregister(search_function)

Параметры:

  • search_function - Пользовательская функция поиска кодека

Возвращаемое значение:

Описание:

Функция register() модуля codecs регистрирует функцию поиска кодеков. Ожидается, что функция поиска search_function будет принимать один аргумент - имя кодировки, записанное строчными буквами и возвращать объект CodecInfo. Если функция поиска search_function не может найти данную кодировку, она должна вернуть None.

Важно:
До версии Python 3.10, регистрация функции поиска в настоящее время необратима, что может вызвать проблемы в некоторых случаях, таких как модульное тестирование или перезагрузка модуля.

Функция unregister() (доступна с версии Python 3.10.) - отменяет регистрацию функции поиска кодеков и очищает кеш реестра. Если функция поиска не зарегистрирована, ничего не делает.

Пример:

def find_invert(encoding):
    """Return the codec for 'invert'.
    """
    if encoding == 'invert':
        return codecs.CodecInfo(
            name='invert',
            encode=InvertCapsCodec().encode,
            decode=InvertCapsCodec().decode,
            incrementalencoder=InvertCapsIncrementalEncoder,
            incrementaldecoder=InvertCapsIncrementalDecoder,
            streamreader=InvertCapsStreamReader,
            streamwriter=InvertCapsStreamWriter,
        )
    return None

codecs.register(find_invertcaps)