Commit 701ac050 authored by Alexandre Dulaunoy's avatar Alexandre Dulaunoy
Browse files

getFile method can download compressed files via compressed argument.

default (False) is to fetch uncompressed file.

Related to issue #98
parent cbd383c1
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -313,15 +313,18 @@ class Configuration():
        return cls.readSetting("Proxy", "http", cls.default['http_proxy'])

    @classmethod
    def getFile(cls, getfile):
    def getFile(cls, getfile, compressed=False):
        if cls.getProxy():
            proxy = req.ProxyHandler({'http': cls.getProxy(), 'https': cls.getProxy()})
            auth = req.HTTPBasicAuthHandler()
            opener = req.build_opener(proxy, auth, req.HTTPHandler)
            req.install_opener(opener)
        if not compressed:
            return req.urlopen(getfile)
        else:
            response = req.urlopen(getfile + '.gz')
            if 'gzip' in response.info().get('Content-Type'):
                buf = BytesIO(response.read())
            response = gzip.GzipFile(fileobj=buf)
        return response
                data = gzip.GzipFile(fileobj=buf)
            return (data, response)