feature_engine icon indicating copy to clipboard operation
feature_engine copied to clipboard

Limit the level of class inherintance to two.

Open Morgan-Sell opened this issue 1 year ago • 2 comments

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.

Morgan-Sell avatar Feb 25 '23 16:02 Morgan-Sell