micropython-lib/python-stdlib/gzip/gzip.py

30 wiersze
551 B
Python
Czysty Zwykły widok Historia

# import zlib
2015-01-28 01:04:11 +00:00
import uzlib as zlib
FTEXT = 1
FHCRC = 2
FEXTRA = 4
FNAME = 8
2015-01-28 01:04:11 +00:00
FCOMMENT = 16
2015-01-28 01:04:11 +00:00
def decompress(data):
assert data[0] == 0x1F and data[1] == 0x8B
2015-01-28 01:04:11 +00:00
assert data[2] == 8
flg = data[3]
assert flg & 0xE0 == 0
2015-01-28 01:04:11 +00:00
i = 10
if flg & FEXTRA:
i += data[11] << 8 + data[10] + 2
if flg & FNAME:
while data[i]:
i += 1
i += 1
if flg & FCOMMENT:
while data[i]:
i += 1
i += 1
if flg & FHCRC:
i += 2
return zlib.decompress(memoryview(data)[i:], -15)