's2': 0.0, 's3': 1.0, 's4': 1.0, 'timestamp': '2018-10-01 15:16:24' } # Environment Process # ToDo: Depreciation Waring for env_proc_trigger convention trigger_timestamps = [ '2018-10-01 15:16:25', '2018-10-01 15:16:27', '2018-10-01 15:16:29' ] env_processes = { "s3": [lambda _g, x: 5], "s4": env_trigger(3)(trigger_field='timestamp', trigger_vals=trigger_timestamps, funct_list=[lambda _g, x: 10]) } partial_state_update_block = [ { "policies": { "b1": p1m1, "b2": p2m1 }, "variables": { "s1": s1m1, "s2": s2m1, "s3": es3, "s4": es4, "timestamp": update_timestamp
} # Optional g: Dict[str, List[int]] = { 'alpha': [1], # 'beta': [2], # 'gamma': [3], 'beta': [2, 5], 'gamma': [3, 4], 'omega': [7] } psu_steps = ['m1', 'm2', 'm3'] system_substeps = len(psu_steps) var_timestep_trigger = var_substep_trigger([0, system_substeps]) env_timestep_trigger = env_trigger(system_substeps) env_process = {} psu_block = {k: {"policies": {}, "variables": {}} for k in psu_steps} # ['s1', 's2', 's3', 's4'] # Policies per Mechanism def p1m1(_g, step, sL, s, **kwargs): return {'param1': 1} psu_block['m1']['policies']['p1'] = p1m1 def p2m1(_g, step, sL, s, **kwargs): return {'param2': 4} psu_block['m1']['policies']['p2'] = p2m1 def p1m2(_g, step, sL, s, **kwargs): return {'param1': 'a', 'param2': _g['beta']}