def _store_user_settings(self, settings): UserSettings.save_to_file(self.user_settings_filepath, settings, add_defaults=True) self.user_settings = settings self.command_queue.put_nowait( GetUserSettings(lambda: self._generate_usersettings_message( self.user_settings)))
def modify_user_settings(self, settings): self.user_settings.update(self._extract_settings(settings)) if self.persistent_user_settings_enabled: UserSettings.save_to_file(self.user_settings_filepath, self.user_settings, add_defaults=True) self.command_queue.put_nowait( GetUserSettings(lambda: self._generate_usersettings_message( self.user_settings)))
def _load_usersettings(self): if self.persistent_user_settings_enabled: try: user_settings = UserSettings.load_from_file( self.user_settings_filepath) except FileNotFoundError: user_settings = UserSettings.get_defaults() # always update file with hardcoded defaults (and create it if it does not exist) UserSettings.save_to_file(self.user_settings_filepath, user_settings, add_defaults=True) else: user_settings = UserSettings.get_defaults() return user_settings
def _extract_settings(settings): modified_settings = UserSettings.get_defaults() for setting in settings: field = { setting['name']: { 'active': setting['active'], 'value': int(setting['value']) if setting.get('value') else -1 } } modified_settings.update(field) return modified_settings
def on_loadcommand_issued(self, param_data: dict): jobname = param_data['lot_number'] # TODO: see no difference !! self.loaded_jobname = str(jobname) self.loaded_lot_number = str(jobname) jobformat = self.configuration.get('jobformat') parser = parser_factory.CreateParser(jobformat) source = parser_factory.CreateDataSource(jobname, self.configuration, parser, self.log) if self.configuration.get('skip_jobdata_verification', False): data = { "DEBUG_OPTION": "no content because skip_jobdata_verification enabled" } else: param_data = source.retrieve_data() if param_data is None: self.error_message = "Failed to execute load command" self.load_error() return if not source.verify_data(param_data): self.error_message = "Malformed jobfile" self.load_error() return data = source.get_test_information(param_data) self.log.log_message(LogLevel.Debug(), f'testprogram information: {data}') self.arm_timeout( LOAD_TIMEOUT, lambda: self.timeout("not all sites loaded the testprogram")) self.pendingTransitionsControl = SequenceContainer( [CONTROL_STATE_LOADING, CONTROL_STATE_BUSY], self.configuredSites, lambda: None, lambda site, state: self.on_error( f"Bad statetransition of control {site} during load to {state}" )) self.pendingTransitionsTest = SequenceContainer( [TEST_STATE_IDLE], self.configuredSites, lambda: self.all_siteloads_complete(), lambda site, state: self.on_error( f"Bad statetransition of testapp {site} during load to {state}" )) self.error_message = '' self.connectionHandler.send_load_test_to_all_sites( self.get_test_parameters(data)) self._store_user_settings(UserSettings.get_defaults())