Skip to content

Commit a9facce

Browse files
initial commit on using expand_list_file, not passing tests for file_list with missing files
1 parent 93cf5b4 commit a9facce

File tree

2 files changed

+56
-43
lines changed

2 files changed

+56
-43
lines changed

src/diffpy/labpdfproc/labpdfprocapp.py

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
import sys
22
from argparse import ArgumentParser
3-
from pathlib import Path
43

54
from diffpy.labpdfproc.functions import apply_corr, compute_cve
6-
from diffpy.labpdfproc.tools import known_sources, load_user_metadata, set_output_directory, set_wavelength
5+
from diffpy.labpdfproc.tools import (
6+
known_sources,
7+
load_user_metadata,
8+
set_input_lists,
9+
set_output_directory,
10+
set_wavelength,
11+
)
712
from diffpy.utils.parsers.loaddata import loadData
813
from diffpy.utils.scattering_objects.diffraction_objects import XQUANTITIES, Diffraction_object
914

@@ -89,45 +94,46 @@ def get_args(override_cli_inputs=None):
8994

9095
def main():
9196
args = get_args()
97+
args = set_input_lists(args)
9298
args.output_directory = set_output_directory(args)
9399
args.wavelength = set_wavelength(args)
94100
args = load_user_metadata(args)
95101

96-
filepath = Path(args.input_file)
97-
outfilestem = filepath.stem + "_corrected"
98-
corrfilestem = filepath.stem + "_cve"
99-
outfile = args.output_directory / (outfilestem + ".chi")
100-
corrfile = args.output_directory / (corrfilestem + ".chi")
102+
for filepath in args.input_directory:
103+
outfilestem = filepath.stem + "_corrected"
104+
corrfilestem = filepath.stem + "_cve"
105+
outfile = args.output_directory / (outfilestem + ".chi")
106+
corrfile = args.output_directory / (corrfilestem + ".chi")
101107

102-
if outfile.exists() and not args.force_overwrite:
103-
sys.exit(
104-
f"Output file {str(outfile)} already exists. Please rerun "
105-
f"specifying -f if you want to overwrite it."
106-
)
107-
if corrfile.exists() and args.output_correction and not args.force_overwrite:
108-
sys.exit(
109-
f"Corrections file {str(corrfile)} was requested and already "
110-
f"exists. Please rerun specifying -f if you want to overwrite it."
111-
)
108+
if outfile.exists() and not args.force_overwrite:
109+
sys.exit(
110+
f"Output file {str(outfile)} already exists. Please rerun "
111+
f"specifying -f if you want to overwrite it."
112+
)
113+
if corrfile.exists() and args.output_correction and not args.force_overwrite:
114+
sys.exit(
115+
f"Corrections file {str(corrfile)} was requested and already "
116+
f"exists. Please rerun specifying -f if you want to overwrite it."
117+
)
112118

113-
input_pattern = Diffraction_object(wavelength=args.wavelength)
114-
xarray, yarray = loadData(args.input_file, unpack=True)
115-
input_pattern.insert_scattering_quantity(
116-
xarray,
117-
yarray,
118-
"tth",
119-
scat_quantity="x-ray",
120-
name=str(args.input_file),
121-
metadata={"muD": args.mud, "anode_type": args.anode_type},
122-
)
119+
input_pattern = Diffraction_object(wavelength=args.wavelength)
120+
xarray, yarray = loadData(args.input_file, unpack=True)
121+
input_pattern.insert_scattering_quantity(
122+
xarray,
123+
yarray,
124+
"tth",
125+
scat_quantity="x-ray",
126+
name=str(args.input_file),
127+
metadata={"muD": args.mud, "anode_type": args.anode_type},
128+
)
123129

124-
absorption_correction = compute_cve(input_pattern, args.mud, args.wavelength)
125-
corrected_data = apply_corr(input_pattern, absorption_correction)
126-
corrected_data.name = f"Absorption corrected input_data: {input_pattern.name}"
127-
corrected_data.dump(f"{outfile}", xtype="tth")
130+
absorption_correction = compute_cve(input_pattern, args.mud, args.wavelength)
131+
corrected_data = apply_corr(input_pattern, absorption_correction)
132+
corrected_data.name = f"Absorption corrected input_data: {input_pattern.name}"
133+
corrected_data.dump(f"{outfile}", xtype="tth")
128134

129-
if args.output_correction:
130-
absorption_correction.dump(f"{corrfile}", xtype="tth")
135+
if args.output_correction:
136+
absorption_correction.dump(f"{corrfile}", xtype="tth")
131137

132138

133139
if __name__ == "__main__":

src/diffpy/labpdfproc/tools.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,20 @@ def set_output_directory(args):
2828
return output_dir
2929

3030

31-
def _parse_file_list_file(input_path):
32-
with open(input_path, "r") as f:
33-
lines = [line.strip() for line in f]
34-
input_files = [Path(line).resolve() for line in lines if Path(line).is_file()]
35-
return input_files
31+
def _parse_file_list_file(file_list_path):
32+
with open(file_list_path, "r") as f:
33+
# file_paths = [Path(file_path.strip()).resolve() for file_path in f.readlines()
34+
# if Path(file_path.strip()).is_file()]
35+
file_paths = [file_path.strip() for file_path in f.readlines()]
36+
return file_paths
37+
38+
39+
def expand_list_file(input):
40+
file_list_inputs = [input_name for input_name in input if "file_list" in str(input_name)]
41+
for file_list_input in file_list_inputs:
42+
input.remove(file_list_input)
43+
input.extend(_parse_file_list_file(file_list_input))
44+
return input
3645

3746

3847
def set_input_lists(args):
@@ -54,14 +63,12 @@ def set_input_lists(args):
5463
"""
5564

5665
input_paths = []
57-
for input in args.input:
66+
expanded_input = expand_list_file(args.input)
67+
for input in expanded_input:
5868
input_path = Path(input).resolve()
5969
if input_path.exists():
6070
if input_path.is_file():
61-
if "file_list" in input_path.name:
62-
input_paths.extend(_parse_file_list_file(input_path))
63-
else:
64-
input_paths.append(input_path)
71+
input_paths.append(input_path)
6572
elif input_path.is_dir():
6673
input_files = input_path.glob("*")
6774
input_files = [

0 commit comments

Comments
 (0)