все Python 3codecsпонятие
codecs.CodecInfo
реестр кодеков
Запись о кодеке в реестре: имя и набор функций и классов — encode, decode, потоковые и инкрементальные. Её возвращает codecs.lookup и её же строит функция поиска своего кодека.
Синтаксис
codecs.CodecInfo(encode, decode, streamreader=None, streamwriter=None, incrementalencoder=None, incrementaldecoder=None, name=None)
Это подкласс tuple из четырёх элементов (encode, decode, streamreader, streamwriter) — наследие старого API, поэтому распаковка в четыре имени работает, а incrementaldecoder и name доступны только как атрибуты. encode и decode без состояния и возвращают пару (результат, сколько поглощено), а не голый результат. Свой CodecInfo нужен лишь при регистрации собственного кодека: передавать name=, иначе атрибут name останется None.
Примеры
import codecs
info = codecs.lookup('utf-8')
print(info.name, isinstance(info, tuple)) # → utf-8 True
print(info.encode('я')) # → (b'\xd1\x8f', 1)
print(info.decode(b'ab')) # → ('ab', 2)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности