Skip to content

Commit 110f66e

Browse files
changed set_input_dir to set_input_files
1 parent d1f01b9 commit 110f66e

File tree

4 files changed

+60
-36
lines changed

4 files changed

+60
-36
lines changed

src/diffpy/labpdfproc/labpdfprocapp.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import glob
21
import sys
32
from argparse import ArgumentParser
43
from pathlib import Path
54

65
from diffpy.labpdfproc.functions import apply_corr, compute_cve
7-
from diffpy.labpdfproc.tools import known_sources, set_input_directory, set_output_directory, set_wavelength
6+
from diffpy.labpdfproc.tools import known_sources, set_input_files, set_output_directory, set_wavelength
87
from diffpy.utils.parsers.loaddata import loadData
98
from diffpy.utils.scattering_objects.diffraction_objects import XQUANTITIES, Diffraction_object
109

@@ -65,12 +64,11 @@ def get_args():
6564

6665
def main():
6766
args = get_args()
68-
args = set_input_directory(args)
67+
args = set_input_files(args)
6968
args.output_directory = set_output_directory(args)
7069
args.wavelength = set_wavelength(args)
71-
input_files = glob.glob(str(args.input_directory) + "/*", recursive=True)
7270

73-
for input_file in input_files:
71+
for input_file in args.input_file:
7472
filepath = Path(input_file)
7573
outfilestem = filepath.stem + "_corrected"
7674
corrfilestem = filepath.stem + "_cve"

src/diffpy/labpdfproc/tests/conftest.py

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,35 @@ def user_filesystem(tmp_path):
99
directory = Path(tmp_path)
1010
os.chdir(directory)
1111

12-
existing_dir = Path(tmp_path).resolve() / "existing_dir"
13-
existing_dir.mkdir(parents=True, exist_ok=True)
14-
15-
existing_file = Path(tmp_path).resolve() / "existing_file.py"
16-
existing_file.touch()
17-
18-
input_directory = Path(tmp_path).resolve() / "input_directory"
19-
input_directory.mkdir(parents=True, exist_ok=True)
20-
21-
with open(os.path.join(input_directory, "good_data.chi"), "w") as f:
22-
f.write("1 2 \n 3 4 \n 5 6 \n 7 8")
23-
with open(os.path.join(input_directory, "good_data.xy"), "w") as f:
24-
f.write("1 2 \n 3 4 \n 5 6 \n 7 8")
25-
with open(os.path.join(input_directory, "unreadable_file.txt"), "w") as f:
26-
f.write("This is an unreadable file.")
27-
with open(os.path.join(input_directory, "binary.pkl"), "wb") as f:
28-
f.write(b"\x00\x01\x02\x03\x04")
12+
input_dir = Path(tmp_path).resolve() / "input_dir"
13+
input_dir.mkdir(parents=True, exist_ok=True)
14+
15+
chi_data = "dataformat = twotheta\n mode = xray\n # chi_Q chi_I\n 1 2\n 3 4\n 5 6\n 7 8\n"
16+
xy_data = "1 2\n 3 4\n 5 6\n 7 8"
17+
txt_data = "dataformat = twotheta\n mode = xray\n # chi_Q chi_I\n 1 2\n 3 4\n 5 6\n 7 8\n"
18+
unreadable_data = "This is an unreadable file."
19+
binary_data = b"\x00\x01\x02\x03\x04"
20+
21+
with open("good_data.chi", "w") as f:
22+
f.write(chi_data)
23+
with open("good_data.xy", "w") as f:
24+
f.write(xy_data)
25+
with open("good_data.txt", "w") as f:
26+
f.write(txt_data)
27+
with open("unreadable_file.txt", "w") as f:
28+
f.write(unreadable_data)
29+
with open("binary.pkl", "wb") as f:
30+
f.write(binary_data)
31+
32+
with open(os.path.join(input_dir, "good_data.chi"), "w") as f:
33+
f.write(chi_data)
34+
with open(os.path.join(input_dir, "good_data.xy"), "w") as f:
35+
f.write(xy_data)
36+
with open(os.path.join(input_dir, "good_data.txt"), "w") as f:
37+
f.write(txt_data)
38+
with open(os.path.join(input_dir, "unreadable_file.txt"), "w") as f:
39+
f.write(unreadable_data)
40+
with open(os.path.join(input_dir, "binary.pkl"), "wb") as f:
41+
f.write(binary_data)
2942

3043
yield tmp_path

src/diffpy/labpdfproc/tests/test_tools.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import argparse
2-
import os
32
import re
43
from pathlib import Path
54

65
import pytest
76

