

def _read(self, name, start_range=None, end_range=None):
    name = self._path(name)
    (headers, range_) = ({
        
    }, None)
    if ((start_range is not None) and (end_range is not None)):
        range_ = ('%s-%s' % (start_range, end_range))
    elif (start_range is not None):
        range_ = ('%s' % start_range)
    if (range_ is not None):
        headers = {
            'Range': ('bytes=%s' % range_),
        }
    response = self.connection.get(self.bucket, name, headers)
    valid_responses = [200]
    if ((start_range is not None) or (end_range is not None)):
        valid_responses.append(206)
    if (response.http_response.status not in valid_responses):
        raise S3Error(response.message)
    headers = response.http_response.msg
    data = response.object.data
    if (headers.get('Content-Encoding') == 'gzip'):
        gzf = GzipFile(mode='rb', fileobj=StringIO(data))
        data = gzf.read()
        gzf.close()
    return (data, headers.get('etag', None), headers.get('content-range', None))

dataset/ETHPy150Open kylemacfarlane/django-cb-storage-s3/src/cuddlybuddly/storage/s3/storage.py S3Storage._read/original