':param resume: Should the download resume if partial download
already exists.
:type resume: bool
:param output_file: The file to store response body in. If not
provided, it will be guessed from the response.
:param progress_file: Where to report download progress.'

def __init__(self, output_file=None, resume=False, progress_file=sys.stderr):

    self._output_file = output_file
    self._resume = resume
    self._resumed_from = 0
    self.finished = False
    self.status = Status()
    self._progress_reporter = ProgressReporterThread(status=self.status, output=progress_file)
