e-courage: modularizing backwards compatability

This commit is contained in:
Joshua E. Jodesty 2019-02-18 14:12:06 -05:00
parent ef9d73a32c
commit 5863188617
3 changed files with 11 additions and 14 deletions

View File

@ -22,6 +22,8 @@ class Configuration(object):
self.policy_ops = policy_ops
self.kwargs = kwargs
sanitize_config(self)
def append_configs(sim_configs={}, initial_state={}, seeds={}, raw_exogenous_states={}, env_processes={}, partial_state_update_blocks={}, _exo_update_per_ts=True):
if _exo_update_per_ts is True:
@ -39,8 +41,7 @@ def append_configs(sim_configs={}, initial_state={}, seeds={}, raw_exogenous_sta
env_processes=env_processes,
partial_state_update_blocks=partial_state_update_blocks
)
back_compatable_config = sanitize_config(config)
configs.append(back_compatable_config)
configs.append(config)
elif isinstance(sim_configs, dict):
config = Configuration(
sim_config=sim_configs,
@ -50,8 +51,7 @@ def append_configs(sim_configs={}, initial_state={}, seeds={}, raw_exogenous_sta
env_processes=env_processes,
partial_state_update_blocks=partial_state_update_blocks
)
back_compatable_config = sanitize_config(config)
configs.append(back_compatable_config)
configs.append(config)
class Identity:
@ -124,7 +124,7 @@ class Processor:
return sdf_values, bdf_values
if len(partial_state_updates) != 0:
# backwards compatibility
# backwards compatibility # ToDo: Move this
partial_state_updates = sanitize_partial_state_updates(partial_state_updates)
bdf = self.create_matrix_field(partial_state_updates, 'policies')

View File

@ -2,23 +2,19 @@ from copy import deepcopy
def sanitize_config(config):
new_config = deepcopy(config)
# for backwards compatibility, we accept old arguments via **kwargs
# TODO: raise specific deprecation warnings for key == 'state_dict', key == 'seed', key == 'mechanisms'
for key, value in new_config.kwargs.items():
for key, value in config.kwargs.items():
if key == 'state_dict':
new_config.initial_state = value
config.initial_state = value
elif key == 'seed':
new_config.seeds = value
config.seeds = value
elif key == 'mechanisms':
new_config.partial_state_updates = value
config.partial_state_updates = value
if new_config.initial_state == {}:
if config.initial_state == {}:
raise Exception('The initial conditions of the system have not been set')
del config
return new_config
def sanitize_partial_state_updates(partial_state_updates):
new_partial_state_updates = deepcopy(partial_state_updates)

View File

@ -65,6 +65,7 @@ class Executor:
config_idx += 1
if self.exec_context == ExecutionMode.single_proc:
# ToDO: Deprication Handler - "sanitize" in appropriate place
tensor_field = create_tensor_field(partial_state_updates.pop(), eps.pop())
result = self.exec_method(simulation_execs, var_dict_list, states_lists, configs_structs, env_processes_list, Ts, Ns)
return result, tensor_field