@@ -43,13 +43,6 @@ def sklearn_to_flow(o, parent_model=None):
4343 # TODO: explain what type of parameter is here
4444 rval = [sklearn_to_flow (element , parent_model ) for element in o ]
4545 if isinstance (o , tuple ):
46- assert (parent_model is not None )
47- reserved_keywords = set (parent_model .get_params (deep = False ).keys ())
48- if o [0 ] in reserved_keywords :
49- parent_model_name = parent_model .__module__ + "." + \
50- parent_model .__class__ .__name__
51- raise PyOpenMLError ('Found element shadowing official ' + \
52- 'parameter for %s: %s' % (parent_model_name , o [0 ]))
5346 rval = tuple (rval )
5447 elif isinstance (o , (bool , int , float , six .string_types )) or o is None :
5548 # base parameter values
@@ -278,12 +271,20 @@ def _extract_information_from_model(model):
278271 isinstance (rval [0 ], (list , tuple )) and
279272 [type (rval [0 ]) == type (rval [i ]) for i in range (len (rval ))]):
280273
281- # Steps in a pipeline or feature union
274+ # Steps in a pipeline or feature union, or base classifiers in voting classifier
282275 parameter_value = list ()
276+ reserved_keywords = set (model .get_params (deep = False ).keys ())
277+
283278 for sub_component_tuple in rval :
284279 identifier , sub_component = sub_component_tuple
285280 sub_component_type = type (sub_component_tuple )
286281
282+ if identifier in reserved_keywords :
283+ parent_model_name = model .__module__ + "." + \
284+ model .__class__ .__name__
285+ raise PyOpenMLError ('Found element shadowing official ' + \
286+ 'parameter for %s: %s' % (parent_model_name , identifier ))
287+
287288 if sub_component is None :
288289 # In a FeatureUnion it is legal to have a None step
289290
0 commit comments