60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
from typing import List
|
|
|
|
from .analyzer import Analyzer, Result
|
|
from .analyzer.biogames import BoardDurationAnalyzer, SimulationRoundsAnalyzer, ActivationSequenceAnalyzer, \
|
|
BiogamesCategorizer, ActivityMapper
|
|
from .analyzer.default import LogEntryCountAnalyzer, LocationAnalyzer, LogEntrySequenceAnalyzer, ActionSequenceAnalyzer, \
|
|
CategorizerStub, Store
|
|
from .analyzer.locomotion import LocomotionActionAnalyzer, CacheSequenceAnalyzer
|
|
from .analyzer.mask import MaskSpatials
|
|
from .render import Render
|
|
from .render.biogames import SimulationRoundsRender, BoardDurationHistRender, BoardDurationBoxRender, \
|
|
ActivityMapperRender
|
|
from .render.default import PrintRender, JSONRender, TrackRender, HeatMapRender
|
|
from .render.locomotion import LocomotionActionRelativeRender, LocomotionActionAbsoluteRender, \
|
|
LocomotionActionRatioRender
|
|
|
|
__FALLBACK__ = PrintRender
|
|
__MAPPING__ = {
|
|
LocomotionActionAnalyzer: [
|
|
LocomotionActionAbsoluteRender,
|
|
LocomotionActionRelativeRender,
|
|
LocomotionActionRatioRender, ],
|
|
LogEntryCountAnalyzer: [
|
|
JSONRender,
|
|
],
|
|
SimulationRoundsAnalyzer: [
|
|
JSONRender,
|
|
SimulationRoundsRender,
|
|
],
|
|
BoardDurationAnalyzer: [
|
|
BoardDurationHistRender,
|
|
BoardDurationBoxRender,
|
|
],
|
|
ActivationSequenceAnalyzer: [
|
|
JSONRender,
|
|
],
|
|
LocationAnalyzer: [
|
|
TrackRender,
|
|
HeatMapRender,
|
|
],
|
|
ActivityMapper:[
|
|
ActivityMapperRender
|
|
]
|
|
}
|
|
|
|
|
|
def get_renderer(cls: type) -> [type]:
|
|
if cls not in __MAPPING__:
|
|
return [__FALLBACK__]
|
|
return __MAPPING__[cls]
|
|
|
|
|
|
def render(cls: type, results: List[Result]):
|
|
for r in get_renderer(cls):
|
|
p = r()
|
|
p.result_types.append(cls)
|
|
rendered = p.render(results)
|
|
if rendered:
|
|
print(str(r))
|