Python 3.14+compression.zstdпонятие
compression.zstd.CompressionParameter
параметры сжатия
Перечисление тонких настроек сжатия zstd — ключей словаря options: уровень, окно, стратегия, контрольная сумма, потоки.
Синтаксис
options={CompressionParameter.<имя>: значение}; CompressionParameter.<имя>.bounds()
Это IntEnum ключей, а не значения: options={CompressionParameter.checksum_flag: 1}. Допустимый диапазон каждого параметра зависит от версии libzstd и узнаётся методом bounds(); выход за него — ValueError. checksum_flag добавляет к кадру 4 байта контрольной суммы, которую распаковка проверяет. content_size_flag=0 убирает размер из заголовка, и get_frame_info его уже не покажет. nb_workers > 0 работает, только если libzstd собрана с многопоточностью.
Примеры
# Python 3.14+
from compression import zstd # → ? нужна сборка CPython с libzstd
P = zstd.CompressionParameter
data = b'hello zstd ' * 100
plain = zstd.compress(data)
checked = zstd.compress(data, options={P.checksum_flag: 1})
print(len(checked) - len(plain)) # → 4 — байты контрольной суммы
print(P.compression_level.bounds()) # → ? (-131072, 22) — зависит от версии libzstd
try:
zstd.compress(data, options={P.window_log: 100})
except ValueError:
print('ValueError') # → ValueError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности