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)