def __init__(
        self,
        filter_converter: Type[BaseFilterConverter],
        datamodel,
        search_columns: Optional[List[str]] = None,
        search_filters: Optional[Dict[str, List[BaseFilter]]] = None,
    ):
        """

        :param filter_converter: Accepts BaseFilterConverter class
        :param search_columns: restricts possible columns,
                accepts a list of column names
        :param search_filters: Add custom defined filters to specific columns
        :param datamodel: Accepts BaseInterface class
        """
        self.search_columns = search_columns or []
        self.filter_converter = filter_converter
        self.datamodel = datamodel
        self.clear_filters()
        if self.search_columns:
            self._search_filters = self._get_filters(self.search_columns)
        self._all_filters = self._get_filters(datamodel.get_columns_list())

        if search_filters:
            for k, v in search_filters.items():
                self._search_filters[k] += v


        :param filter_converter: Accepts BaseFilterConverter class
        :param search_columns: restricts possible columns,
                accepts a list of column names
        :param search_filters: Add custom defined filters to specific columns
        :param datamodel: Accepts BaseInterface class
        
flask_appbuilder/models/filters.py