From 787b54a057c27746ca8a8b4e34665d4ca453b126 Mon Sep 17 00:00:00 2001 From: Lili Meszaros Date: Thu, 22 Feb 2024 12:12:49 +0000 Subject: [PATCH] RT728517: add checks --- python3/utils.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/python3/utils.py b/python3/utils.py index e99d9f7..5746e5f 100644 --- a/python3/utils.py +++ b/python3/utils.py @@ -570,18 +570,27 @@ def get_file_fields(accession, aspera): def get_result(accession): if is_run(accession) or is_experiment(accession) or is_sample(accession): return RUN_RESULT - else: # is_analysis(accession) + elif is_analysis(accession): return ANALYSIS_RESULT + else: + raise TypeError('Only runs, experiments, samples and analyses are allowed') def get_result_accession(accession): if is_run(accession) or is_experiment(accession) or is_sample(accession): return 'run_accession' - else: # is_analysis(accession) + elif is_analysis(accession): return 'analysis_accession' + else: + raise TypeError('Only runs, experiments, samples and analyses are allowed') def get_file_search_query(accession, aspera): - return PORTAL_SEARCH_BASE + get_accession_query(accession) + '&' + \ - get_result(accession) + '&' + \ + try: + result = get_result(accession) + except TypeError as e: + print("Error:", e) + raise RuntimeError("Failed to get result for accession: {}".format(accession)) from e + + return PORTAL_SEARCH_BASE + get_accession_query(accession) + '&' + result + '&' + \ get_file_fields(accession, aspera) + '&format=json&limit=0' @@ -601,8 +610,13 @@ def parse_file_search_result_line(item, accession, output_format, aspera): # ftp.sra.ebi.ac.uk/vol1/fastq/ERR251/001/ERR2512031/ERR2512031_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/ERR251/001/ERR2512031/ERR2512031_2.fastq.gz # 950123b5264f6483040901575a8e8383;8bb209553d1c0292593524813cffb67f # ERR2512031 - acc = get_result_accession(accession) - data_acc = item[acc] + try: + result_accession = get_result_accession(accession) + except TypeError as e: + print("Error:", e) + raise RuntimeError("Failed to get result for accession: {}".format(accession)) from e + + data_acc = item[result_accession] if aspera: sub_filelist = split_filelist(item[SUBMITTED_ASPERA_FIELD])