Fixed #27020 -- Used a context manager to close files.

This commit is contained in:
Ville Skyttä 2016-08-05 02:45:14 +03:00 committed by Tim Graham
parent 50e299dbfb
commit a2fb2b3a1f
5 changed files with 21 additions and 21 deletions

View file

@ -291,9 +291,8 @@ def phone2numeric(phone):
# Used with permission.
def compress_string(s):
zbuf = BytesIO()
zfile = GzipFile(mode='wb', compresslevel=6, fileobj=zbuf)
zfile.write(s)
zfile.close()
with GzipFile(mode='wb', compresslevel=6, fileobj=zbuf) as zfile:
zfile.write(s)
return zbuf.getvalue()
@ -321,15 +320,14 @@ class StreamingBuffer(object):
# Like compress_string, but for iterators of strings.
def compress_sequence(sequence):
buf = StreamingBuffer()
zfile = GzipFile(mode='wb', compresslevel=6, fileobj=buf)
# Output headers...
yield buf.read()
for item in sequence:
zfile.write(item)
data = buf.read()
if data:
yield data
zfile.close()
with GzipFile(mode='wb', compresslevel=6, fileobj=buf) as zfile:
# Output headers...
yield buf.read()
for item in sequence:
zfile.write(item)
data = buf.read()
if data:
yield data
yield buf.read()