Skip to content

Commit a553279

Browse files
Merge pull request #333 from neutrons/table_validate
table validation added in
2 parents 5fe5c42 + 79a3b8c commit a553279

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

addie/processing/idl/run_sum_scans.py

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,11 @@ def create_output_file(self):
108108
r_range = o_gui_handler.get_r_range(r_max_possible)
109109
self._runs["r_range"] = r_range
110110
self._runs["q_range"] = [q_range_min, q_range_max]
111-
for _label in self._runs:
112-
if _label != "r_range" and _label != "q_range":
113-
self._runs = self.collect_info_for_redpar(self._runs, _label)
114-
self.write_redpar(self._runs, _label)
111+
if self.validate_table(self._runs):
112+
for _label in self._runs:
113+
if _label != "r_range" and _label != "q_range":
114+
self._runs = self.collect_info_for_redpar(self._runs, _label)
115+
self.write_redpar(self._runs, _label)
115116

116117
def collect_info_for_redpar(self, runs_info, _label):
117118
chem_form_temp = runs_info[_label]["sam_formula"]
@@ -146,15 +147,16 @@ def write_redpar(self, runs_info, _label):
146147
f.write("{0:13s}{1:<s}\n".format("rfilter", ",".join(runs_info["r_range"])))
147148
if None not in runs_info["q_range"]:
148149
f.write("{0:13s}{1:<s}\n".format("qfilter", ",".join(runs_info["q_range"])))
150+
print("[LOG] created redpar file {}".format(file_name))
149151

150152
def collect_runs_checked(self):
151153
table = self.parent.table
152154
_runs = {}
153155
for _row_index in range(table.rowCount()):
154156
_selected_widget = table.cellWidget(_row_index, 0).children()[1]
155157
_label = str(table.item(_row_index, 1).text())
156-
_runs[_label] = {}
157158
if (_selected_widget.checkState() == Qt.Checked):
159+
_runs[_label] = {}
158160
# for Joerg's new script.
159161
for i in range(7):
160162
_runs = self.load_table(_runs, table, _label, _row_index, i + 1)
@@ -190,3 +192,22 @@ def load_table(self, dict_in, table_in, _label, row, col):
190192
dict_in[_label]["geometry"] = _value
191193

192194
return dict_in
195+
196+
def validate_table(self, runs_in):
197+
for _label in runs_in:
198+
if _label == "r_range":
199+
if any(runs_in[_label]) == "":
200+
print("[Warning] R range info not provided and thus redpar file will not be created.")
201+
return False
202+
elif _label == "q_range":
203+
if any(runs_in[_label]) == "":
204+
print("[Warning] Q range info not provided and thus redpar file will not be created.")
205+
return False
206+
else:
207+
for _label_1 in runs_in[_label]:
208+
if runs_in[_label][_label_1] == "":
209+
print("[Warning] {0:s} info not provided for {1:s}".format(_label_1, _label))
210+
print("[Warning] Hence the redpar file will not be created.")
211+
return False
212+
213+
return True

0 commit comments

Comments
 (0)