Python Glossary English

все 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Сообщить о неточности