def _save_generation_strategy_to_db_if_possible( self, generation_strategy: GenerationStrategy, suppress_all_errors: bool = False) -> bool: """Saves given generation strategy if DB settings are set on this `WithDBSettingsBase` instance. Args: generation_strategy: Generation strategy to save 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 generation strategy was saved. """ if self.db_settings_set: start_time = time.time() _save_generation_strategy( generation_strategy=generation_strategy, encoder=self.db_settings.encoder, ) logger.debug( f"Saved generation strategy {generation_strategy.name} in " f"{_round_floats_for_logging(time.time() - start_time)} seconds." ) return True return False
def save_experiment_and_generation_strategy( experiment: Experiment, generation_strategy: GenerationStrategy, db_settings: DBSettings, overwrite_existing_experiment: bool = False, ) -> None: """Save experiment and generation strategy to DB. Args: experiment: `Experiment` object. generation_strategy: Corresponding generation strategy. db_settings: Defines behavior for loading/saving experiment to/from db. 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. """ save_experiment( experiment=experiment, db_settings=db_settings, overwrite_existing_experiment=overwrite_existing_experiment, ) _save_generation_strategy( generation_strategy=generation_strategy, encoder=db_settings.encoder )
def save_generation_strategy(generation_strategy: GenerationStrategy, db_settings: DBSettings) -> None: """Save generation strategy to DB. Args: generation_strategy: Corresponding generation strategy. db_settings: Defines behavior for loading/saving experiment to/from db. """ _save_generation_strategy(generation_strategy=generation_strategy, encoder=db_settings.encoder)
def save_generation_strategy(generation_strategy: GenerationStrategy, db_settings: DBSettings) -> None: """Save generation strategy to DB. Args: generation_strategy: Corresponding generation strategy. db_settings: Defines behavior for loading/saving experiment to/from db. """ start_time = time.time() _save_generation_strategy(generation_strategy=generation_strategy, encoder=db_settings.encoder) logger.debug( f"Saved generation strategy {generation_strategy.name} in " f"{_round_floats_for_logging(time.time() - start_time)} seconds.")
def setUp(self): self.generation_strategy = get_generation_strategy( with_experiment=True) self.experiment = self.generation_strategy.experiment init_test_engine_and_session_factory(force_init=True) self.with_db_settings = WithDBSettingsBase(db_settings=DBSettings( url="sqlite://")) _save_experiment(self.experiment, encoder=self.with_db_settings.db_settings.encoder) _save_generation_strategy( generation_strategy=self.generation_strategy, encoder=self.with_db_settings.db_settings.encoder, )
def _save_generation_strategy_to_db_if_possible( generation_strategy: GenerationStrategy, encoder: Encoder, decoder: Decoder, suppress_all_errors: bool, ) -> None: start_time = time.time() _save_generation_strategy( generation_strategy=generation_strategy, encoder=encoder, decoder=decoder, ) logger.debug( f"Saved generation strategy {generation_strategy.name} in " f"{_round_floats_for_logging(time.time() - start_time)} seconds.")
def save_experiment_and_generation_strategy( experiment: Experiment, generation_strategy: GenerationStrategy, db_settings: DBSettings, ) -> None: """Save experiment and generation strategy to DB. Args: experiment: `Experiment` object. generation_strategy: Corresponding generation strategy. db_settings: Defines behavior for loading/saving experiment to/from db. """ save_experiment(experiment=experiment, db_settings=db_settings) _save_generation_strategy(generation_strategy=generation_strategy, encoder=db_settings.encoder)
def init_experiment_and_generation_strategy( self, save_experiment: bool = True, save_generation_strategy: bool = True ) -> Tuple[Experiment, GenerationStrategy]: """ Generate a random Experiment and associated generation_strategy """ generation_strategy = self.get_random_generation_strategy() experiment = self.get_random_experiment() generation_strategy.experiment = experiment if save_experiment: _save_experiment(experiment, encoder=self.with_db_settings.db_settings.encoder) if save_generation_strategy: _save_generation_strategy( generation_strategy=generation_strategy, encoder=self.with_db_settings.db_settings.encoder, ) return experiment, generation_strategy