YAML file causes "dictionary changed size during iteration" exception
Minimal example:
- plugin: session
class: Session
name: test_session
config-objects:
- simdiode
- class: simulation_diode
plugin: bliss
name: simdiode
- name: info
a:
b:
- c
The exception:
TEST_SESSION [1]: config.get('info')
!!! === RuntimeError: dictionary changed size during iteration === !!! ( for more details type cmd 'last_error' )
TEST_SESSION [2]: last_error()
Traceback (most recent call last):
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/shell/cli/repl.py", line 496, in embed
cmd_line_i._execute(inp)
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/shell/cli/repl.py", line 259, in _execute
raise return_value[1].with_traceback(return_value[2]) from None
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/shell/cli/repl.py", line 246, in _execute_task
return super(BlissRepl, self)._execute(*args, **kwargs)
File "/data/id21/inhouse/wout/dev/virtualenvs/xrmh/bliss/py37/lib/python3.7/site-packages/ptpython/repl.py", line 124, in _execute
result = eval(code, self.get_globals(), self.get_locals())
File "<stdin>", line 1, in <module>
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/config/static.py", line 751, in get
name2itemsAndname2itemcache = func(self, config_node)
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/config/plugins/default.py", line 14, in create_objects_from_config_node
replace_reference_by_object(config, item_cfg_node)
File "/mntdirect/_data_id21_inhouse/wout/dev/bliss/bliss/config/plugins/utils.py", line 126, in replace_reference_by_object
for name, value in item_cfg_node.items():
RuntimeError: dictionary changed size during iteration