Python Glossary English

Python 3.14+compression.zstdпонятие

compression.zstd.DecompressionParameter

параметры сжатия

Перечисление настроек распаковки zstd для словаря options; по сути один параметр — window_log_max, предел памяти под окно.

Синтаксис

options={DecompressionParameter.window_log_max: N}

По умолчанию распаковщик отказывается от кадров, которым нужно окно больше 2**27 байт (128 МиБ), — это защита от «бомб» по памяти. Если данные сжаты с большим window_log (например, ради long distance matching) потоковым сжатием, без явного window_log_max придёт ZstdError «Frame requires too much memory». Поднимайте предел только для своих данных: для чужого ввода он и есть защита.

Примеры

# Python 3.14+
from compression import zstd  # → ? нужна сборка CPython с libzstd
data = b'hello zstd ' * 100
comp = zstd.ZstdCompressor(options={zstd.CompressionParameter.window_log: 28})
frame = comp.compress(data) + comp.flush()
try:
    zstd.decompress(frame)
except zstd.ZstdError as e:
    print(e)  # → Unable to decompress Zstandard data: Frame requires too much memory for decoding
opts = {zstd.DecompressionParameter.window_log_max: 28}
print(zstd.decompress(frame, options=opts) == data)  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности