@@ -123,14 +123,18 @@ def _set_from_conf(
123123 # no value provided in the constructor for `name`: check in the conf
124124 # (using the provided default value)
125125 value = self ._external_conf .get (name , default )
126-
127- # parse to `return_type` if needed
128- if return_type is not None :
126+ if value is not None and return_type is not None :
129127 if return_type is bool :
130128 value = str (value ).lower () == "true"
131129 else :
132130 assert callable (return_type )
133- value = return_type (value )
131+ try :
132+ value = return_type (value )
133+ except (ValueError , TypeError ):
134+ logger .error (
135+ f"CONFIG - Value for '{ name } ' must be of type '{ return_type .__name__ } '. Got '{ value } ' instead. It will be ignored."
136+ )
137+ value = None
134138 # Check conf
135139 if name == "output_dir" :
136140 if not os .path .exists (value ):
@@ -280,10 +284,10 @@ def __init__(
280284 self ._set_from_conf (tracking_mode , "tracking_mode" , "machine" )
281285 self ._set_from_conf (on_csv_write , "on_csv_write" , "append" )
282286 self ._set_from_conf (logger_preamble , "logger_preamble" , "" )
283- self ._set_from_conf (force_cpu_power , "force_cpu_power" )
284- self ._set_from_conf (force_ram_power , "force_ram_power" )
287+ self ._set_from_conf (force_cpu_power , "force_cpu_power" , None , float )
288+ self ._set_from_conf (force_ram_power , "force_ram_power" , None , float )
285289 self ._set_from_conf (pue , "pue" , 1.0 , float )
286- self ._set_from_conf (force_mode_cpu_load , "force_mode_cpu_load" , False )
290+ self ._set_from_conf (force_mode_cpu_load , "force_mode_cpu_load" , False , bool )
287291 self ._set_from_conf (
288292 experiment_id , "experiment_id" , "5b0fa12a-3dd7-45bb-9766-cc326314d9f1"
289293 )
0 commit comments