Ejemplo n.º 1
0
    def _save_experiment_and_generation_strategy_to_db_if_possible(
            self, overwrite_existing_experiment: bool = False) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this AxClient instance.

        Args:
            overwrite_existing_experiment: If the experiment being created
                has the same name as some experiment already stored, this flag
                determines whether to overwrite the existing experiment.
                Defaults to False.

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings is not None:
            for i in range(3):
                try:
                    save_experiment_and_generation_strategy(
                        experiment=self.experiment,
                        generation_strategy=self.generation_strategy,
                        db_settings=self.db_settings,
                        overwrite_existing_experiment=
                        overwrite_existing_experiment,
                    )
                    return True
                except OperationalError as err:  # pragma: no covert
                    if i < 2 or self._suppress_storage_errors:
                        logger.exception(err)
                        continue
                    raise
        return False
Ejemplo n.º 2
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
Ejemplo n.º 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_and_generation_strategy(self.exp, gs, self.db_settings)
     exp, gs = load_experiment_and_generation_strategy(
         self.exp.name, self.db_settings)
     self.assertIsNotNone(gs)
Ejemplo n.º 4
0
    def _save_experiment_and_generation_strategy_to_db_if_possible(
            self) -> 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_and_generation_strategy(
                experiment=self.experiment,
                generation_strategy=self.generation_strategy,
                db_settings=self.db_settings,
            )
        return False
Ejemplo n.º 5
0
    def _save_experiment_and_generation_strategy_if_possible(self) -> 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 and self._experiment is not None:
            assert (
                self.generation_strategy is not None
            ), "If experiment is set, generation strategy should be too."
            save_experiment_and_generation_strategy(
                experiment=not_none(self._experiment),
                generation_strategy=not_none(self.generation_strategy),
                db_settings=self.db_settings,
            )
        return False
Ejemplo n.º 6
0
    def _save_experiment_and_maybe_generation_strategy_to_db_if_possible(
            self,
            save_generation_strategy: bool = True,
            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:
            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
        return False
Ejemplo n.º 7
0
    def _save_experiment_and_generation_strategy_to_db_if_possible(
            self, overwrite_existing_experiment: bool = False) -> bool:
        """Saves attached experiment and generation strategy if DB settings are
        set on this AxClient instance.

        Args:
            overwrite_existing_experiment: If the experiment being created
                has the same name as some experiment already stored, this flag
                determines whether to overwrite the existing experiment.
                Defaults to False.

        Returns:
            bool: Whether the experiment was saved.
        """
        if self.db_settings is not None:
            save_experiment_and_generation_strategy(
                experiment=self.experiment,
                generation_strategy=self.generation_strategy,
                db_settings=self.db_settings,
                overwrite_existing_experiment=overwrite_existing_experiment,
            )
            return True
        return False