@@ -58,17 +58,33 @@ def modeler(self):
5858
5959 def _choose_modeler (self , modeler : Union [AbstractModeler , str ], use_measure ) -> AbstractModeler :
6060 if isinstance (modeler , str ):
61- try :
62- if len (self .experiment .parameters ) == 1 :
63- # single-parameter model generator init here...
61+
62+ if len (self .experiment .parameters ) == 1 :
63+ # single-parameter model generator init here...
64+ try :
6465 result_modeler = single_parameter .all_modelers [modeler ]()
65- else :
66- # multi-parameter model generator init here...
66+ except KeyError :
67+ raise ValueError (
68+ f'A modeler with name "{ modeler } " does not exist. For single-parameter experiments only the '
69+ f'following modelers are available "{ ", " .join (single_parameter .all_modelers .keys ())} ".' ) from None
70+ else :
71+ # multi-parameter model generator init here...
72+ try :
6773 result_modeler = multi_parameter .all_modelers [modeler ]()
74+ except KeyError as e :
75+ if modeler in single_parameter .all_modelers :
76+ raise ValueError (
77+ f'A multi-parameter modeler with name "{ modeler } " does not exist. '
78+ f'You selected a modeler only available for single-parameter experiments. '
79+ f'For multi-parameter experiments only the '
80+ f'following modelers are available "{ ", " .join (multi_parameter .all_modelers .keys ())} ". '
81+ f'You can change the underlying single-parameter modeler by setting the '
82+ f'single-parameter-modeler option of the multi-parameter modeler.' ) from e
83+ raise ValueError (
84+ f'A modeler with name "{ modeler } " does not exist. For multi-parameter experiments only the '
85+ f'following modelers are available "{ ", " .join (multi_parameter .all_modelers .keys ())} ".' ) from e
6886 result_modeler .use_measure = use_measure
69- except KeyError :
70- raise ValueError (
71- f'Modeler with name "{ modeler } " does not exist.' )
87+
7288 elif modeler is NotImplemented :
7389 result_modeler = NotImplemented
7490 else :
0 commit comments