def _convert_configs(engine): Session = sessionmaker(bind=engine) session = Session() results = session.query(DbReplayTable).all() for result in results: if result.message_contents["type"] == "setup": config_str = result.message_contents["message"]["config_str"] config = Config(config_str=config_str) if config.version == "0.0": config.convert("0.0", "0.1") new_str = str(config) new_message = { "type": "setup", "message": { "config_str": new_str } } if "version" in result.message_contents: new_message["version"] = result.message_contents["version"] result.message_contents = new_message session.commit() logger.info("DbReplayTable : updated old configs.")
def test_conversion(self): config_str = """ [common] parnames = [par1, par2] lb = [0, 0] ub = [1, 1] outcome_type = single_probit target = 0.75 [SobolStrategy] n_trials = 10 [ModelWrapperStrategy] n_trials = 20 refit_every = 5 [experiment] acqf = MonotonicMCLSE init_strat_cls = SobolStrategy opt_strat_cls = ModelWrapperStrategy modelbridge_cls = MonotonicSingleProbitModelbridge model = MonotonicRejectionGP [MonotonicMCLSE] beta = 3.98 [MonotonicRejectionGP] inducing_size = 100 mean_covar_factory = monotonic_mean_covar_factory [MonotonicSingleProbitModelbridge] restarts = 10 samps = 1000 """ config = Config(config_str=config_str) self.assertEqual(config.version, "0.0") config.convert("0.0", "0.1") self.assertEqual(config.version, "0.1") self.assertEqual(config["common"]["strategy_names"], "[init_strat, opt_strat]") self.assertEqual(config["common"]["acqf"], "MonotonicMCLSE") self.assertEqual(config["init_strat"]["n_trials"], "10") self.assertEqual(config["init_strat"]["generator"], "SobolGenerator") self.assertEqual(config["opt_strat"]["n_trials"], "20") self.assertEqual(config["opt_strat"]["refit_every"], "5") self.assertEqual(config["opt_strat"]["generator"], "MonotonicRejectionGenerator") self.assertEqual(config["opt_strat"]["model"], "MonotonicRejectionGP") self.assertEqual(config["MonotonicRejectionGenerator"]["restarts"], "10") self.assertEqual(config["MonotonicRejectionGenerator"]["samps"], "1000")