mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #3488: Provide convenient shorthand functions gzip.compress
and `gzip.decompress`. Original patch by Anand B. Pillai.
This commit is contained in:
parent
852823d731
commit
79c5ef11d5
5 changed files with 58 additions and 1 deletions
19
Lib/gzip.py
19
Lib/gzip.py
|
@ -10,7 +10,7 @@ import zlib
|
|||
import builtins
|
||||
import io
|
||||
|
||||
__all__ = ["GzipFile","open"]
|
||||
__all__ = ["GzipFile", "open", "compress", "decompress"]
|
||||
|
||||
FTEXT, FHCRC, FEXTRA, FNAME, FCOMMENT = 1, 2, 4, 8, 16
|
||||
|
||||
|
@ -476,6 +476,23 @@ class GzipFile(io.BufferedIOBase):
|
|||
return b''.join(bufs) # Return resulting line
|
||||
|
||||
|
||||
def compress(data, compresslevel=9):
|
||||
"""Compress data in one shot and return the compressed string.
|
||||
Optional argument is the compression level, in range of 1-9.
|
||||
"""
|
||||
buf = io.BytesIO()
|
||||
with GzipFile(fileobj=buf, mode='wb', compresslevel=compresslevel) as f:
|
||||
f.write(data)
|
||||
return buf.getvalue()
|
||||
|
||||
def decompress(data):
|
||||
"""Decompress a gzip compressed string in one shot.
|
||||
Return the decompressed string.
|
||||
"""
|
||||
with GzipFile(fileobj=io.BytesIO(data)) as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def _test():
|
||||
# Act like gzip; with -d, act like gunzip.
|
||||
# The input file is not deleted, however, nor are any other gzip
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue