summaryrefslogtreecommitdiff
path: root/paste/gzipper.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 15:19:32 -0800
committerMarc Abramowitz <marc@marc-abramowitz.com>2016-03-07 15:19:32 -0800
commit7251d0d4018b060dd86c9b779334516a1c032f7a (patch)
treecc8bca89295e3387f078fe019992ca99995a71da /paste/gzipper.py
parent4cc33835964f7a62ce829a63ddff893e752232b3 (diff)
downloadpaste-git-gzip_work_with_generator.tar.gz
Make gzip work with app that is generatorgzip_work_with_generator
``` $ tox ... py26: commands succeeded py27: commands succeeded py34: commands succeeded py35: commands succeeded pypy: commands succeeded congratulations :) ```
Diffstat (limited to 'paste/gzipper.py')
-rw-r--r--paste/gzipper.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/paste/gzipper.py b/paste/gzipper.py
index eca8775..5f59141 100644
--- a/paste/gzipper.py
+++ b/paste/gzipper.py
@@ -71,15 +71,18 @@ class GzipResponse(object):
return [s]
def finish_response(self, app_iter):
- if self.compressible:
- output = gzip.GzipFile(mode='wb', compresslevel=self.compress_level,
- fileobj=self.buffer)
- else:
- output = self.buffer
+ output = None
+
try:
for s in app_iter:
+ if not output:
+ if self.compressible:
+ output = gzip.GzipFile(mode='wb', compresslevel=self.compress_level,
+ fileobj=self.buffer)
+ else:
+ output = self.buffer
output.write(s)
- if self.compressible:
+ if output and self.compressible:
output.close()
finally:
if hasattr(app_iter, 'close'):