Skip to content
Snippets Groups Projects

Add export and import as tar file

Merged Floreal Cabanettes requested to merge exportzip into master
@@ -101,7 +101,8 @@ class JobManager:
with open(query_file) as q_f:
file_path = q_f.readline()
self.query = Fasta(
name=os.path.splitext(os.path.basename(file_path.replace(".gz", "")).split("_", 1)[1])[0],
name="target" if file_path.endswith(".idx") else
os.path.splitext(os.path.basename(file_path.replace(".gz", "")).split("_", 1)[1])[0],
path=file_path,
type_f="local"
)
@@ -110,7 +111,8 @@ class JobManager:
with open(target_file) as t_f:
file_path = t_f.readline()
self.target = Fasta(
name=os.path.splitext(os.path.basename(file_path.replace(".gz", "")).split("_", 1)[1])[0],
name="query" if file_path.endswith(".idx") else
os.path.splitext(os.path.basename(file_path.replace(".gz", "")).split("_", 1)[1])[0],
path=file_path,
type_f="local"
)
@@ -501,7 +503,7 @@ class JobManager:
save_file.write(finale_path)
return True, False, finale_path, name
def __check_url(self, fasta: Fasta):
def __check_url(self, fasta: Fasta, formats: tuple):
url = fasta.get_path()
try:
filename = self.__get_filename_from_url(url)
@@ -519,7 +521,7 @@ class JobManager:
self.set_status_standalone(status, error)
return False
if filename is not None:
allowed = Functions.allowed_file(filename)
allowed = Functions.allowed_file(filename, formats)
if not allowed:
status = "fail"
error = "<p>File <b>%s</b> downloaded from <b>%s</b> is not a Fasta file!</p>" \
@@ -602,7 +604,7 @@ class JobManager:
if not getattr(validators, self.aln_format)(self.align.get_path()):
self.set_job_status("fail", "Alignment file is invalid. Please check your file.")
return False, True, None
else:
elif input_type != "backup":
if self.config.batch_system_type != "local" and file_size >= getattr(self.config,
"min_%s_size" % input_type):
should_be_local = False
@@ -694,7 +696,7 @@ class JobManager:
max_upload_size_readable)
if not correct:
return False, error_set, True
elif self.__check_url(self.query):
elif self.__check_url(self.query, ("fasta",) if self.align is None else ("fasta", "idx")):
files_to_download.append([self.query, "query"])
else:
return False, True, True
@@ -705,7 +707,7 @@ class JobManager:
max_upload_size_readable)
if not correct:
return False, error_set, True
elif self.__check_url(self.target):
elif self.__check_url(self.target, ("fasta",) if self.align is None else ("fasta", "idx")):
files_to_download.append([self.target, "target"])
else:
return False, True, True
@@ -714,7 +716,7 @@ class JobManager:
self.align.set_path(self.__getting_local_file(self.align, "align"))
correct, error_set, should_be_local = self.check_file("align", should_be_local,
max_upload_size_readable)
elif self.__check_url(self.align):
elif self.__check_url(self.align, ("map",)):
files_to_download.append([self.align, "align"])
else:
return False, True, True
@@ -723,7 +725,7 @@ class JobManager:
self.backup.set_path(self.__getting_local_file(self.backup, "backup"))
correct, error_set, should_be_local = self.check_file("backup", should_be_local,
max_upload_size_readable)
elif self.__check_url(self.backup):
elif self.__check_url(self.backup, ("backup",)):
files_to_download.append([self.backup, "backup"])
else:
return False, True, True
@@ -1188,7 +1190,7 @@ class JobManager:
print("Old job found without result dir existing: delete it from BDD!")
for j11 in j1:
j11.delete_instance()
if self.target is not None:
if self.target is not None or self.backup is not None:
job = Job.create(id_job=self.id_job, email=self.email, batch_type=self.config.batch_system_type,
date_created=datetime.now(), tool=self.tool.name if self.tool is not None else None)
job.save()
Loading