def append_configs(sim_configs={}, initial_state={}, seeds={}, raw_exogenous_states={}, env_processes={}, partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], _exo_update_per_ts: bool = True) -> None: if _exo_update_per_ts is True: exogenous_states = exo_update_per_ts(raw_exogenous_states) else: exogenous_states = raw_exogenous_states if isinstance(sim_configs, dict): sim_configs = [sim_configs] for sim_config in sim_configs: config = Configuration( sim_config=sim_config, initial_state=initial_state, seeds=seeds, exogenous_states=exogenous_states, env_processes=env_processes, partial_state_update_blocks=partial_state_update_blocks, policy_ops=policy_ops) configs.append(config)
def append_configs( user_id='cadCAD_user', session_id=0, #ToDo: change to string sim_configs={}, initial_state={}, seeds={}, raw_exogenous_states={}, env_processes={}, partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], _exo_update_per_ts: bool = True, config_list=configs) -> None: if _exo_update_per_ts is True: exogenous_states = exo_update_per_ts(raw_exogenous_states) else: exogenous_states = raw_exogenous_states if isinstance(sim_configs, dict): sim_configs = [sim_configs] simulation_id = 0 if len(config_list) > 0: last_config = config_list[-1] simulation_id = last_config.simulation_id + 1 sim_cnt = 0 new_sim_configs = [] for t in list(zip(sim_configs, list(range(len(sim_configs))))): sim_config = t[0] N = sim_config['N'] if N > 1: for n in range(N): sim_config['simulation_id'] = simulation_id + sim_cnt sim_config['run_id'] = n sim_config['N'] = 1 # sim_config['N'] = n + 1 new_sim_configs.append(deepcopy(sim_config)) del sim_config else: sim_config['simulation_id'] = simulation_id sim_config['run_id'] = 0 new_sim_configs.append(deepcopy(sim_config)) sim_cnt += 1 # for sim_config in sim_configs: for sim_config in new_sim_configs: config = Configuration( sim_config=sim_config, initial_state=initial_state, seeds=seeds, exogenous_states=exogenous_states, env_processes=env_processes, partial_state_update_blocks=partial_state_update_blocks, policy_ops=policy_ops, # session_id=session_id, user_id=user_id, session_id= f"{user_id}={sim_config['simulation_id']}_{sim_config['run_id']}", simulation_id=sim_config['simulation_id'], run_id=sim_config['run_id']) configs.append(config)
def append_configs(self, user_id='cadCAD_user', sim_configs={}, initial_state={}, seeds={}, raw_exogenous_states={}, env_processes={}, partial_state_update_blocks={}, policy_ops=[lambda a, b: a + b], _exo_update_per_ts: bool = True, config_list=configs) -> None: try: max_runs = sim_configs[0]['N'] except KeyError: max_runs = sim_configs['N'] if _exo_update_per_ts is True: exogenous_states = exo_update_per_ts(raw_exogenous_states) else: exogenous_states = raw_exogenous_states if isinstance(sim_configs, dict): sim_configs = [sim_configs] simulation_id = 0 if len(config_list) > 0: last_config = config_list[-1] simulation_id = last_config.simulation_id + 1 sim_cnt = 0 new_sim_configs = [] for subset_id, t in enumerate( list(zip(sim_configs, list(range(len(sim_configs)))))): sim_config = t[0] sim_config['subset_id'] = subset_id sim_config['subset_window'] = self.subset_window N = sim_config['N'] if N > 1: for n in range(N): sim_config['simulation_id'] = simulation_id + sim_cnt sim_config['run_id'] = n sim_config['N'] = 1 # sim_config['N'] = n + 1 new_sim_configs.append(deepcopy(sim_config)) del sim_config else: sim_config['simulation_id'] = simulation_id sim_config['run_id'] = 0 new_sim_configs.append(deepcopy(sim_config)) # del sim_config sim_cnt += 1 run_id = 0 for sim_config in new_sim_configs: subset_id = sim_config['subset_id'] sim_config['N'] = run_id + 1 if max_runs == 1: sim_config['run_id'] = run_id elif max_runs >= 1: if run_id >= max_runs: sim_config['N'] = run_id - (max_runs - 1) self.exp_window = deepcopy(self.exp_window) config = Configuration( sim_config=sim_config, initial_state=initial_state, seeds=seeds, exogenous_states=exogenous_states, env_processes=env_processes, partial_state_update_blocks=partial_state_update_blocks, policy_ops=policy_ops, # session_id=session_id, user_id=user_id, session_id= f"{user_id}={sim_config['simulation_id']}_{sim_config['run_id']}", simulation_id=sim_config['simulation_id'], run_id=sim_config['run_id'], experiment_id=self.exp_id, exp_window=self.exp_window, subset_id=subset_id, subset_window=self.subset_window) configs.append(config) run_id += 1 self.exp_id += 1 self.exp_window.appendleft(self.exp_id)