code: def run(self):
          
          processes = []
          progress_queue = ProgressQueue(Queue())
          num_chunks = ParallelChunkProcessor.determine_num_chunks(self.config.upload_bytes_per_chunk,
                                                                   self.local_file.size)
          work_parcels = ParallelChunkProcessor.make_work_parcels(self.config.upload_workers, num_chunks)
          for (index, num_items) in work_parcels:
              processes.append(self.make_and_start_process(index, num_items, progress_queue))
          wait_for_processes(processes, num_chunks, progress_queue, self.watcher, self.local_file)
docs: Sends contents of a local file to a remote data service.