def put_default_configuration(self, default_configuration: Configuration): if self._is_valid_configuration_instance(default_configuration): if not self.default_configuration: self.default_configuration = default_configuration self.api.send("default", "configuration", configurations=[default_configuration.get_parameters()], results=[default_configuration.get_average_result()]) if default_configuration not in self.all_configurations: self.all_configurations.append(default_configuration) self._calculate_current_best_configurations() else: raise ValueError("The default Configuration was registered already.")
def _add_configuration_to_experiment(self, configuration: Configuration) -> None: """ Save configuration after passing all checks. This method also sends an update to API (front-end). :param configuration: Configuration object. :return: None """ self.all_configurations.append(configuration) self.api.send("new", "configuration", configurations=[configuration.get_parameters()], results=[configuration.get_average_result()]) self.logger.info("Adding to Experiment: %s" % configuration)
def _put(self, configuration_instance: Configuration): """ Takes instance of Configuration class and appends it to the list with all configuration instances. :param configuration_instance: Configuration class instance. """ if self._is_valid_configuration_instance(configuration_instance): if self.all_configurations is []: self._add_configuration_to_experiment(configuration_instance) else: is_exists = False for value in self.all_configurations: if value.get_parameters() == configuration_instance.get_parameters(): is_exists = True if not is_exists: self._add_configuration_to_experiment(configuration_instance) else: self.logger.warning("Attempt of adding Configuration that is already in Experiment: %s" % configuration_instance)