Python 3.14+compression.zstdпонятие
compression.zstd.ZstdDecompressor
потоковое сжатие
Потоковый распаковщик Zstandard для данных, приходящих частями. Обрабатывает ровно один кадр.
Синтаксис
d = compression.zstd.ZstdDecompressor(zstd_dict=None, options=None); d.decompress(data, max_length=-1)
В отличие от функции decompress, объект распаковывает один кадр: всё, что пришло после его конца, оседает в unused_data, а новый вызов после eof=True даёт EOFError — для следующего кадра нужен новый объект. max_length ограничивает выдачу за вызов (защита от «бомб»); остаток выдаётся следующими вызовами, и needs_input=False говорит, что новые данные пока подавать не нужно.
Примеры
# Python 3.14+
from compression import zstd # → ? нужна сборка CPython с libzstd
frame = zstd.compress(b'hello zstd ' * 100)
d = zstd.ZstdDecompressor()
print(len(d.decompress(frame + b'tail')), d.eof, d.unused_data) # → 1100 True b'tail'
d.decompress(frame) # → EOFError: Already at the end of a Zstandard frame.
# Python 3.14+
from compression import zstd # → ? нужна сборка CPython с libzstd
frame = zstd.compress(b'hello zstd ' * 100)
d = zstd.ZstdDecompressor()
print(d.decompress(frame, max_length=10), d.needs_input) # → b'hello zstd' False
print(len(d.decompress(b'')), d.eof) # → 1090 True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности