+++ /dev/null
-# -*- coding: utf-8 -*-
-
-"""
-HTTP-related utility functions.
-"""
-
-from __future__ import with_statement
-import gzip
-try:
- import cStringIO as StringIO
-except ImportError:
- import StringIO
-
-
-def _gzip_decode(gzip_data):
- """
- Unzip gzipped data and return them.
-
- :param gzip_data: Gzipped data.
- :returns: The actual data.
- """
- try:
- gzip_data = StringIO.StringIO(gzip_data)
- gzip_file = gzip.GzipFile(fileobj=gzip_data)
- data = gzip_file.read()
- return data
- finally:
- gzip_data.close()
-
-
-def http_response(response):
- """
- Return the response of a HTTP request.
-
- If the response has been gzipped, gunzip it first.
-
- :param response: The raw response of a HTTP request.
- :returns: A response suitable to be used by clients.
- """
- metadata = response.info()
- data = response.read()
- response.close()
- if metadata.get('content-encoding') == 'gzip':
- return _gzip_decode(data)
- else:
- return data