22 SPMConvertInputParameters ,
33 convert_spm_experiments ,
44)
5+ from pynxtools_spm .nomad_uploader .helper import (
6+ setup_logger ,
7+ )
58from datetime import datetime , timedelta
69from pathlib import Path
710from typing import Optional , List , Literal
8- from dataclasses import asdict , dataclass
11+ from dataclasses import asdict , dataclass , field
912import time
1013import re
1114import logging
@@ -66,14 +69,14 @@ class DataProcessingSettings:
6669 # Considered as a root directory for the experiment files
6770 src_dir : Path
6871 # List of SPMConvertInputParameters objects to run reader on each object
69- spm_params_obj_l : Optional [ List [Path ]] = list
72+ spm_params_obj_l : List [SPMConvertInputParameters ] = field ( default_factory = list )
7073 # Destination directory for the experiment files, if files are moved
7174 # to another location after processing is done, needs `copy_file_elsewhere`
7275 # to be True
7376 dst_dir : Optional [Path ] = None
74- # create and empty file if upload is sucessfull
77+ # create and empty file if upload is sucessful
7578 create_pseudo_file : bool = True
76- # Extension to the empty file if upload is sucessfull
79+ # Extension to the empty file if upload is sucessful
7780 pseudo_exts : str = ".done"
7881 sts_config : Optional [Path ] = None
7982 stm_config : Optional [Path ] = None
@@ -99,7 +102,7 @@ def __post_init__(self):
99102 self .file_to_convert_data = file_obj
100103
101104
102- def create_preseudo_file (
105+ def create_pseudo_file (
103106 params_obj : SPMConvertInputParameters ,
104107 data_proc_settings : DataProcessingSettings ,
105108) -> None :
@@ -178,7 +181,7 @@ def set_and_store_prepared_parameters(
178181 params_obj = SPMConvertInputParameters (
179182 input_file = (file ,),
180183 eln = spec_eln_file if spec_eln_file else data_proc_settings .sts_eln ,
181- expriement_type = "sts" ,
184+ experiment_type = "sts" ,
182185 config = data_proc_settings .sts_config ,
183186 nxdl = "NXsts" ,
184187 raw_extension = "dat" ,
@@ -188,7 +191,7 @@ def set_and_store_prepared_parameters(
188191 params_obj = SPMConvertInputParameters (
189192 input_file = (file ,),
190193 eln = spec_eln_file if spec_eln_file else data_proc_settings .stm_eln ,
191- expriement_type = "stm" ,
194+ experiment_type = "stm" ,
192195 config = data_proc_settings .stm_config ,
193196 nxdl = "NXstm" ,
194197 raw_extension = "sxm" ,
@@ -198,7 +201,7 @@ def set_and_store_prepared_parameters(
198201 params_obj = SPMConvertInputParameters (
199202 input_file = (file ,),
200203 eln = spec_eln_file if spec_eln_file else data_proc_settings .afm_eln ,
201- expriement_type = "afm" ,
204+ experiment_type = "afm" ,
202205 config = data_proc_settings .afm_config ,
203206 nxdl = "NXafm" ,
204207 raw_extension = "sxm" ,
@@ -210,7 +213,7 @@ def set_and_store_prepared_parameters(
210213
211214
212215converter_logger = None
213- converter_handeler = None
216+ converter_handler = None
214217upload_handler = None
215218upload_logger = None
216219
@@ -219,16 +222,16 @@ def run_uploader_with(
219222 data_proc_settings : DataProcessingSettings , nomad_settings : NOMADSettings
220223) -> None :
221224 """Run the uploader with the given settings."""
222- global converter_logger , converter_handeler , upload_handler , upload_logger
225+ global converter_logger , converter_handler , upload_handler , upload_logger
223226 if converter_logger is None and upload_logger is None :
224227 logger_dir = data_proc_settings .logger_dir
225228 upload_logger , upload_handler = setup_logger (
226- name = "uploader" , log_file = logger_dir / "upload.log"
229+ name = "uploader" , log_file = str ( logger_dir / "upload.log" )
227230 )
228231 pynxtools_logger = logging .getLogger ("pynxtools" )
229- converter_logger , converter_handeler = setup_logger (
232+ converter_logger , converter_handler = setup_logger (
230233 name = "data converter" ,
231- log_file = logger_dir / "converter.log" ,
234+ log_file = str ( logger_dir / "converter.log" ) ,
232235 existing_logger = pynxtools_logger ,
233236 )
234237
@@ -261,11 +264,9 @@ def run_uploader_with(
261264 f"{ separator .join ([str (file ) for file in file_list ])} "
262265 )
263266 # Prepare the input parameters for the SPM reader for each file
264- _ = [
265- set_and_store_prepared_parameters (file , data_proc_settings )
266- for file in file_list
267- if (file and file .is_file ())
268- ]
267+ for file in file_list :
268+ if file and file .is_file ():
269+ set_and_store_prepared_parameters (file , data_proc_settings )
269270 # For logging massage
270271 obj_type_num = {}
271272 for obj in data_proc_settings .spm_params_obj_l :
@@ -281,7 +282,7 @@ def run_uploader_with(
281282 )
282283
283284 lock = Lock ()
284- results_q = Queue ()
285+ results_q : Queue = Queue ()
285286 time_out = int (data_proc_settings .single_file_pynx_convert_time ) # seconds
286287
287288 def queue_results (input_params , lock , results_q ):
@@ -291,7 +292,7 @@ def queue_results(input_params, lock, results_q):
291292 f"Start conversion job with inputs { input_params .input_file } via { input_params .__class__ .__name__ } instance."
292293 )
293294 result = convert_spm_experiments (
294- input_params , converter_logger , converter_handeler
295+ input_params , converter_logger , converter_handler
295296 )
296297 results_q .put (result )
297298
@@ -312,7 +313,7 @@ def queue_results(input_params, lock, results_q):
312313 )
313314 p .start ()
314315 upload_logger .info (
315- f"Process job has been submited with input files { input_params .input_file } via process id { p .pid } ."
316+ f"Process job has been submitted with input files { input_params .input_file } via process id { p .pid } ."
316317 )
317318 p_to_params [p ] = input_params
318319 # processes_list.append(p)
@@ -326,12 +327,12 @@ def queue_results(input_params, lock, results_q):
326327 upload_logger .critical (
327328 f"Terminating process (PID: { p .pid } ) is still "
328329 f"running and expected to be done in { time_out } s.\n "
329- f"The job is associated with input prameters { asdict (input_params )} " ,
330+ f"The job is associated with input parameters { asdict (input_params )} " ,
330331 )
331332 p .terminate ()
332333 p .join ()
333334
334- indices = []
335+ indices : List [ int ] = []
335336 completed_param_objs = []
336337 while not results_q .empty ():
337338 # Get back input_params obj with output files
@@ -346,7 +347,7 @@ def queue_results(input_params, lock, results_q):
346347 + 3 * data_proc_settings .single_batch_processing_time
347348 )
348349 upload_time_limit = datetime .now () + timedelta (seconds = total_upload_time )
349- # TODO: Use asynchrounous request for api requests
350+ # TODO: Use asynchronous request for api requests
350351 while (
351352 len (completed_param_objs ) > len (indices ) and datetime .now () < upload_time_limit
352353 ):
@@ -370,7 +371,7 @@ def queue_results(input_params, lock, results_q):
370371
371372 separator = "\n "
372373 upload_logger .info (
373- f"Upload request with Upload ID ({ upload_id } ) corresponding to files { separator } { separator .join (map (str , complete_param_obj .input_file ))} ."
374+ f"Upload request with Upload ID ({ upload_id } ) corresponding to files \n { separator .join (map (str , complete_param_obj .input_file ))} ."
374375 )
375376 # trigger_reprocess_upload(
376377 # nomad_settings.url, nomad_settings.token, upload_id
@@ -406,7 +407,7 @@ def queue_results(input_params, lock, results_q):
406407 f"Upload status: Upload successfully completed with upload ID: { upload_id } "
407408 )
408409 success_ind .append (ind )
409- create_preseudo_file (complete_param_obj , data_proc_settings )
410+ create_pseudo_file (complete_param_obj , data_proc_settings )
410411 # To modify metadata
411412 if (
412413 nomad_settings .modify_upload_metadata
@@ -458,7 +459,7 @@ def queue_results(input_params, lock, results_q):
458459 time .sleep (3 )
459460
460461 for ind , input_params in enumerate (completed_param_objs ):
461- # Whether successfully uploaded or not, remove the zip file and ouuput file
462+ # Whether successfully uploaded or not, remove the zip file and output file
462463 if input_params .zip_file_path and input_params .zip_file_path .is_file ():
463464 input_params .zip_file_path .unlink ()
464465 if input_params .output and input_params .output .is_file ():
0 commit comments