@@ -420,24 +420,22 @@ def read(pcs_string, debug=False):
420420 forbidden_value = int (tmp_list [2 ])
421421 elif isinstance (hp , FloatHyperparameter ):
422422 forbidden_value = float (tmp_list [2 ])
423+ else :
424+ raise NotImplementedError
423425 if forbidden_value < hp .lower or forbidden_value > hp .upper :
424- # TODO alternatively we could raise an warning and ignore this
425426 raise ValueError (f'forbidden_value is set out of the bound, it needs to'
426427 f' be set between [{ hp .lower } , { hp .upper } ]'
427428 f' but its value is { forbidden_value } ' )
428429 elif isinstance (hp , (CategoricalHyperparameter , OrdinalHyperparameter )):
429430 hp_values = hp .choices if isinstance (hp , CategoricalHyperparameter )\
430431 else hp .sequence
431- forbidden_value_in_hp_values = False
432- for hp_value in hp_values :
433- if str (hp_value ) == tmp_list [2 ]:
434- forbidden_value = hp_value
435- forbidden_value_in_hp_values = True
436- break
437- if not forbidden_value_in_hp_values :
438- raise ValueError (f'forbidden_value is set out of the bound, it needs to'
439- f' be set as one member of { hp_values } '
440- f' but its value is { forbidden_value } ' )
432+ forbidden_value_in_hp_values = tmp_list [2 ] in hp_values
433+ if forbidden_value_in_hp_values :
434+ forbidden_value = tmp_list [2 ]
435+ else :
436+ raise ValueError (f'forbidden_value is set out of the allowed value '
437+ f'sets, it needs to be one member from { hp_values } '
438+ f'but its value is { forbidden_value } ' )
441439 else :
442440 raise ValueError ('Unsupported Hyperparamter sorts' )
443441
0 commit comments