@@ -124,7 +124,6 @@ def upload(self, submission):
124124 )
125125 result = self .api .upload (oss_task_zip , upload_zip , ENDPOINT , BUCKET_NAME )
126126 self ._backup (self .local_root , upload_zip , keep_backup = self .remote_profile .get ('keep_backup' , True ))
127- print () # empty print because tqdm may not print a newline along with dlog
128127 return result
129128 # return oss_task_zip
130129 # api.upload(self.oss_task_dir, zip_task_file)
@@ -152,27 +151,37 @@ def download(self, submission):
152151 job_hash = job_hashs [each ['task_id' ]]
153152 job_infos [job_hash ] = each
154153 bar_format = "{l_bar}{bar}| {n:.02f}/{total:.02f} % [{elapsed}<{remaining}, {rate_fmt}{postfix}]"
155- for job_hash , info in tqdm .tqdm (job_infos .items (), desc = "Downloading from Lebesgue" , bar_format = bar_format ):
154+ for job_hash , info in tqdm .tqdm (job_infos .items (), desc = "Validating download file from Lebesgue" , bar_format = bar_format ):
156155 result_filename = job_hash + '_back.zip'
157156 target_result_zip = os .path .join (self .local_root , result_filename )
157+ if self ._check_if_job_has_already_downloaded (target_result_zip , self .local_root ):
158+ continue
158159 self .api .download_from_url (info ['result_url' ], target_result_zip )
159160 zip_file .unzip_file (target_result_zip , out_dir = self .local_root )
160161 self ._backup (self .local_root , target_result_zip , keep_backup = self .remote_profile .get ('keep_backup' , True ))
161- print () # empty print because tqdm may not print a newline along with dlog
162+ self . _clean_backup ( self . local_root , keep_backup = self . remote_profile . get ( 'keep_backup' , True ))
162163 return True
163164
165+ def _check_if_job_has_already_downloaded (self , target , local_root ):
166+ backup_file_location = os .path .join (local_root , 'backup' , os .path .split (target )[1 ])
167+ if os .path .exists (backup_file_location ):
168+ return False
169+ else :
170+ return True
171+
164172 def _backup (self , local_root , target , keep_backup = True ):
165173 try :
166- if keep_backup :
167- # move to backup directory
168- os .makedirs (os .path .join (local_root , 'backup' ), exist_ok = True )
169- shutil .move (target ,
170- os .path .join (local_root , 'backup' , os .path .split (target )[1 ]))
171- else :
172- os .remove (target )
174+ # move to backup directory
175+ os .makedirs (os .path .join (local_root , 'backup' ), exist_ok = True )
176+ shutil .move (target ,
177+ os .path .join (local_root , 'backup' , os .path .split (target )[1 ]))
173178 except (OSError , shutil .Error ) as e :
174179 dlog .exception ("unable to backup file, " + str (e ))
175180
181+ def _clean_backup (self , local_root , keep_backup = True ):
182+ if not keep_backup :
183+ os .removedirs (os .path .join (local_root , 'backup' ))
184+
176185 def write_file (self , fname , write_str ):
177186 result = self .write_home_file (fname , write_str )
178187 return result
0 commit comments