Python Glossary English

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