X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/d2f2500bddb2a3809cd8e96a64c091f331b8f274..adf87805bb2ffb1f297867dcee8dc21264209496:/third_party/transifex-client/txclib/http_utils.py diff --git a/third_party/transifex-client/txclib/http_utils.py b/third_party/transifex-client/txclib/http_utils.py new file mode 100644 index 00000000..3243149c --- /dev/null +++ b/third_party/transifex-client/txclib/http_utils.py @@ -0,0 +1,46 @@ +# -*- 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