code: def run(self):
          
          self._running.set()
          self._status = TransferState.RUNNING
          self._time_started = time.time()
  
          parted_file = DPartedFile(self._temp_file,
                                    self._session,
                                    self.url,
                                    self._file_size,
                                    self._part_size,
                                    self._retry_count,
                                    self._timeout,
                                    self._api.download_pool)
  
          try:
              for part in parted_file:
                  if self._stop_signal:
                      return
                  self._running.wait()
                  self._bytes_done += part.size
                  if self._progress_callback:
                      progress = Progress(
                          parted_file.total, parted_file.total_submitted,
                          self._bytes_done, self._file_size, self.duration
                      )
                      self._progress_callback(progress)
  
          except Exception as exc:
              if self._errorback:
                  return self._errorback(exc)
              else:
                  raise SbgError('Download failed! %s' % str(exc))
  
          self._status = TransferState.COMPLETED
          try:
              os.rename(self._temp_file, self._file_path)
          except Exception:
              raise SbgError("Unable to rename the file.")
  
          if self._callback:
              return self._callback(self._status)
docs: Runs the thread! Should not be used use start() method instead.