Describe the bug
Passing an instance of SimulationConfig into Simulation constructor results in a TypeError:
'SimulationConfig' object is not subscriptable
File "/home/vale/git/micro-apps/.venv/lib/python3.10/site-packages/gridappsd/simulation.py", line 162, in init
float(self._run_config["simulation_config"]["duration"]))
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 235, in createSimulation
sim_obj = Simulation(gapps=gad_obj, run_config=sim_config)
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 265, in main
local_simulations[m.get('modelId', '')] = createSimulation(GAD_OBJECT, m)
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 311, in
main(args.disable_control, args.start_simulations, args.model_id)
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
TypeError: 'SimulationConfig' object is not subscriptable
To Reproduce
psc = PowerSystemConfig(Line_name='_49AD8E07-3BF9-A4E2-CB8F-C3722F837B62',
SubGeographicalRegion_name='_ABEB635F-729D-24BF-B8A4-E2EF268D8B9E',
GeographicalRegion_name='_73C512BD-7249-4F50-50DA-D93849B89C43')
start_time = int(datetime.utcnow().replace(microsecond=0).timestamp())
sim_args = SimulationArgs(start_time=f'{start_time}', duration=f'{24*3600}', simulation_name='ieee13nodeckt',
run_realtime=False, pause_after_measurements=True)
sim_config = SimulationConfig(power_system_config=psc, simulation_config=sim_args)
sim_obj = Simulation(gapps=GridAPPSD(), run_config=sim_config)
Expected behavior
According to the typing for Simulation constructor run_config can be a Dict or a SimulationConfig.
The fix seems to be to check if run_config is an instance of SimulationConfig and call asdict().
Describe the bug
Passing an instance of SimulationConfig into Simulation constructor results in a TypeError:
'SimulationConfig' object is not subscriptable
File "/home/vale/git/micro-apps/.venv/lib/python3.10/site-packages/gridappsd/simulation.py", line 162, in init
float(self._run_config["simulation_config"]["duration"]))
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 235, in createSimulation
sim_obj = Simulation(gapps=gad_obj, run_config=sim_config)
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 265, in main
local_simulations[m.get('modelId', '')] = createSimulation(GAD_OBJECT, m)
File "/home/vale/git/micro-apps/micro-apps/conservation-voltage-reduction-app/cvr_main.py", line 311, in
main(args.disable_control, args.start_simulations, args.model_id)
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
TypeError: 'SimulationConfig' object is not subscriptable
To Reproduce
Expected behavior
According to the typing for Simulation constructor run_config can be a Dict or a SimulationConfig.
The fix seems to be to check if run_config is an instance of SimulationConfig and call asdict().