Better exception when yml load fail
Proposal
try:
bctrl = klass(item_name, cfg_node.clone())
except Exception as e:
raise RuntimeError("Error while loading object '%s'" % item_name) from e
Instead of
Initialization of tomo_config FAILED
[0] Traceback (most recent call last):
File "/home/blissadm/local/bliss.git/bliss/common/session.py", line 947, in _load_config
self.config.get(item_name)
File "/home/blissadm/local/bliss.git/bliss/common/session.py", line 139, in get
obj = self.__wrapped__.get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 503, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomoconfig.py", line 97, in __init__
self._init_config(config)
File "/home/blissadm/local/ebs-tomo.git/tomo/tomoconfig.py", line 280, in _init_config
self.detectors = config.get("detectors", None)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 294, in get
return self[key]
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 376, in __getitem__
return value.dereference()
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 146, in dereference
obj = self._parent.config.get(self.object_name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 503, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomo_detectors.py", line 82, in __init__
for detector in config["detectors"]:
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/_collections_abc.py", line 883, in __iter__
v = self[i]
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 188, in __getitem__
return value.dereference()
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 146, in dereference
obj = self._parent.config.get(self.object_name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 503, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomo_detector.py", line 68, in __init__
assert isinstance(detector, Lima)
AssertionError
The result is
Traceback (most recent call last):
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 504, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomo_detector.py", line 68, in __init__
assert isinstance(detector, Lima)
AssertionError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 504, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomo_detectors.py", line 82, in __init__
for detector in config["detectors"]:
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/_collections_abc.py", line 883, in __iter__
v = self[i]
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 188, in __getitem__
return value.dereference()
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 146, in dereference
obj = self._parent.config.get(self.object_name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 506, in create_objects_from_config_node
raise RuntimeError("Error while loading object '%s'" % item_name) from e
RuntimeError: Error while loading object 'tomodet_bcu_simulator1'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 504, in create_objects_from_config_node
bctrl = klass(item_name, cfg_node.clone())
File "/home/blissadm/local/ebs-tomo.git/tomo/tomoconfig.py", line 97, in __init__
self._init_config(config)
File "/home/blissadm/local/ebs-tomo.git/tomo/tomoconfig.py", line 280, in _init_config
self.detectors = config.get("detectors", None)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 294, in get
return self[key]
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 376, in __getitem__
return value.dereference()
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 146, in dereference
obj = self._parent.config.get(self.object_name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 506, in create_objects_from_config_node
raise RuntimeError("Error while loading object '%s'" % item_name) from e
RuntimeError: Error while loading object 'tomo_detectors'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/blissadm/local/bliss.git/bliss/common/session.py", line 947, in _load_config
self.config.get(item_name)
File "/home/blissadm/local/bliss.git/bliss/common/session.py", line 139, in get
obj = self.__wrapped__.get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 963, in get
return self._get(name)
File "/home/blissadm/local/bliss.git/bliss/config/static.py", line 1013, in _get
for name2itemsAndname2itemcache in iteration:
File "/home/blissadm/local/bliss.git/bliss/config/plugins/generic.py", line 506, in create_objects_from_config_node
raise RuntimeError("Error while loading object '%s'" % item_name) from e
RuntimeError: Error while loading object 'tomo_config'