8-
from diffpy.labpdfproc.tools import known_sources, set_input_directory, set_output_directory, set_wavelength
7+
from diffpy.labpdfproc.tools import known_sources, set_input_files, set_output_directory, set_wavelength
98
from diffpy.utils.parsers.loaddata import loadData
109

1110
params1 = [
1211
([None], ["."]),
1312
(["."], ["."]),
1413
(["new_dir"], ["new_dir"]),
15-
(["existing_dir"], ["existing_dir"]),
14+
(["input_dir"], ["input_dir"]),
1615
]
1716

1817

@@ -33,7 +32,7 @@ def test_set_output_directory(inputs, expected, user_filesystem):
3332
def test_set_output_directory_bad(user_filesystem):
3433
actual_parser = argparse.ArgumentParser()
3534
actual_parser.add_argument("--output_directory")
36-
actual_args = actual_parser.parse_args(["--output_directory", "existing_file.py"])
35+
actual_args = actual_parser.parse_args(["--output_directory", "good_data.chi"])
3736

3837
with pytest.raises(FileExistsError):
3938
actual_args.output_directory = set_output_directory(actual_args)
@@ -42,29 +41,37 @@ def test_set_output_directory_bad(user_filesystem):
4241

4342

4443
params2 = [
45-
([None], ["."]),
46-
(["existing_input_file.xy"], ["."]),
47-
(["existing_dir/existing_input_file.xy"], ["existing_dir"]),
44+
(
45+
[None],
46+
[
47+
".",
48+
["good_data.chi", "good_data.xy", "good_data.txt", "unreadable_file.txt", "binary.pkl", "input_dir"],
49+
],
50+
),
51+
(["good_data.chi"], [".", "good_data.chi"]),
52+
(["input_dir/unreadable_file.txt"], ["input_dir", "input_dir/unreadable_file.txt"]),
4853
# ([Path.cwd()], [Path.cwd()]),
4954
]
5055

5156

5257
@pytest.mark.parametrize("inputs, expected", params2)
53-
def test_set_input_directory(inputs, expected, user_filesystem):
58+
def test_set_input_files(inputs, expected, user_filesystem):
5459
tmp_dir = user_filesystem
5560
expected_input_directory = tmp_dir / expected[0]
61+
expected_input_files = expected[1]
5662

5763
actual_parser = argparse.ArgumentParser()
5864
actual_parser.add_argument("--input_file")
5965
actual_args = actual_parser.parse_args(["--input_file", inputs[0]])
60-
actual_args = set_input_directory(actual_args)
66+
actual_args = set_input_files(actual_args)
6167
assert actual_args.input_directory == expected_input_directory
68+
assert set(actual_args.input_file) == set(expected_input_files)
6269

6370

64-
def test_input_files(user_filesystem):
65-
os.chdir("input_directory")
71+
def test_loadData_with_input_files(user_filesystem):
6672
xarray_chi, yarray_chi = loadData("good_data.chi", unpack=True)
6773
xarray_xy, yarray_xy = loadData("good_data.xy", unpack=True)
74+
xarray_txt, yarray_txt = loadData("good_data.txt", unpack=True)
6875
with pytest.raises(ValueError):
6976
xarray_txt, yarray_txt = loadData("unreadable_file.txt", unpack=True)
7077
with pytest.raises(ValueError):

src/diffpy/labpdfproc/tools.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import glob
2+
import os
13
from pathlib import Path
24

35
WAVELENGTHS = {"Mo": 0.71, "Ag": 0.59, "Cu": 1.54}
@@ -28,9 +30,9 @@ def set_output_directory(args):
2830
return output_dir
2931

3032

31-
def set_input_directory(args):
33+
def set_input_files(args):
3234
"""
33-
Set the input directory based on input file, default is current working directory if nothing is given
35+
Set input directory and files, default is current working directory and all files in it
3436
3537
Parameters
3638
----------
@@ -40,11 +42,15 @@ def set_input_directory(args):
4042
Returns
4143
-------
4244
args argparse.Namespace
43-
the arguments from the parser with a new argument input_directory
45+
the arguments from the parser with a new argument input_directory and processed input_files
4446
4547
"""
4648
input_dir = Path.cwd() / Path(args.input_file).parent if args.input_file else Path.cwd()
4749
setattr(args, "input_directory", input_dir)
50+
if not args.input_file:
51+
input_files = glob.glob(str(input_dir) + "/*", recursive=True)
52+
input_file_names = [os.path.basename(input_file_path) for input_file_path in input_files]
53+
args.input_file = input_file_names
4854
return args
4955

5056

0 commit comments

Comments
 (0)