MicroPython:Библиотеки/uzlib

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Модуль uzlib – библиотека zlib для сжатия данных[1]

В этом модуле реализована часть функционала соответствующего модуля CPython. Более подробно читайте в документации к CPython о модуле zlib. Этот модуль позволяет распаковывать двоичные данные, сжатые при помощи алгоритма DEFLATE (который обычно используется в библиотеке «zlib» и архиваторе gzip). Само сжатие пока не реализовано.

Функции

  • uzlib.decompress(data, wbits=0, bufsize=0, /) – возвращает распакованные данные data и возвращает их в виде объекта bytes. Значение в аргументе wbits – это размер окна словаря DEFLATE, используемый во время сжатия (8-15; размер словаря будет степенью двойки от этого числа). Кроме того, если это положительное значение, data будет считаться zlib-потоком (со zlib-заголовком). Но если оно будет отрицательным, data будет считаться «сырым» DEFLATE-потоком. Аргумент bufsize нужен для совместимости с CPython и игнорируется.
  • Класс uzlib.DecompIO(stream, wbits=0, /) – создает оберточный потоковый объект, позволяющий делать прозрачную распаковку сжатых данных в другой поток. Это позволяет обрабатывать сжатые потоки с данными, чей размер превышает размер кучи. Вдобавок к значениям, описанным в decompress(), здешний аргумент wbits также поддерживает значения в диапазоне 23-31 (16 + 8...15), что значит, что у входного потока есть gzip-заголовок.

Отличие от CPython: Этот класс – расширение MicroPython. Он добавлен временно и в будущих версиях, возможно, будет либо сильно изменен или вовсе удален.

<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки