diff --git a/feature_engine/_docstrings/class_inputs.py b/feature_engine/_docstrings/class_inputs.py deleted file mode 100644 index ad7678b4d..000000000 --- a/feature_engine/_docstrings/class_inputs.py +++ /dev/null @@ -1,15 +0,0 @@ -_variables_numerical_docstring = """variables: list, default=None - The list of numerical variables to transform. If None, the transformer will - automatically find and select all numerical variables. - """.rstrip() - -_drop_original_docstring = """drop_original: bool, default=False - If True, the original variables to transform will be dropped from the dataframe. - """.rstrip() - -_missing_values_docstring = """missing_values: string, default='raise' - Indicates if missing values should be ignored or raised. If 'raise' the - transformer will return an error if the the datasets to `fit` or `transform` - contain missing values. If 'ignore', missing data will be ignored when learning - parameters or performing the transformation. - """.rstrip() diff --git a/feature_engine/encoding/_docstrings.py b/feature_engine/_docstrings/init_parameters.py similarity index 56% rename from feature_engine/encoding/_docstrings.py rename to feature_engine/_docstrings/init_parameters.py index 654ac01d2..f166f8b85 100644 --- a/feature_engine/encoding/_docstrings.py +++ b/feature_engine/_docstrings/init_parameters.py @@ -1,4 +1,21 @@ -_variables_docstring = """variables: list, default=None +_variables_numerical_docstring = """variables: list, default=None + The list of numerical variables to transform. If None, the transformer will + automatically find and select all numerical variables. + """.rstrip() + +_drop_original_docstring = """drop_original: bool, default=False + If True, the original variables to transform will be dropped from the dataframe. + """.rstrip() + +_missing_values_docstring = """missing_values: string, default='raise' + Indicates if missing values should be ignored or raised. If 'raise' the + transformer will return an error if the the datasets to `fit` or `transform` + contain missing values. If 'ignore', missing data will be ignored when learning + parameters or performing the transformation. + """.rstrip() + +# used in categorical encoders +_variables_categorical_docstring = """variables: list, default=None The list of categorical variables that will be encoded. If None, the encoder will find and transform all variables of type object or categorical by default. You can also make the transformer accept numerical variables, see the @@ -19,7 +36,3 @@ error. If 'ignore', then unseen categories will be set as NaN and a warning will be raised instead. """.rstrip() - -_transform_docstring = """transform: - Encode the categories to numbers. - """.rstrip() diff --git a/feature_engine/_docstrings/methods.py b/feature_engine/_docstrings/methods.py index bdfb1af81..97c99e409 100644 --- a/feature_engine/_docstrings/methods.py +++ b/feature_engine/_docstrings/methods.py @@ -36,3 +36,8 @@ _inverse_transform_docstring = """inverse_transform: Convert the data back to the original representation. """.rstrip() + +# used in categorical encoders +_transform_encoders_docstring = """transform: + Encode the categories to numbers. + """.rstrip() diff --git a/feature_engine/creation/combine_with_reference_feature.py b/feature_engine/creation/combine_with_reference_feature.py index cfe6b5ad9..74bbae24f 100644 --- a/feature_engine/creation/combine_with_reference_feature.py +++ b/feature_engine/creation/combine_with_reference_feature.py @@ -5,14 +5,14 @@ from sklearn.utils import deprecated from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/creation/cyclical.py b/feature_engine/creation/cyclical.py index 92b5ebd4b..7465bdf47 100644 --- a/feature_engine/creation/cyclical.py +++ b/feature_engine/creation/cyclical.py @@ -4,15 +4,15 @@ import pandas as pd from sklearn.utils import deprecated -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/creation/cyclical_features.py b/feature_engine/creation/cyclical_features.py index 5eab67239..8ff8f04df 100644 --- a/feature_engine/creation/cyclical_features.py +++ b/feature_engine/creation/cyclical_features.py @@ -4,15 +4,15 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/creation/math_features.py b/feature_engine/creation/math_features.py index 150e28fab..ce0b750a1 100644 --- a/feature_engine/creation/math_features.py +++ b/feature_engine/creation/math_features.py @@ -3,14 +3,14 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/creation/mathematical_combination.py b/feature_engine/creation/mathematical_combination.py index 3086e0b8a..34baee840 100644 --- a/feature_engine/creation/mathematical_combination.py +++ b/feature_engine/creation/mathematical_combination.py @@ -5,14 +5,14 @@ from sklearn.utils import deprecated from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/creation/relative_features.py b/feature_engine/creation/relative_features.py index 8a82dc267..6cd602db9 100644 --- a/feature_engine/creation/relative_features.py +++ b/feature_engine/creation/relative_features.py @@ -3,15 +3,15 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/discretisation/decision_tree.py b/feature_engine/discretisation/decision_tree.py index 13050f1a6..0040dadf7 100644 --- a/feature_engine/discretisation/decision_tree.py +++ b/feature_engine/discretisation/decision_tree.py @@ -8,12 +8,12 @@ from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor from sklearn.utils.multiclass import check_classification_targets, type_of_target -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/discretisation/equal_frequency.py b/feature_engine/discretisation/equal_frequency.py index 0c49be74f..a75d29356 100644 --- a/feature_engine/discretisation/equal_frequency.py +++ b/feature_engine/discretisation/equal_frequency.py @@ -5,12 +5,12 @@ import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/discretisation/equal_width.py b/feature_engine/discretisation/equal_width.py index cbd2c9848..741603c5e 100644 --- a/feature_engine/discretisation/equal_width.py +++ b/feature_engine/discretisation/equal_width.py @@ -5,12 +5,12 @@ import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/encoding/base_encoder.py b/feature_engine/encoding/base_encoder.py index 95c4876ba..9d20c7531 100644 --- a/feature_engine/encoding/base_encoder.py +++ b/feature_engine/encoding/base_encoder.py @@ -5,6 +5,11 @@ from sklearn.base import BaseEstimator, TransformerMixin from sklearn.utils.validation import check_is_fitted +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import _get_feature_names_out_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( @@ -19,11 +24,6 @@ _check_X_matches_training_df, check_X, ) -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding._helper_functions import check_parameter_unseen from feature_engine.get_feature_names_out import _get_feature_names_out from feature_engine.tags import _return_tags @@ -31,7 +31,7 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, ) class CategoricalInitMixin: """Shared initialization parameters across transformers. @@ -61,7 +61,7 @@ def __init__( @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, ) class CategoricalInitExpandedMixin(CategoricalInitMixin): @@ -90,7 +90,7 @@ def __init__( @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, ) class CategoricalMethodsMixin(BaseEstimator, TransformerMixin): """Shared methods across categorical transformers. diff --git a/feature_engine/encoding/count_frequency.py b/feature_engine/encoding/count_frequency.py index 00b01f1c5..66fee6145 100644 --- a/feature_engine/encoding/count_frequency.py +++ b/feature_engine/encoding/count_frequency.py @@ -11,18 +11,18 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, + _transform_encoders_docstring, ) from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _transform_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding._helper_functions import check_parameter_unseen from feature_engine.encoding.base_encoder import ( CategoricalInitMixin, @@ -37,13 +37,13 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, fit_transform=_fit_transform_docstring, - transform=_transform_docstring, + transform=_transform_encoders_docstring, inverse_transform=_inverse_transform_docstring, ) class CountFrequencyEncoder(CategoricalInitMixin, CategoricalMethodsMixin): diff --git a/feature_engine/encoding/decision_tree.py b/feature_engine/encoding/decision_tree.py index eef4ac530..03a45bf9e 100644 --- a/feature_engine/encoding/decision_tree.py +++ b/feature_engine/encoding/decision_tree.py @@ -12,14 +12,14 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X_y from feature_engine.discretisation import DecisionTreeDiscretiser -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitMixin, CategoricalMethodsMixin, @@ -30,7 +30,7 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, diff --git a/feature_engine/encoding/mean_encoding.py b/feature_engine/encoding/mean_encoding.py index 32d3fc6b9..9cec04145 100644 --- a/feature_engine/encoding/mean_encoding.py +++ b/feature_engine/encoding/mean_encoding.py @@ -10,18 +10,18 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, + _transform_encoders_docstring, ) from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X_y -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _transform_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitExpandedMixin, CategoricalMethodsMixin, @@ -30,13 +30,13 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, fit_transform=_fit_transform_docstring, - transform=_transform_docstring, + transform=_transform_encoders_docstring, inverse_transform=_inverse_transform_docstring, ) class MeanEncoder(CategoricalInitExpandedMixin, CategoricalMethodsMixin): diff --git a/feature_engine/encoding/one_hot.py b/feature_engine/encoding/one_hot.py index 3faaa8c90..fd209ca2d 100644 --- a/feature_engine/encoding/one_hot.py +++ b/feature_engine/encoding/one_hot.py @@ -12,13 +12,13 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import _check_contains_na, check_X -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitMixin, CategoricalMethodsMixin, @@ -27,7 +27,7 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, diff --git a/feature_engine/encoding/ordinal.py b/feature_engine/encoding/ordinal.py index e7c986f13..6f508bf8b 100644 --- a/feature_engine/encoding/ordinal.py +++ b/feature_engine/encoding/ordinal.py @@ -10,18 +10,18 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, + _transform_encoders_docstring, ) from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X, check_X_y -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _transform_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitExpandedMixin, CategoricalMethodsMixin, @@ -30,13 +30,13 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, fit_transform=_fit_transform_docstring, - transform=_transform_docstring, + transform=_transform_encoders_docstring, inverse_transform=_inverse_transform_docstring, ) class OrdinalEncoder(CategoricalInitExpandedMixin, CategoricalMethodsMixin): diff --git a/feature_engine/encoding/probability_ratio.py b/feature_engine/encoding/probability_ratio.py index 121ba4174..79c61d012 100644 --- a/feature_engine/encoding/probability_ratio.py +++ b/feature_engine/encoding/probability_ratio.py @@ -11,18 +11,18 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, + _transform_encoders_docstring, ) from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X_y -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _transform_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitExpandedMixin, CategoricalMethodsMixin, @@ -32,13 +32,13 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, fit_transform=_fit_transform_docstring, - transform=_transform_docstring, + transform=_transform_encoders_docstring, inverse_transform=_inverse_transform_docstring, ) class PRatioEncoder(CategoricalInitExpandedMixin, CategoricalMethodsMixin): diff --git a/feature_engine/encoding/rare_label.py b/feature_engine/encoding/rare_label.py index fc1b80cfd..afc040b17 100644 --- a/feature_engine/encoding/rare_label.py +++ b/feature_engine/encoding/rare_label.py @@ -12,13 +12,13 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import _check_contains_na, check_X -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitMixin, CategoricalMethodsMixin, @@ -27,7 +27,7 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, diff --git a/feature_engine/encoding/woe.py b/feature_engine/encoding/woe.py index 314a556f8..5204c077a 100644 --- a/feature_engine/encoding/woe.py +++ b/feature_engine/encoding/woe.py @@ -11,18 +11,18 @@ _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _ignore_format_docstring, + _unseen_docstring, + _variables_categorical_docstring, +) from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, + _transform_encoders_docstring, ) from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X_y -from feature_engine.encoding._docstrings import ( - _ignore_format_docstring, - _transform_docstring, - _unseen_docstring, - _variables_docstring, -) from feature_engine.encoding.base_encoder import ( CategoricalInitExpandedMixin, CategoricalMethodsMixin, @@ -32,13 +32,13 @@ @Substitution( ignore_format=_ignore_format_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, unseen=_unseen_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, fit_transform=_fit_transform_docstring, - transform=_transform_docstring, + transform=_transform_encoders_docstring, inverse_transform=_inverse_transform_docstring, ) class WoEEncoder(CategoricalInitExpandedMixin, CategoricalMethodsMixin): diff --git a/feature_engine/imputation/arbitrary_number.py b/feature_engine/imputation/arbitrary_number.py index 04939f585..0107a4414 100644 --- a/feature_engine/imputation/arbitrary_number.py +++ b/feature_engine/imputation/arbitrary_number.py @@ -15,7 +15,6 @@ _fit_transform_docstring, ) from feature_engine._docstrings.substitute import Substitution - from feature_engine._variable_handling.init_parameter_checks import ( _check_init_parameter_variables, ) diff --git a/feature_engine/outliers/artbitrary.py b/feature_engine/outliers/artbitrary.py index 24c51086e..96b0e303c 100644 --- a/feature_engine/outliers/artbitrary.py +++ b/feature_engine/outliers/artbitrary.py @@ -6,12 +6,12 @@ import pandas as pd -from feature_engine._docstrings.class_inputs import _missing_values_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _missing_values_docstring from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/outliers/trimmer.py b/feature_engine/outliers/trimmer.py index 06b74ac9d..a84ad507a 100644 --- a/feature_engine/outliers/trimmer.py +++ b/feature_engine/outliers/trimmer.py @@ -4,15 +4,15 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import ( - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine.outliers.base_outlier import WinsorizerBase diff --git a/feature_engine/outliers/winsorizer.py b/feature_engine/outliers/winsorizer.py index 365a5c98a..b6593843c 100644 --- a/feature_engine/outliers/winsorizer.py +++ b/feature_engine/outliers/winsorizer.py @@ -6,15 +6,15 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import ( - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine.dataframe_checks import check_X diff --git a/feature_engine/preprocessing/match_categories.py b/feature_engine/preprocessing/match_categories.py index 49181e914..75b48fee1 100644 --- a/feature_engine/preprocessing/match_categories.py +++ b/feature_engine/preprocessing/match_categories.py @@ -3,18 +3,18 @@ import pandas as pd -from feature_engine._docstrings.class_inputs import _missing_values_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) -from feature_engine._docstrings.substitute import Substitution -from feature_engine.dataframe_checks import _check_contains_na, check_X -from feature_engine.encoding._docstrings import ( +from feature_engine._docstrings.init_parameters import ( _ignore_format_docstring, - _variables_docstring, + _missing_values_docstring, + _variables_categorical_docstring, ) +from feature_engine._docstrings.substitute import Substitution +from feature_engine.dataframe_checks import _check_contains_na, check_X from feature_engine.encoding.base_encoder import ( CategoricalInitMixin, CategoricalMethodsMixin, @@ -24,7 +24,7 @@ @Substitution( ignore_format=_ignore_format_docstring, missing_values=_missing_values_docstring, - variables=_variables_docstring, + variables=_variables_categorical_docstring, variables_=_variables_attribute_docstring, feature_names_in_=_feature_names_in_docstring, n_features_in_=_n_features_in_docstring, diff --git a/feature_engine/timeseries/forecasting/base_forecast_transformers.py b/feature_engine/timeseries/forecasting/base_forecast_transformers.py index 947bc04b6..6324b1fbd 100644 --- a/feature_engine/timeseries/forecasting/base_forecast_transformers.py +++ b/feature_engine/timeseries/forecasting/base_forecast_transformers.py @@ -4,14 +4,14 @@ from sklearn.base import BaseEstimator, TransformerMixin from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, +) from feature_engine._docstrings.methods import _fit_not_learn_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/feature_engine/timeseries/forecasting/expanding_window_features.py b/feature_engine/timeseries/forecasting/expanding_window_features.py index 804276a50..4e46962af 100644 --- a/feature_engine/timeseries/forecasting/expanding_window_features.py +++ b/feature_engine/timeseries/forecasting/expanding_window_features.py @@ -6,15 +6,15 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/timeseries/forecasting/lag_features.py b/feature_engine/timeseries/forecasting/lag_features.py index 40cf411f7..39d911dbf 100644 --- a/feature_engine/timeseries/forecasting/lag_features.py +++ b/feature_engine/timeseries/forecasting/lag_features.py @@ -6,15 +6,15 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/timeseries/forecasting/window_features.py b/feature_engine/timeseries/forecasting/window_features.py index 6fbafab4c..133675db6 100644 --- a/feature_engine/timeseries/forecasting/window_features.py +++ b/feature_engine/timeseries/forecasting/window_features.py @@ -3,15 +3,15 @@ import pandas as pd from sklearn.utils.validation import check_is_fitted -from feature_engine._docstrings.class_inputs import ( - _drop_original_docstring, - _missing_values_docstring, - _variables_numerical_docstring, -) from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, ) +from feature_engine._docstrings.init_parameters import ( + _drop_original_docstring, + _missing_values_docstring, + _variables_numerical_docstring, +) from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/transformation/arcsin.py b/feature_engine/transformation/arcsin.py index 8040d748b..4f5602b26 100644 --- a/feature_engine/transformation/arcsin.py +++ b/feature_engine/transformation/arcsin.py @@ -6,12 +6,12 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/transformation/boxcox.py b/feature_engine/transformation/boxcox.py index cee47c15a..389a7ba77 100644 --- a/feature_engine/transformation/boxcox.py +++ b/feature_engine/transformation/boxcox.py @@ -7,12 +7,12 @@ import scipy.stats as stats from scipy.special import inv_boxcox -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import ( _fit_transform_docstring, _inverse_transform_docstring, diff --git a/feature_engine/transformation/log.py b/feature_engine/transformation/log.py index 71bc302b1..903327bb2 100644 --- a/feature_engine/transformation/log.py +++ b/feature_engine/transformation/log.py @@ -6,12 +6,12 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/transformation/power.py b/feature_engine/transformation/power.py index 171104765..7816278d2 100644 --- a/feature_engine/transformation/power.py +++ b/feature_engine/transformation/power.py @@ -6,12 +6,12 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/transformation/reciprocal.py b/feature_engine/transformation/reciprocal.py index ae4ed2983..255bd380b 100644 --- a/feature_engine/transformation/reciprocal.py +++ b/feature_engine/transformation/reciprocal.py @@ -6,12 +6,12 @@ import numpy as np import pandas as pd -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import ( _fit_not_learn_docstring, _fit_transform_docstring, diff --git a/feature_engine/transformation/yeojohnson.py b/feature_engine/transformation/yeojohnson.py index 8c09e6441..cd0ddfffc 100644 --- a/feature_engine/transformation/yeojohnson.py +++ b/feature_engine/transformation/yeojohnson.py @@ -6,12 +6,12 @@ import pandas as pd import scipy.stats as stats -from feature_engine._docstrings.class_inputs import _variables_numerical_docstring from feature_engine._docstrings.fit_attributes import ( _feature_names_in_docstring, _n_features_in_docstring, _variables_attribute_docstring, ) +from feature_engine._docstrings.init_parameters import _variables_numerical_docstring from feature_engine._docstrings.methods import _fit_transform_docstring from feature_engine._docstrings.substitute import Substitution from feature_engine._variable_handling.init_parameter_checks import ( diff --git a/tests/test_creation/test_check_estimator_creation.py b/tests/test_creation/test_check_estimator_creation.py index 82618ca97..db7074d7b 100644 --- a/tests/test_creation/test_check_estimator_creation.py +++ b/tests/test_creation/test_check_estimator_creation.py @@ -1,14 +1,13 @@ import pytest from sklearn.utils.estimator_checks import check_estimator -from feature_engine.creation import ( - CyclicalFeatures, - MathFeatures, - RelativeFeatures, - # FIXME: remove in version 1.4 +from feature_engine.creation import ( # FIXME: remove in version 1.4 CombineWithReferenceFeature, + CyclicalFeatures, CyclicalTransformer, MathematicalCombination, + MathFeatures, + RelativeFeatures, ) from tests.estimator_checks.estimator_checks import check_feature_engine_estimator diff --git a/tests/test_creation/test_math_features.py b/tests/test_creation/test_math_features.py index b0ef314b3..34f949018 100644 --- a/tests/test_creation/test_math_features.py +++ b/tests/test_creation/test_math_features.py @@ -1,7 +1,6 @@ import numpy as np import pandas as pd import pytest - from sklearn.pipeline import Pipeline from feature_engine.creation import MathFeatures diff --git a/tests/test_creation/test_relative_features.py b/tests/test_creation/test_relative_features.py index ff4378d83..23f8fcd1c 100644 --- a/tests/test_creation/test_relative_features.py +++ b/tests/test_creation/test_relative_features.py @@ -1,7 +1,6 @@ import numpy as np import pandas as pd import pytest - from sklearn.pipeline import Pipeline from feature_engine.creation import RelativeFeatures diff --git a/tests/test_datetime/test_datetime_features.py b/tests/test_datetime/test_datetime_features.py index 89c5c5fa9..416a32ba7 100644 --- a/tests/test_datetime/test_datetime_features.py +++ b/tests/test_datetime/test_datetime_features.py @@ -1,7 +1,6 @@ import numpy as np import pandas as pd import pytest - from sklearn.exceptions import NotFittedError from sklearn.pipeline import Pipeline diff --git a/tests/test_encoding/test_check_estimator_encoders.py b/tests/test_encoding/test_check_estimator_encoders.py index 6bc09a638..13af9882e 100644 --- a/tests/test_encoding/test_check_estimator_encoders.py +++ b/tests/test_encoding/test_check_estimator_encoders.py @@ -1,5 +1,5 @@ -import pytest import pandas as pd +import pytest from sklearn.utils.estimator_checks import check_estimator from feature_engine.encoding import ( diff --git a/tests/test_encoding/test_count_frequency_encoder.py b/tests/test_encoding/test_count_frequency_encoder.py index d858838ec..62071c0df 100644 --- a/tests/test_encoding/test_count_frequency_encoder.py +++ b/tests/test_encoding/test_count_frequency_encoder.py @@ -1,8 +1,8 @@ import warnings -from numpy import nan import pandas as pd import pytest +from numpy import nan from feature_engine.encoding import CountFrequencyEncoder diff --git a/tests/test_encoding/test_onehot_encoder.py b/tests/test_encoding/test_onehot_encoder.py index fa5429cc8..0b3ce30b8 100644 --- a/tests/test_encoding/test_onehot_encoder.py +++ b/tests/test_encoding/test_onehot_encoder.py @@ -1,6 +1,5 @@ import pandas as pd import pytest - from sklearn.pipeline import Pipeline from feature_engine.encoding import OneHotEncoder diff --git a/tests/test_imputation/test_check_estimator_imputers.py b/tests/test_imputation/test_check_estimator_imputers.py index 7417fd011..1e2bb91c5 100644 --- a/tests/test_imputation/test_check_estimator_imputers.py +++ b/tests/test_imputation/test_check_estimator_imputers.py @@ -1,7 +1,6 @@ import pytest from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import check_feature_engine_estimator from feature_engine.imputation import ( AddMissingIndicator, ArbitraryNumberImputer, @@ -11,6 +10,7 @@ MeanMedianImputer, RandomSampleImputer, ) +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator _estimators = [ MeanMedianImputer(), diff --git a/tests/test_imputation/test_missing_indicator.py b/tests/test_imputation/test_missing_indicator.py index e29c60168..d4a33ba45 100644 --- a/tests/test_imputation/test_missing_indicator.py +++ b/tests/test_imputation/test_missing_indicator.py @@ -1,5 +1,4 @@ import pytest - from sklearn.pipeline import Pipeline from feature_engine.imputation import AddMissingIndicator diff --git a/tests/test_outliers/test_check_estimator_outliers.py b/tests/test_outliers/test_check_estimator_outliers.py index 2d8bec5c9..c14c6d91e 100644 --- a/tests/test_outliers/test_check_estimator_outliers.py +++ b/tests/test_outliers/test_check_estimator_outliers.py @@ -1,8 +1,8 @@ import pytest from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import check_feature_engine_estimator from feature_engine.outliers import ArbitraryOutlierCapper, OutlierTrimmer, Winsorizer +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator _estimators = [ ArbitraryOutlierCapper(max_capping_dict={"0": 10}), diff --git a/tests/test_preprocessing/test_check_estimator_preprocessing.py b/tests/test_preprocessing/test_check_estimator_preprocessing.py index 70c6801af..06cfc62ba 100644 --- a/tests/test_preprocessing/test_check_estimator_preprocessing.py +++ b/tests/test_preprocessing/test_check_estimator_preprocessing.py @@ -1,8 +1,8 @@ import pytest from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import check_feature_engine_estimator from feature_engine.preprocessing import MatchCategories, MatchVariables +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator _estimators = [MatchCategories(ignore_format=True), MatchVariables()] diff --git a/tests/test_selection/test_check_estimator_selectors.py b/tests/test_selection/test_check_estimator_selectors.py index 725ecfd67..ad53cdb3f 100644 --- a/tests/test_selection/test_check_estimator_selectors.py +++ b/tests/test_selection/test_check_estimator_selectors.py @@ -2,13 +2,6 @@ from sklearn.linear_model import LogisticRegression from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import ( - check_feature_engine_estimator, -) -from tests.estimator_checks.init_params_triggered_functionality_checks import ( - check_confirm_variables, - check_raises_error_if_only_1_variable, -) from feature_engine.selection import ( DropConstantFeatures, DropCorrelatedFeatures, @@ -22,6 +15,11 @@ SelectByTargetMeanPerformance, SmartCorrelatedSelection, ) +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator +from tests.estimator_checks.init_params_triggered_functionality_checks import ( + check_confirm_variables, + check_raises_error_if_only_1_variable, +) _logreg = LogisticRegression(C=0.0001, max_iter=2, random_state=1) diff --git a/tests/test_time_series/test_forecasting/test_check_estimator_forecasting.py b/tests/test_time_series/test_forecasting/test_check_estimator_forecasting.py index bf70522e2..09dba6ba7 100644 --- a/tests/test_time_series/test_forecasting/test_check_estimator_forecasting.py +++ b/tests/test_time_series/test_forecasting/test_check_estimator_forecasting.py @@ -4,12 +4,12 @@ from sklearn.base import clone from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import check_feature_engine_estimator from feature_engine.timeseries.forecasting import ( ExpandingWindowFeatures, LagFeatures, WindowFeatures, ) +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator _estimators = [ LagFeatures(missing_values="ignore"), diff --git a/tests/test_transformation/test_check_estimator_transformers.py b/tests/test_transformation/test_check_estimator_transformers.py index 5a857a754..bd8bf66be 100644 --- a/tests/test_transformation/test_check_estimator_transformers.py +++ b/tests/test_transformation/test_check_estimator_transformers.py @@ -1,16 +1,16 @@ import pytest from sklearn.utils.estimator_checks import check_estimator -from tests.estimator_checks.estimator_checks import check_feature_engine_estimator from feature_engine.transformation import ( + ArcsinTransformer, BoxCoxTransformer, LogCpTransformer, - ArcsinTransformer, LogTransformer, PowerTransformer, ReciprocalTransformer, YeoJohnsonTransformer, ) +from tests.estimator_checks.estimator_checks import check_feature_engine_estimator _estimators = [ BoxCoxTransformer(), diff --git a/tests/test_wrappers/test_check_estimator_wrappers.py b/tests/test_wrappers/test_check_estimator_wrappers.py index abe8ec350..ba0ef2e24 100644 --- a/tests/test_wrappers/test_check_estimator_wrappers.py +++ b/tests/test_wrappers/test_check_estimator_wrappers.py @@ -3,18 +3,16 @@ from sklearn.preprocessing import OrdinalEncoder, StandardScaler from sklearn.utils.estimator_checks import check_estimator +from feature_engine.wrappers import SklearnTransformerWrapper from tests.estimator_checks.estimator_checks import ( check_raises_error_when_input_not_a_df, ) from tests.estimator_checks.fit_functionality_checks import check_feature_names_in -from tests.estimator_checks.non_fitted_error_checks import ( - check_raises_non_fitted_error, -) +from tests.estimator_checks.non_fitted_error_checks import check_raises_non_fitted_error from tests.estimator_checks.variable_selection_checks import ( - check_numerical_variables_assignment, check_all_types_variables_assignment, + check_numerical_variables_assignment, ) -from feature_engine.wrappers import SklearnTransformerWrapper def test_sklearn_transformer_wrapper(): diff --git a/tests/test_wrappers/test_sklearn_wrapper.py b/tests/test_wrappers/test_sklearn_wrapper.py index b0db6d9a4..7d5535374 100644 --- a/tests/test_wrappers/test_sklearn_wrapper.py +++ b/tests/test_wrappers/test_sklearn_wrapper.py @@ -571,7 +571,7 @@ def test_function_transformer_works_with_numericals(): X_expected = pd.DataFrame({"col1": [2, 3, 4], "col2": ["a", "b", "c"]}) transformer = SklearnTransformerWrapper( - FunctionTransformer(lambda x: x+1), variables=["col1"] + FunctionTransformer(lambda x: x + 1), variables=["col1"] ) X_tf = transformer.fit_transform(X)