import abc __all__ = "AbstractEngine" class AbstractEngineClass(abc.ABC): def __init__(self, table_engine): self.model = table_engine.model self.query_class = table_engine.query_class self.input = table_engine.input self.filter = table_engine.input.f self.default_sort_by = table_engine.default_sort_by self.custom_entities = [] self.joins = table_engine.joins self.options = table_engine.options self.search_cols = table_engine.search_cols self.soft_deleted = table_engine.soft_deleted @abc.abstractmethod def exe(self): pass @abc.abstractmethod def set_filters(self): pass @abc.abstractmethod def set_sort(self): pass @staticmethod @abc.abstractmethod def get_expression_filter(col=None, op: str = 'eq', val: str = '') -> dict: pass @staticmethod @abc.abstractmethod def get_operator(op: str): pass def count(self): pass @staticmethod @abc.abstractmethod def generate_scope_filter(filters: list, general=False): pass @abc.abstractmethod def set_joins(self): pass