"""This file is a base class for the top feature selector."""
from typing import Union
from pandas import DataFrame
import scalr
from scalr.utils import build_object
[docs]
class SelectorBase:
    """Base class for Feature Selector from scores."""
    # Abstract
[docs]
    def get_feature_list(score_matrix: DataFrame,
                         **kwargs) -> Union[list[str], dict]:
        """A function to return top features from given scores of each feature for each class. 
        Args:
            score_matrix (DataFrame): Score of each feature across all classes
                                      [num_classes X num_features].
        Returns:
            list[str]: List of features.
        """
        return 
[docs]
    @classmethod
    def get_default_params(cls) -> dict:
        """Class method to get default params."""
        return dict() 
 
[docs]
def build_selector(selector_config: dict) -> tuple[SelectorBase, dict]:
    """Builder object to get Selector, updated selector_config."""
    return build_object(scalr.feature.selector, selector_config)