Skip to content

Commit bb60498

Browse files
reset commit to fixture in conftest and grid size in functions
1 parent 110f66e commit bb60498

File tree

5 files changed

+53
-120
lines changed

5 files changed

+53
-120
lines changed

src/diffpy/labpdfproc/functions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from diffpy.utils.scattering_objects.diffraction_objects import Diffraction_object
66

77
RADIUS_MM = 1
8-
N_POINTS_ON_DIAMETER = 249
8+
N_POINTS_ON_DIAMETER = 300
99
TTH_GRID = np.arange(1, 141, 1)
1010

1111

src/diffpy/labpdfproc/labpdfprocapp.py

Lines changed: 32 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pathlib import Path
44

55
from diffpy.labpdfproc.functions import apply_corr, compute_cve
6-
from diffpy.labpdfproc.tools import known_sources, set_input_files, set_output_directory, set_wavelength
6+
from diffpy.labpdfproc.tools import known_sources, set_output_directory, set_wavelength
77
from diffpy.utils.parsers.loaddata import loadData
88
from diffpy.utils.scattering_objects.diffraction_objects import XQUANTITIES, Diffraction_object
99

@@ -64,51 +64,44 @@ def get_args():
6464

6565
def main():
6666
args = get_args()
67-
args = set_input_files(args)
6867
args.output_directory = set_output_directory(args)
6968
args.wavelength = set_wavelength(args)
7069

71-
for input_file in args.input_file:
72-
filepath = Path(input_file)
73-
outfilestem = filepath.stem + "_corrected"
74-
corrfilestem = filepath.stem + "_cve"
75-
outfile = args.output_directory / (outfilestem + ".chi")
76-
corrfile = args.output_directory / (corrfilestem + ".chi")
70+
filepath = Path(args.input_file)
71+
outfilestem = filepath.stem + "_corrected"
72+
corrfilestem = filepath.stem + "_cve"
73+
outfile = args.output_directory / (outfilestem + ".chi")
74+
corrfile = args.output_directory / (corrfilestem + ".chi")
7775

