def get_num_outputs(self): num_outputs = -1 if self.params.has_key('sensors'): sensors = self.params['sensors'] if type(sensors) in [str, unicode]: if type(sensors) == unicode: sensors = sensors.encode() sensors = xml_utils.full_clean(sensors) assert type(sensors) in [list, tuple], "Problem with the type of sensors: " + str(type(sensors)) num_outputs = len(sensors) return num_outputs elif self.params.has_key('output_angles'): out_angles = self.params['output_angles'] if type(out_angles) == str: out_angles = xml_utils.full_clean(out_angles) num_outputs = len(out_angles) return num_outputs #I don't know what to do if that didn't work return 1
def on_show_outputs_change(self): print('in on_show_outputs_change') show_outs_str = self.get_grid_val('show_outputs') show_outs_bool = xml_utils.str_to_bool(show_outs_str) if show_outs_bool: self.append_rows_if_missing(output_opts) #try to determine sensible defaults # # ? how do I determine info about the active block? # # output_opts = ['show_output_arrows','output_distances','output_angles'] output_str = self.get_grid_val('sensors') show_arrows = [True] out_distances = [1.0] out_angles = [0] out_labels = [''] if output_str: my_outputs = xml_utils.full_clean(output_str) if type(my_outputs) == list: num_out = len(my_outputs) show_arrows = [True]*num_out out_distances = [1.0]*num_out out_labels = ['']*num_out if num_out == 1: out_angles = [0] elif num_out == 2: out_angles = [-30,30] elif num_out == 3: out_angles = [-45,0,45] elif num_out == 4: out_angles =[-45, -15, 15, 45] self.set_grid_val('output_angles', out_angles) self.set_grid_val('output_distances', out_distances) self.set_grid_val('show_output_arrows', show_arrows) self.set_grid_val('output_labels', out_labels) else: self.delete_grid_rows(output_opts)
def on_show_outputs_change(self): print('in on_show_outputs_change') show_outs_str = self.get_grid_val('show_outputs') show_outs_bool = xml_utils.str_to_bool(show_outs_str) if show_outs_bool: self.append_rows_if_missing(output_opts) #try to determine sensible defaults # # ? how do I determine info about the active block? # # output_opts = ['show_output_arrows','output_distances','output_angles'] output_str = self.get_grid_val('sensors') show_arrows = [True] out_distances = [1.0] out_angles = [0] out_labels = [''] if output_str: my_outputs = xml_utils.full_clean(output_str) if type(my_outputs) == list: num_out = len(my_outputs) show_arrows = [True] * num_out out_distances = [1.0] * num_out out_labels = [''] * num_out if num_out == 1: out_angles = [0] elif num_out == 2: out_angles = [-30, 30] elif num_out == 3: out_angles = [-45, 0, 45] elif num_out == 4: out_angles = [-45, -15, 15, 45] self.set_grid_val('output_angles', out_angles) self.set_grid_val('output_distances', out_distances) self.set_grid_val('show_output_arrows', show_arrows) self.set_grid_val('output_labels', out_labels) else: self.delete_grid_rows(output_opts)
def build_params_dict(self): params_dict = {} exit_code = 0 max_rows = self._get_max_rows() for i in range(1,max_rows): key = self.params_grid.GetCellValue(i,0) val = self.params_grid.GetCellValue(i,1) key = key.strip() val = val.strip() val = xml_utils.full_clean(val) if not key: break elif not val: ## msg = 'Empty parameters are not allow: %s' % key ## wx.MessageBox(msg, 'Parameter Error', ## wx.OK | wx.ICON_ERROR) ## exit_code = 1 ## break val = None#do I really want to make this explicit, or #just leave it blank? params_dict[key] = val print('params_dict = %s' % params_dict) return params_dict
def build_params_dict(self): params_dict = {} exit_code = 0 max_rows = self._get_max_rows() for i in range(1, max_rows): key = self.params_grid.GetCellValue(i, 0) val = self.params_grid.GetCellValue(i, 1) key = key.strip() val = val.strip() val = xml_utils.full_clean(val) if not key: break elif not val: ## msg = 'Empty parameters are not allow: %s' % key ## wx.MessageBox(msg, 'Parameter Error', ## wx.OK | wx.ICON_ERROR) ## exit_code = 1 ## break val = None #do I really want to make this explicit, or #just leave it blank? params_dict[key] = val print('params_dict = %s' % params_dict) return params_dict
def set_params_as_attrs(self): for key, val in self.params.iteritems(): val = xml_utils.full_clean(val) val = xml_utils.try_string_to_number(val) setattr(self, key, val)