def do_transfer(self): """Performs the real transfer""" errors = dict() if pycp.options.global_pbar: num_files = len(self.transfer_info.to_transfer) total_size = self.transfer_info.size self.global_pbar = GlobalPbar(num_files, total_size) self.global_pbar.start() for (src, dest) in self.transfer_info.to_transfer: file_size = os.path.getsize(src) ftm = FileTransferManager(self, src, dest) self.on_new_transfer(src, dest, file_size) error = ftm.do_transfer() if error: errors[src] = error if pycp.options.move and not pycp.options.ignore_errors: for to_remove in self.transfer_info.to_remove: os.rmdir(to_remove) return errors