Skip to content

Commit 523808c

Browse files
wrap up preprocessing steps (set inputs, wavelengths, etc) as a public function in tools
1 parent 78fce6c commit 523808c

File tree

3 files changed

+27
-32
lines changed

3 files changed

+27
-32
lines changed

src/diffpy/labpdfproc/labpdfprocapp.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,7 @@
22
from argparse import ArgumentParser
33

44
from diffpy.labpdfproc.functions import apply_corr, compute_cve
5-
from diffpy.labpdfproc.tools import (
6-
known_sources,
7-
load_metadata,
8-
load_package_info,
9-
load_user_info,
10-
load_user_metadata,
11-
set_input_lists,
12-
set_output_directory,
13-
set_wavelength,
14-
)
5+
from diffpy.labpdfproc.tools import known_sources, load_metadata, preprocessing_args
156
from diffpy.utils.parsers.loaddata import loadData
167
from diffpy.utils.scattering_objects.diffraction_objects import XQUANTITIES, Diffraction_object
178

@@ -113,12 +104,7 @@ def get_args(override_cli_inputs=None):
113104

114105
def main():
115106
args = get_args()
116-
args = load_package_info(args)
117-
args = load_user_info(args)
118-
args = set_input_lists(args)
119-
args.output_directory = set_output_directory(args)
120-
args = set_wavelength(args)
121-
args = load_user_metadata(args)
107+
args = preprocessing_args(args)
122108

123109
for filepath in args.input_paths:
124110
outfilestem = filepath.stem + "_corrected"

src/diffpy/labpdfproc/tests/test_tools.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
load_package_info,
1212
load_user_info,
1313
load_user_metadata,
14+
preprocessing_args,
1415
set_input_lists,
1516
set_output_directory,
1617
set_wavelength,
@@ -281,7 +282,7 @@ def test_load_package_info(mocker):
281282
assert actual_args.package_info == {"diffpy.labpdfproc": "1.2.3", "diffpy.utils": "3.3.0"}
282283

283284

284-
def _setup(mocker, user_filesystem):
285+
def test_load_metadata(mocker, user_filesystem):
285286
cwd = Path(user_filesystem)
286287
home_dir = cwd / "home_dir"
287288
mocker.patch("pathlib.Path.home", lambda _: home_dir)
@@ -290,20 +291,6 @@ def _setup(mocker, user_filesystem):
290291
"importlib.metadata.version",
291292
side_effect=lambda package_name: "3.3.0" if package_name == "diffpy.utils" else "1.2.3",
292293
)
293-
294-
295-
def _preprocess_args(args):
296-
args = load_package_info(args)
297-
args = load_user_info(args)
298-
args = set_input_lists(args)
299-
args.output_directory = set_output_directory(args)
300-
args = set_wavelength(args)
301-
args = load_user_metadata(args)
302-
return args
303-
304-
305-
def test_load_metadata(mocker, user_filesystem):
306-
_setup(mocker, user_filesystem)
307294
cli_inputs = [
308295
"2.5",
309296
".",
@@ -315,7 +302,7 @@ def test_load_metadata(mocker, user_filesystem):
315302
316303
]
317304
actual_args = get_args(cli_inputs)
318-
actual_args = _preprocess_args(actual_args)
305+
actual_args = preprocessing_args(actual_args)
319306
for filepath in actual_args.input_paths:
320307
actual_metadata = load_metadata(actual_args, filepath)
321308
expected_metadata = {

src/diffpy/labpdfproc/tools.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,28 @@ def load_package_info(args):
218218
return args
219219

220220

221+
def preprocessing_args(args):
222+
"""
223+
Perform preprocessing on the provided argparse Namespace
224+
225+
Parameters
226+
----------
227+
args argparse.Namespace
228+
the arguments from the parser, default is None
229+
230+
Returns
231+
-------
232+
the updated argparse Namespace with arguments preprocessed
233+
"""
234+
args = load_package_info(args)
235+
args = load_user_info(args)
236+
args = set_input_lists(args)
237+
args.output_directory = set_output_directory(args)
238+
args = set_wavelength(args)
239+
args = load_user_metadata(args)
240+
return args
241+
242+
221243
def load_metadata(args, filepath):
222244
"""
223245
Load relevant metadata from args

0 commit comments

Comments
 (0)