From a2fb2b3a1feee512131c76e9040232faf2362526 Mon Sep 17 00:00:00 2001 From: Ville Skyttä Date: Fri, 5 Aug 2016 02:45:14 +0300 Subject: Fixed #27020 -- Used a context manager to close files. --- django/utils/text.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'django/utils') diff --git a/django/utils/text.py b/django/utils/text.py index e6849a018d..f51113b483 100644 --- a/django/utils/text.py +++ b/django/utils/text.py @@ -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() -- cgit v1.3