def _unzip_file(cls, content_type, stream=None, mode=None): tempfile = NamedTemporaryFile(delete=False) filename = tempfile.name kwargs = {'mode': mode} if mode else {} if stream is not None: tempfile.write(stream.read()) tempfile.close() if content_type.endswith('gzip'): zfile = GzipFile(filename, **kwargs) else: zfile = ZipFile(filename, **kwargs) zfile = zfile.open(zfile.namelist()[0]) return zfile