import logging from typing import List from analysis.analyzers.analyzer import ResultStore from .. import Result logger = logging.getLogger(__name__) class Render: result_types = [] def render(self, results: List[Result], name=None) -> [str]: raise NotImplementedError() def render_store(self, store: ResultStore, name=None) -> str: logging.getLogger(__name__).warning("using default implementation!") for category in store.get_categories(): self.render(store.get_category(category), name=name) def filter(self, results: List[Result]): if len(self.result_types) == 0: return results return filter(self.__filter__, results) def __filter__(self, obj: Result): return obj.analysis() in self.result_types