@@ -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