@@ -171,6 +171,10 @@ def __init__(
171171 self .global_params .max_param_space_iter_value
172172 ) # hard limit on param space exploration
173173
174+ # Allow local override for max_param_space_iter_value
175+ if self .ml_grid_object_iter .local_param_dict .get ("max_param_space_iter_value" ) is not None :
176+ max_param_space_iter_value = self .ml_grid_object_iter .local_param_dict .get ("max_param_space_iter_value" )
177+
174178 if "svc" in method_name .lower ():
175179 self .X_train = scale_data (self .X_train )
176180 self .X_test = scale_data (self .X_test )
@@ -281,8 +285,31 @@ def __init__(
281285 parameter_space = new_parameter_space
282286
283287 # Use the new n_iter parameter from the config
284- # Default to 50 if not present, preventing AttributeError
285- n_iter_v = getattr (self .global_params , "n_iter" , 2 )
288+ # Default to 2 if not present, preventing AttributeError
289+ try :
290+ n_iter_v = getattr (self .global_params , "n_iter" , 2 )
291+ if n_iter_v is None :
292+ n_iter_v = 2
293+ n_iter_v = int (n_iter_v )
294+ except (ValueError , TypeError ):
295+ self .logger .warning ("Invalid or missing n_iter in global_params. Defaulting to 2." )
296+ n_iter_v = 2
297+
298+ # Allow local override from run_params/local_param_dict
299+ local_n_iter = self .ml_grid_object_iter .local_param_dict .get ("n_iter" )
300+ if local_n_iter is not None :
301+ try :
302+ n_iter_v = int (local_n_iter )
303+ self .logger .info (f"Overriding global n_iter with local value: { n_iter_v } " )
304+ except (ValueError , TypeError ):
305+ self .logger .warning (f"Invalid local n_iter value: { local_n_iter } . Ignoring override." )
306+
307+ if max_param_space_iter_value is not None :
308+ if n_iter_v > max_param_space_iter_value :
309+ self .logger .info (
310+ f"Capping n_iter ({ n_iter_v } ) to max_param_space_iter_value ({ max_param_space_iter_value } )"
311+ )
312+ n_iter_v = max_param_space_iter_value
286313
287314 # For GridSearchCV, n_iter is not used, but we calculate the grid size for logging.
288315 if not self .global_params .bayessearch and not random_grid_search :
0 commit comments