def check(self): model_param_descr = "Statistics's param statistics" BaseParam.check_boolean(self.need_run, model_param_descr) if not isinstance(self.statistics, list): if self.statistics in [consts.DESCRIBE, consts.SUMMARY]: self.statistics = StatisticsParam.extend_statistics( self.statistics) else: self.statistics = [self.statistics] for stat_name in self.statistics: match_found = StatisticsParam.find_stat_name_match(stat_name) if not match_found: raise ValueError( f"Illegal statistics name provided: {stat_name}.") model_param_descr = "Statistics's param column_names" if not isinstance(self.column_names, list): raise ValueError(f"column_names should be list of string.") for col_name in self.column_names: BaseParam.check_string(col_name, model_param_descr) model_param_descr = "Statistics's param column_indexes" if not isinstance(self.column_indexes, list) and self.column_indexes != -1: raise ValueError(f"column_indexes should be list of int or -1.") if self.column_indexes != -1: for col_index in self.column_indexes: if not isinstance(col_index, int): raise ValueError( f"{model_param_descr} should be int or list of int") if col_index < -consts.FLOAT_ZERO: raise ValueError( f"{model_param_descr} should be non-negative int value(s)" ) if not isinstance(self.abnormal_list, list): raise ValueError(f"abnormal_list should be list of int or string.") self.check_decimal_float(self.quantile_error, "Statistics's param quantile_error ") self.check_boolean(self.bias, "Statistics's param bias ") return True
def check(self): descr = "column_expand param's " if not isinstance(self.method, str): raise ValueError( f"{descr}method {self.method} not supported, should be str type" ) else: user_input = self.method.lower() if user_input == "manual": self.method = consts.MANUAL else: raise ValueError(f"{descr} method {user_input} not supported") BaseParam.check_boolean(self.need_run, descr=descr) if not isinstance(self.append_header, list): raise ValueError( f"{descr} append_header must be None or list of str. " f"Received {type(self.append_header)} instead.") for feature_name in self.append_header: BaseParam.check_string(feature_name, descr + "append_header values") if isinstance(self.fill_value, list): if len(self.append_header) != len(self.fill_value): raise ValueError( f"{descr} `fill value` is set to be list, " f"and param `append_header` must also be list of the same length." ) else: self.fill_value = [self.fill_value] for value in self.fill_value: if type(value).__name__ not in ["float", "int", "long", "str"]: raise ValueError( f"{descr} fill value(s) must be float, int, or str. Received type {type(value)} instead." ) return True