feature_engine
feature_engine copied to clipboard
Limit the level of class inherintance to two.
Is your feature request related to a problem? Please describe. Currently, some feature-engine classes have more than two levels of inheritance, e.g. classes that are derived from the BaseRecursiveSelector() class.
BaseEstimator(), TransformerMixin(), and GetFeatureNamesOutMixin() --> BaseSelector() --> BaseRecursiveSelector() --> RecursiveFeatureAddition()
This many levels of abstraction significantly increase the difficulty for people to contribute.
Describe the solution you'd like Let's limit the codebase to two levels of inheritance. There can be multiple base transformers in the _base_transformer section than each other section - e.g., discretisation, encoding, and timeseries - are limited to one base transformer.
Describe alternatives you've considered feature-engine currently applies an alternative, i.e., more than 2 levels of inheritance, and we see the challenges that it is causing.