project/analysis/analyzers/render/__init__.py

27 lines
731 B
Python

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