'Fetch (e.g., download) data
:param start: Chunk of data starts here
:param count: Fetch at most as many data, fetch all if negative'

def get_data(self, obj, start=0, count=(-1), **kwargs):

    path = self._construct_path(obj, **kwargs)
    if self._in_cache(path):
        cache_path = self._pull_into_cache(path)
    else:
        cache_path = self._get_cache_path(path)
    data_file = open(cache_path, 'r')
    data_file.seek(start)
    content = data_file.read(count)
    data_file.close()
    return content
