@@ -898,6 +898,7 @@ def test_set_feature_union_steps():
898
898
assert ['mock__x5' ] == ft .get_feature_names ()
899
899
900
900
901
+ # TODO: Remove parametrization in 0.24 when None is removed for FeatureUnion
901
902
@pytest .mark .parametrize ('drop' , ['drop' , None ])
902
903
def test_set_feature_union_step_drop (drop ):
903
904
mult2 = Mult (2 )
@@ -911,25 +912,33 @@ def test_set_feature_union_step_drop(drop):
911
912
assert_array_equal ([[2 , 3 ]], ft .fit_transform (X ))
912
913
assert ['m2__x2' , 'm3__x3' ] == ft .get_feature_names ()
913
914
914
- ft .set_params (m2 = drop )
915
- assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
916
- assert_array_equal ([[3 ]], ft .fit_transform (X ))
915
+ with pytest .warns (None ) as record :
916
+ ft .set_params (m2 = drop )
917
+ assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
918
+ assert_array_equal ([[3 ]], ft .fit_transform (X ))
917
919
assert ['m3__x3' ] == ft .get_feature_names ()
920
+ assert record if drop is None else not record
918
921
919
- ft .set_params (m3 = drop )
920
- assert_array_equal ([[]], ft .fit (X ).transform (X ))
921
- assert_array_equal ([[]], ft .fit_transform (X ))
922
+ with pytest .warns (None ) as record :
923
+ ft .set_params (m3 = drop )
924
+ assert_array_equal ([[]], ft .fit (X ).transform (X ))
925
+ assert_array_equal ([[]], ft .fit_transform (X ))
922
926
assert [] == ft .get_feature_names ()
923
-
924
- # check we can change back
925
- ft .set_params (m3 = mult3 )
926
- assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
927
-
928
- # Check 'drop' step at construction time
929
- ft = FeatureUnion ([('m2' , drop ), ('m3' , mult3 )])
930
- assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
931
- assert_array_equal ([[3 ]], ft .fit_transform (X ))
927
+ assert record if drop is None else not record
928
+
929
+ with pytest .warns (None ) as record :
930
+ # check we can change back
931
+ ft .set_params (m3 = mult3 )
932
+ assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
933
+ assert record if drop is None else not record
934
+
935
+ with pytest .warns (None ) as record :
936
+ # Check 'drop' step at construction time
937
+ ft = FeatureUnion ([('m2' , drop ), ('m3' , mult3 )])
938
+ assert_array_equal ([[3 ]], ft .fit (X ).transform (X ))
939
+ assert_array_equal ([[3 ]], ft .fit_transform (X ))
932
940
assert ['m3__x3' ] == ft .get_feature_names ()
941
+ assert record if drop is None else not record
933
942
934
943
935
944
def test_step_name_validation ():
@@ -1127,7 +1136,7 @@ def test_pipeline_param_error():
1127
1136
(FeatureUnion ([('mult1' , Mult ()), ('mult2' , Mult ())]),
1128
1137
r'\[FeatureUnion\].*\(step 1 of 2\) Processing mult1.* total=.*\n'
1129
1138
r'\[FeatureUnion\].*\(step 2 of 2\) Processing mult2.* total=.*\n$' ),
1130
- (FeatureUnion ([('mult1' , None ), ('mult2' , Mult ()), ('mult3' , None )]),
1139
+ (FeatureUnion ([('mult1' , 'drop' ), ('mult2' , Mult ()), ('mult3' , 'drop' )]),
1131
1140
r'\[FeatureUnion\].*\(step 1 of 1\) Processing mult2.* total=.*\n$' )
1132
1141
], ['fit' , 'fit_transform' , 'fit_predict' ])
1133
1142
if hasattr (est , method ) and not (
@@ -1173,3 +1182,16 @@ def transform(self, X, y=None):
1173
1182
1174
1183
t .fit (X , y , a = 0 )
1175
1184
t .fit_transform (X , y , a = 0 )
1185
+
1186
+
1187
+ # TODO: Remove in 0.24 when None is removed
1188
+ def test_feature_union_warns_with_none ():
1189
+ msg = (r"Using None as a transformer is deprecated in version 0\.22 and "
1190
+ r"will be removed in version 0\.24\. Please use 'drop' instead\." )
1191
+ with pytest .warns (DeprecationWarning , match = msg ):
1192
+ union = FeatureUnion ([('multi1' , None ), ('multi2' , Mult ())])
1193
+
1194
+ X = [[1 , 2 , 3 ], [4 , 5 , 6 ]]
1195
+
1196
+ with pytest .warns (DeprecationWarning , match = msg ):
1197
+ union .fit_transform (X )
0 commit comments