예제 #1
0
    def _save_experiment_and_maybe_generation_strategy_to_db_if_possible(
            self, save_generation_strategy: bool = True) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this AxClient instance.

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings is not None:
            for i in range(3):
                try:
                    if save_generation_strategy:
                        save_experiment_and_generation_strategy(
                            experiment=self.experiment,
                            generation_strategy=self.generation_strategy,
                            db_settings=self.db_settings,
                        )
                    else:
                        save_experiment(experiment=self.experiment,
                                        db_settings=self.db_settings)
                    return True
                except OperationalError as err:  # pragma: no covert
                    if i < 2 or self._suppress_storage_errors:
                        logger.exception(err)
                        continue
                    raise
        return False
예제 #2
0
    def test_save_load_experiment(self):
        exp = get_experiment()
        init_test_engine_and_session_factory()
        db_settings = DBSettings(url="sqlite://")
        save_experiment(exp, db_settings)
        load_experiment(exp.name, db_settings)

        simple_experiment = get_simple_experiment()
        save_experiment(simple_experiment, db_settings)
        with self.assertRaisesRegex(ValueError, "Service API only"):
            load_experiment(simple_experiment.name, db_settings)
예제 #3
0
 def test_save_load_experiment_and_generation_strategy(self):
     exp, gs = load_experiment_and_generation_strategy(
         self.exp.name, self.db_settings)
     self.assertIsNone(gs)
     gs = get_generation_strategy()
     gs._experiment = self.exp
     save_experiment(self.exp, self.db_settings)
     save_generation_strategy(gs, self.db_settings)
     exp, gs = load_experiment_and_generation_strategy(
         self.exp.name, self.db_settings)
     self.assertIsNotNone(gs)
예제 #4
0
파일: ax_client.py 프로젝트: amurthy1/Ax
    def _save_experiment_to_db_if_possible(
        self, suppress_all_errors: bool = False
    ) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this AxClient instance.

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings is not None:
            save_experiment(experiment=self.experiment, db_settings=self.db_settings)
            return True
        return False
예제 #5
0
    def _save_experiment_to_db_if_possible(
            self,
            experiment: Experiment,
            suppress_all_errors: bool = False) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this `WithDBSettingsBase` instance.

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings_set:
            save_experiment(experiment=experiment,
                            db_settings=self.db_settings)
            return True
        return False
예제 #6
0
    def test_save_load_experiment(self):
        exp = get_experiment()
        init_test_engine_and_session_factory(force_init=True)
        db_settings = DBSettings(
            encoder=Encoder(config=SQAConfig()),
            decoder=Decoder(config=SQAConfig()),
            creator=None,
        )
        save_experiment(exp, db_settings)
        load_experiment(exp.name, db_settings)

        simple_experiment = get_simple_experiment()
        save_experiment(simple_experiment, db_settings)
        with self.assertRaisesRegex(ValueError, "Service API only"):
            load_experiment(simple_experiment.name, db_settings)
예제 #7
0
    def _save_experiment_to_db_if_possible(
        self, experiment: Experiment, suppress_all_errors: bool = False
    ) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this `WithDBSettingsBase` instance.

        Args:
            experiment: Experiment to save new trials in DB.
            suppress_all_errors: Flag for `retry_on_exception` that makes
                the decorator suppress the thrown exception even if it
                occurred in all the retries (exception is still logged).

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings_set:
            save_experiment(experiment=experiment, db_settings=self.db_settings)
            return True
        return False
예제 #8
0
 def test_save_load_experiment(self):
     load_experiment(self.exp.name, self.db_settings)
     simple_experiment = get_simple_experiment()
     save_experiment(simple_experiment, self.db_settings)
     with self.assertRaisesRegex(ValueError, "Service API only"):
         load_experiment(simple_experiment.name, self.db_settings)
예제 #9
0
 def setUp(self):
     self.exp = get_experiment()
     init_test_engine_and_session_factory(force=True)
     self.db_settings = DBSettings(url="sqlite://")
     save_experiment(self.exp, self.db_settings)