78-
if outfile.exists() and not args.force_overwrite:
79-
sys.exit(
80-
f"Output file {str(outfile)} already exists. Please rerun "
81-
f"specifying -f if you want to overwrite it."
82-
)
83-
if corrfile.exists() and args.output_correction and not args.force_overwrite:
84-
sys.exit(
85-
f"Corrections file {str(corrfile)} was requested and already "
86-
f"exists. Please rerun specifying -f if you want to overwrite it."
87-
)
88-
89-
input_pattern = Diffraction_object(wavelength=args.wavelength)
90-
91-
try:
92-
xarray, yarray = loadData(args.input_file, unpack=True)
93-
except Exception as e:
94-
raise ValueError(f"Failed to load data from {filepath}: {e}.")
95-
96-
input_pattern.insert_scattering_quantity(
97-
xarray,
98-
yarray,
99-
"tth",
100-
scat_quantity="x-ray",
101-
name=str(args.input_file),
102-
metadata={"muD": args.mud, "anode_type": args.anode_type},
76+
if outfile.exists() and not args.force_overwrite:
77+
sys.exit(
78+
f"Output file {str(outfile)} already exists. Please rerun "
79+
f"specifying -f if you want to overwrite it."
10380
)
81+
if corrfile.exists() and args.output_correction and not args.force_overwrite:
82+
sys.exit(
83+
f"Corrections file {str(corrfile)} was requested and already "
84+
f"exists. Please rerun specifying -f if you want to overwrite it."
85+
)
86+
87+
input_pattern = Diffraction_object(wavelength=args.wavelength)
88+
xarray, yarray = loadData(args.input_file, unpack=True)
89+
input_pattern.insert_scattering_quantity(
90+
xarray,
91+
yarray,
92+
"tth",
93+
scat_quantity="x-ray",
94+
name=str(args.input_file),
95+
metadata={"muD": args.mud, "anode_type": args.anode_type},
96+
)
10497

105-
absorption_correction = compute_cve(input_pattern, args.mud, args.wavelength)
106-
corrected_data = apply_corr(input_pattern, absorption_correction)
107-
corrected_data.name = f"Absorption corrected input_data: {input_pattern.name}"
108-
corrected_data.dump(f"{outfile}", xtype="tth")
98+
absorption_correction = compute_cve(input_pattern, args.mud, args.wavelength)
99+
corrected_data = apply_corr(input_pattern, absorption_correction)
100+
corrected_data.name = f"Absorption corrected input_data: {input_pattern.name}"
101+
corrected_data.dump(f"{outfile}", xtype="tth")
109102

110-
if args.output_correction:
111-
absorption_correction.dump(f"{corrfile}", xtype="tth")
103+
if args.output_correction:
104+
absorption_correction.dump(f"{corrfile}", xtype="tth")
112105

113106

114107
if __name__ == "__main__":

src/diffpy/labpdfproc/tests/conftest.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ def user_filesystem(tmp_path):
1414

1515
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"
1616
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"
1817
unreadable_data = "This is an unreadable file."
1918
binary_data = b"\x00\x01\x02\x03\x04"
2019

@@ -23,7 +22,7 @@ def user_filesystem(tmp_path):
2322
with open("good_data.xy", "w") as f:
2423
f.write(xy_data)
2524
with open("good_data.txt", "w") as f:
26-
f.write(txt_data)
25+
f.write(chi_data)
2726
with open("unreadable_file.txt", "w") as f:
2827
f.write(unreadable_data)
2928
with open("binary.pkl", "wb") as f:
@@ -34,7 +33,7 @@ def user_filesystem(tmp_path):
3433
with open(os.path.join(input_dir, "good_data.xy"), "w") as f:
3534
f.write(xy_data)
3635
with open(os.path.join(input_dir, "good_data.txt"), "w") as f:
37-
f.write(txt_data)
36+
f.write(chi_data)
3837
with open(os.path.join(input_dir, "unreadable_file.txt"), "w") as f:
3938
f.write(unreadable_data)
4039
with open(os.path.join(input_dir, "binary.pkl"), "wb") as f:

src/diffpy/labpdfproc/tests/test_tools.py

Lines changed: 18 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,50 @@
11
import argparse
2+
import os
23
import re
34
from pathlib import Path
45

56
import pytest
67

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

1010
params1 = [
1111
([None], ["."]),
1212
(["."], ["."]),
1313
(["new_dir"], ["new_dir"]),
14-
(["input_dir"], ["input_dir"]),
14+
(["existing_dir"], ["existing_dir"]),
1515
]
1616

1717

1818
@pytest.mark.parametrize("inputs, expected", params1)
19-
def test_set_output_directory(inputs, expected, user_filesystem):
20-
tmp_dir = user_filesystem
21-
expected_output_directory = tmp_dir / expected[0]
19+
def test_set_output_directory(inputs, expected, tmp_path):
20+
directory = Path(tmp_path)
21+
os.chdir(directory)
2222

23-
actual_parser = argparse.ArgumentParser()
24-
actual_parser.add_argument("--output_directory")
25-
actual_args = actual_parser.parse_args(["--output_directory", inputs[0]])
23+
existing_dir = Path(tmp_path).resolve() / "existing_dir"
24+
existing_dir.mkdir(parents=True, exist_ok=True)
25+
26+
expected_output_directory = Path(tmp_path).resolve() / expected[0]
27+
actual_args = argparse.Namespace(output_directory=inputs[0])
2628
actual_args.output_directory = set_output_directory(actual_args)
2729
assert actual_args.output_directory == expected_output_directory
2830
assert Path(actual_args.output_directory).exists()
2931
assert Path(actual_args.output_directory).is_dir()
3032

3133

32-
def test_set_output_directory_bad(user_filesystem):
33-
actual_parser = argparse.ArgumentParser()
34-
actual_parser.add_argument("--output_directory")
35-
actual_args = actual_parser.parse_args(["--output_directory", "good_data.chi"])
34+
def test_set_output_directory_bad(tmp_path):
35+
directory = Path(tmp_path)
36+
os.chdir(directory)
37+
38+
existing_file = Path(tmp_path).resolve() / "existing_file.py"
39+
existing_file.touch()
3640

41+
actual_args = argparse.Namespace(output_directory="existing_file.py")
3742
with pytest.raises(FileExistsError):
3843
actual_args.output_directory = set_output_directory(actual_args)
3944
assert Path(actual_args.output_directory).exists()
4045
assert not Path(actual_args.output_directory).is_dir()
4146

4247

43-
params2 = [
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"]),
53-
# ([Path.cwd()], [Path.cwd()]),
54-
]
55-
56-
57-
@pytest.mark.parametrize("inputs, expected", params2)
58-
def test_set_input_files(inputs, expected, user_filesystem):
59-
tmp_dir = user_filesystem
60-
expected_input_directory = tmp_dir / expected[0]
61-
expected_input_files = expected[1]
62-
63-
actual_parser = argparse.ArgumentParser()
64-
actual_parser.add_argument("--input_file")
65-
actual_args = actual_parser.parse_args(["--input_file", inputs[0]])
66-
actual_args = set_input_files(actual_args)
67-
assert actual_args.input_directory == expected_input_directory
68-
assert set(actual_args.input_file) == set(expected_input_files)
69-
70-
71-
def test_loadData_with_input_files(user_filesystem):
72-
xarray_chi, yarray_chi = loadData("good_data.chi", unpack=True)
73-
xarray_xy, yarray_xy = loadData("good_data.xy", unpack=True)
74-
xarray_txt, yarray_txt = loadData("good_data.txt", unpack=True)
75-
with pytest.raises(ValueError):
76-
xarray_txt, yarray_txt = loadData("unreadable_file.txt", unpack=True)
77-
with pytest.raises(ValueError):
78-
xarray_pkl, yarray_pkl = loadData("binary.pkl", unpack=True)
79-
80-
8148
params2 = [
8249
([None, None], [0.71]),
8350
([None, "Ag"], [0.59]),

src/diffpy/labpdfproc/tools.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import glob
2-
import os
31
from pathlib import Path
42

53
WAVELENGTHS = {"Mo": 0.71, "Ag": 0.59, "Cu": 1.54}
@@ -30,30 +28,6 @@ def set_output_directory(args):
3028
return output_dir
3129

3230

33-
def set_input_files(args):
34-
"""
35-
Set input directory and files, default is current working directory and all files in it
36-
37-
Parameters
38-
----------
39-
args argparse.Namespace
40-
the arguments from the parser
41-
42-
Returns
43-
-------
44-
args argparse.Namespace
45-
the arguments from the parser with a new argument input_directory and processed input_files
46-
47-
"""
48-
input_dir = Path.cwd() / Path(args.input_file).parent if args.input_file else Path.cwd()
49-
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
54-
return args
55-
56-
5731
def set_wavelength(args):
5832
"""
5933
Set the wavelength based on the given input arguments

0 commit comments

Comments
 (0)