1111from download_workbench import _resolve_metabolomicsworkbench_usi
1212import download_zenodo
1313import download_glycopost
14+ import download_norman
1415
1516try :
1617 import utils_conversion
@@ -69,6 +70,9 @@ def _usi_to_local_filename(usi):
6970 converted_local_filename = werkzeug .utils .secure_filename (":" .join (usi_splits [:3 ])) + ".mzML"
7071 converted_local_filename = converted_local_filename .replace (".mzML.mzML" , ".mzML" )
7172
73+ elif "NORMAN" in usi_splits [1 ]:
74+ converted_local_filename = werkzeug .utils .secure_filename (":" .join (usi_splits [:3 ]).split ("?" )[0 ]) + ".mzML"
75+
7276 # Cleaning it up
7377 if len (converted_local_filename ) > 250 :
7478 converted_local_filename = "convertedfile_" + str (hash (converted_local_filename )) + "_" + converted_local_filename [- 150 :]
@@ -220,6 +224,9 @@ def _resolve_usi_remotelink(usi):
220224 elif "ZENODO" in usi_splits [1 ]:
221225 remote_link = download_zenodo ._resolve_zenodo_usi (usi )
222226 resource = "ZENODO"
227+ elif "NORMAN" in usi_splits [1 ]:
228+ remote_link = download_norman ._resolve_norman_usi (usi )
229+ resource = "NORMAN"
223230 elif "PXD" in usi_splits [1 ]:
224231 # First lets try resolving it at MSV
225232 remote_link = ""
@@ -348,7 +355,12 @@ def _resolve_usi(usi, temp_folder="temp", cleanup=True):
348355 print ("DEBUG: Remote Link" , remote_link , file = sys .stderr , flush = True )
349356
350357 # Getting Data Local, TODO: likely should serialize it
351- local_filename = os .path .join (temp_folder , "temp_" + str (uuid .uuid4 ()) + "_" + werkzeug .utils .secure_filename (remote_link )[- 150 :])
358+ if "NORMAN" in usi_splits [1 ]:
359+ # remove all the url parmaeters from url
360+ remote_link_stripped = remote_link .split ("?" )[0 ]
361+ local_filename = os .path .join (temp_folder , "temp_" + str (uuid .uuid4 ()) + "_" + werkzeug .utils .secure_filename (remote_link_stripped )[- 150 :])
362+ else :
363+ local_filename = os .path .join (temp_folder , "temp_" + str (uuid .uuid4 ()) + "_" + werkzeug .utils .secure_filename (remote_link )[- 150 :])
352364 filename , file_extension = os .path .splitext (local_filename )
353365
354366 # This is the download temporary filename
@@ -372,6 +384,7 @@ def _resolve_usi(usi, temp_folder="temp", cleanup=True):
372384 os .system (wget_cmd )
373385
374386 temp_msconvert_filename = os .path .join (temp_folder , "msconvert_out_" + str (uuid .uuid4 ()) + ".mzML" )
387+
375388 # Lets do a conversion
376389 # TODO: Setting timeouts to kill child processes
377390 if file_extension .lower () == ".cdf" :
0 commit comments