Skip to content

Commit 10ec818

Browse files
committed
cspell and mypy.
1 parent 488b916 commit 10ec818

File tree

7 files changed

+55
-51
lines changed

7 files changed

+55
-51
lines changed

.cspell/custom-dictionary.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,4 @@ ureg
104104
valinit
105105
valtext
106106
Yichen
107+
pynx

scripts/example_upload_script.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
url_domain="nomad-lab.eu",
1414
url_version="prod/v1/develop/api/v1/",
1515
url="https://nomad-lab.eu/prod/v1/develop/api/v1/",
16-
username="",
17-
password="",
16+
username="Mozumder",
17+
password="*#R516660a*#",
1818
token="",
1919
modify_upload_metadata=True,
2020
publish_to_nomad=False,

src/pynxtools_spm/nomad_uploader/helper.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ def setup_logger(
2020
# # Check if the logger already has a handler
2121
# if not logger.handlers:
2222

23-
file_handeler = logging.FileHandler(log_file)
24-
file_handeler.setLevel(level)
23+
file_handler = logging.FileHandler(log_file)
24+
file_handler.setLevel(level)
2525

2626
formatter = logging.Formatter(
2727
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
2828
)
29-
file_handeler.setFormatter(formatter)
29+
file_handler.setFormatter(formatter)
3030

31-
logger.addHandler(file_handeler)
31+
logger.addHandler(file_handler)
3232
logger.info(f"Test Logger {name} set up with file handler for {log_file}")
33-
return logger, file_handeler
33+
return logger, file_handler

src/pynxtools_spm/nomad_uploader/reader_config_setup.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
@dataclass
1010
class SPMConvertInputParameters:
11-
input_file: tuple[Path] # raw_files and eln (merged later)
11+
input_file: tuple[Path, ...] # raw_files and eln (merged later)
1212
eln: str | Path
13-
expriement_type: str
13+
experiment_type: str
1414
reader: str = "spm"
1515
output: Optional[str | Path] = None
1616
nxdl: Optional[str] = None
@@ -24,7 +24,7 @@ class SPMConvertInputParameters:
2424
def convert_spm_experiments(
2525
input_params: SPMConvertInputParameters,
2626
converter_logger: Optional[logging.Logger],
27-
converter_handeler: Optional[logging.Handler] = None,
27+
converter_handler: Optional[logging.Handler] = None,
2828
):
2929
"""Convert SPM (STS, STM and AFM) experirment data files to NeXus format.
3030
Later, the input files and generated output file are zipped together to
@@ -37,7 +37,7 @@ def convert_spm_experiments(
3737
- output: NeXus file, named from the raw file base name
3838
- zip_file: Zipped file, named from the raw file base name
3939
Required parameters in input_params:
40-
- expriement_type: SPM experiment type (STM, AFM, STS)
40+
- experiment_type: SPM experiment type (STM, AFM, STS)
4141
"""
4242

4343
if not isinstance(input_params, SPMConvertInputParameters):
@@ -49,10 +49,10 @@ def convert_spm_experiments(
4949
converter_logger.error("Input files are required to run an SPM experiment")
5050
if not input_params.eln:
5151
converter_logger.error(
52-
f"ELN file is requred to run an {input_params.expriement_type} experiment"
52+
f"ELN file is required to run an {input_params.experiment_type} experiment"
5353
)
5454

55-
if not input_params.expriement_type:
55+
if not input_params.experiment_type:
5656
converter_logger.error("Experiment type is required to run an SPM experiment")
5757

5858
input_params.input_file = tuple(
@@ -69,7 +69,7 @@ def convert_spm_experiments(
6969
for file in input_params.input_file:
7070
if file.suffix in (
7171
input_params.raw_extension,
72-
# TODO remoce the following line
72+
# TODO remove the following line
7373
f".{input_params.raw_extension}",
7474
):
7575
if input_params.output is None:
@@ -81,10 +81,10 @@ def convert_spm_experiments(
8181
"Valid raw files and extension is required to run an SPM experiment"
8282
)
8383
# TODO Try with input_file as tuple of Path objects
84-
# Use handler only for conver function. Do not close the handler
84+
# Use handler only for convert function. Do not close the handler
8585
# after the function call as it will be used again and again
86-
if converter_handeler not in converter_logger.handlers:
87-
converter_logger.addHandler(converter_handeler)
86+
if converter_handler not in converter_logger.handlers:
87+
converter_logger.addHandler(converter_handler)
8888
try:
8989
kwargs = asdict(input_params)
9090
kwargs["input_file"] = tuple(map(str, input_params.input_file))
@@ -97,14 +97,14 @@ def convert_spm_experiments(
9797
str(input_params.output),
9898
arcname=Path(input_params.output).name,
9999
)
100-
for file in map(str, input_params.input_file):
101-
zipf.write(file, arcname=Path(file).name)
100+
for file_ in map(str, input_params.input_file):
101+
zipf.write(file_, arcname=Path(file_).name)
102102
input_params.zip_file_path = Path(zip_file)
103103

104104
except Exception as e:
105105
converter_logger.error(f"Error: {e}")
106106
finally:
107-
# Prevent propagatting other logs through this handler
108-
converter_logger.removeHandler(converter_handeler)
107+
# Prevent propagating other logs through this handler
108+
converter_logger.removeHandler(converter_handler)
109109

110110
return input_params

src/pynxtools_spm/nomad_uploader/uploader.py

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22
SPMConvertInputParameters,
33
convert_spm_experiments,
44
)
5+
from pynxtools_spm.nomad_uploader.helper import (
6+
setup_logger,
7+
)
58
from datetime import datetime, timedelta
69
from pathlib import Path
710
from typing import Optional, List, Literal
8-
from dataclasses import asdict, dataclass
11+
from dataclasses import asdict, dataclass, field
912
import time
1013
import re
1114
import 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

212215
converter_logger = None
213-
converter_handeler = None
216+
converter_handler = None
214217
upload_handler = None
215218
upload_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():

src/pynxtools_spm/nxformatters/base_formatter.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,9 @@ def _handle_special_fields(self):
671671
r"active_channel$": str,
672672
r"model/@version$": str,
673673
r"/model$": str,
674-
r"lockin_amplifier/(demodulated|modulation)_signal$": lambda input: input.lower(),
674+
r"lockin_amplifier/(demodulated|modulation)_signal$": lambda input: (
675+
input.lower()
676+
),
675677
r"lockin_amplifier/(hp|lp){1,}_filter_orderN\[\1_filter_order_[\w]*\]$": (
676678
lambda input: input if isinstance(input, (int, float)) else ""
677679
),

tests/test_nomad_upload.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def spm_reader_input_params(tmp_path):
7676
input_params = SPMConvertInputParameters(
7777
input_file=(stm_raw_tmp_path,),
7878
eln=stm_eln_tmp_path,
79-
expriement_type="stm",
79+
experiment_type="stm",
8080
reader="spm",
8181
nxdl="NXstm",
8282
raw_extension=".sxm",
@@ -95,4 +95,4 @@ def test_run_spm_reader(spm_reader_input_params):
9595

9696

9797
# def test_upload_to_nomad(spm_reader_input_params):
98-
# tocken
98+
# token

0 commit comments

Comments
 (0)