MLModel class used to calc derivative metrics from raw data :param model_params: Model Params :type model_params: BrainFlowModelParams
| 162 | |
| 163 | |
| 164 | class MLModel(object): |
| 165 | """MLModel class used to calc derivative metrics from raw data |
| 166 | |
| 167 | :param model_params: Model Params |
| 168 | :type model_params: BrainFlowModelParams |
| 169 | """ |
| 170 | |
| 171 | def __init__(self, model_params: BrainFlowModelParams) -> None: |
| 172 | self.model_params = model_params |
| 173 | try: |
| 174 | self.serialized_params = model_params.to_json().encode() |
| 175 | except BaseException: |
| 176 | self.serialized_params = model_params.to_json() |
| 177 | |
| 178 | @classmethod |
| 179 | def set_log_level(cls, log_level: int) -> None: |
| 180 | """set BrainFlow log level, use it only if you want to write your own messages to BrainFlow logger, |
| 181 | otherwise use enable_ml_logger, enable_dev_ml_logger or disable_ml_logger |
| 182 | |
| 183 | :param log_level: log level, to specify it you should use values from LogLevels enum |
| 184 | :type log_level: int |
| 185 | """ |
| 186 | res = MLModuleDLL.get_instance().set_log_level_ml_module(log_level) |
| 187 | if res != BrainFlowExitCodes.STATUS_OK.value: |
| 188 | raise BrainFlowError('unable to enable logger', res) |
| 189 | |
| 190 | @classmethod |
| 191 | def enable_ml_logger(cls) -> None: |
| 192 | """enable ML Logger with level INFO, uses stderr for log messages by default""" |
| 193 | cls.set_log_level(LogLevels.LEVEL_INFO.value) |
| 194 | |
| 195 | @classmethod |
| 196 | def disable_ml_logger(cls) -> None: |
| 197 | """disable BrainFlow Logger""" |
| 198 | cls.set_log_level(LogLevels.LEVEL_OFF.value) |
| 199 | |
| 200 | @classmethod |
| 201 | def enable_dev_ml_logger(cls) -> None: |
| 202 | """enable ML Logger with level TRACE, uses stderr for log messages by default""" |
| 203 | cls.set_log_level(LogLevels.LEVEL_TRACE.value) |
| 204 | |
| 205 | @classmethod |
| 206 | def set_log_file(cls, log_file: str) -> None: |
| 207 | """redirect logger from stderr to file, can be called any time |
| 208 | |
| 209 | :param log_file: log file name |
| 210 | :type log_file: str |
| 211 | """ |
| 212 | try: |
| 213 | file = log_file.encode() |
| 214 | except BaseException: |
| 215 | file = log_file |
| 216 | res = MLModuleDLL.get_instance().set_log_file_ml_module(file) |
| 217 | if res != BrainFlowExitCodes.STATUS_OK.value: |
| 218 | raise BrainFlowError('unable to redirect logs to a file', res) |
| 219 | |
| 220 | @classmethod |
| 221 | def log_message(cls, log_level: int, message: str) -> None: |