187 lines
6.0 KiB
Python
187 lines
6.0 KiB
Python
import json
|
|
import logging
|
|
from typing import List
|
|
|
|
import analyzers
|
|
from analyzers import get_renderer, Analyzer, render, Store
|
|
from analyzers.analyzer import ResultStore
|
|
from analyzers.settings import LogSettings, load_settings
|
|
from loaders import LOADERS
|
|
|
|
logging.basicConfig(format='%(levelname)s %(name)s:%(message)s', level=logging.DEBUG)
|
|
log: logging.Logger = logging.getLogger(__name__)
|
|
|
|
requests_log = logging.getLogger('requests')
|
|
requests_log.setLevel(logging.WARN)
|
|
|
|
|
|
def process_log(log_id: str, settings: LogSettings) -> List[Analyzer]:
|
|
logfile: str = "data/urach/inst_{id}.{format}".format(id=log_id, format=settings.log_format)
|
|
loader = LOADERS[settings.log_format]()
|
|
try:
|
|
loader.load(logfile)
|
|
except BaseException as e:
|
|
raise RuntimeError(e)
|
|
analyzers: List[Analyzer] = []
|
|
log.debug("build analyzers")
|
|
for analyzer in settings.analyzers:
|
|
analyzers.append(analyzer(settings))
|
|
log.debug("process entries")
|
|
for entry in loader.get_entry():
|
|
for analyzer in analyzers:
|
|
if analyzer.process(entry):
|
|
break
|
|
return analyzers
|
|
|
|
|
|
if __name__ == '__main__':
|
|
settings: LogSettings = load_settings("biogames2.json")
|
|
log_ids: List[str] = [
|
|
"0ff5e4d75a7c4c5683dd025aaac7de0d",
|
|
"1d80340985c7411aa78f9629aef91351",
|
|
"02c537ce1a514cb09eb387e7993f51a4",
|
|
"2cf1f8a490ac45e7bb035acc2de6bbc9",
|
|
"2f1f7713a6324fe580dbc67d4254bda5",
|
|
"3b5e4a43472f468196cc6b6a26c984a5",
|
|
"4a6e165e1e85421aaa681a68b6448f6b",
|
|
"4a2079607e9f41e9a070b32bf5a6b321",
|
|
"4ad0de379b36424e91bc709139a2538f",
|
|
"4b52635a0473424da7f9593098a38b11",
|
|
"04bf6dbbf5f846ad8d505faea8be7f45",
|
|
"5a1ae8dfa1f34469b14e910f8794285d",
|
|
"5ca377951ae440c7b3c479dc6786da52",
|
|
"5dd7e3d04dce41279b14d32f42c2052d",
|
|
"6f6f2edb053b409197f77b0322fc2c10",
|
|
"7a5f314c866f4413ae3a9eb5a0bd544a",
|
|
"7b25d0c0d2a44d31a93b8c8a84ea9cbb",
|
|
"7b697ac0aa1a480698261b62807cd447",
|
|
"7c7e3b819ec44b2994dadfad40508d56",
|
|
"7c7860ecf8904a57ad8829298570382e",
|
|
"7d96db101a254161b30078b421e5c4e2",
|
|
"09a641efdb6e47a4b7be5ef697d57cee",
|
|
"9c08fb690c5e42ec8add80305c78476a",
|
|
"9c699184e5314c5192000b998912f9c3",
|
|
"34eff87a077a45cdb64a0b1001098d16",
|
|
"35a755e2c73c48dda77f32c1e65c16c5",
|
|
"36c686cc3493405c8ce3df9f0b9e9f0b",
|
|
"36e350a44a744e08b491cef368c92aae",
|
|
"39e9e1625a7a426f81b387e56a142ea3",
|
|
"46d18a1237e34e689eeb47a24bd1f1a7",
|
|
"46fdee17dffe4e4b9ac3dd9dee7d3860",
|
|
"52ded2824b6c40559a923fc772148a8d",
|
|
"59bcafe4041d4c919585bac2be39fbe4",
|
|
"63e1a33bb1bd474bb8cffe6af54f6fe2",
|
|
"63fb0ee5bdd74c9d8d1a11958e6cbcc0",
|
|
"74f47e7694cf4bd2b965790479d5c4e6",
|
|
"76a20e83af5d4edab295f4f93d436c1c",
|
|
"0080e8e0364d4ed69fb349f95810ca4e",
|
|
"122a2dbc4aa94fd9a5535385a4c5c624",
|
|
"173c95bca9024eb5897d6f196d7b35e3",
|
|
"203f9b1e3113486c87dee0cc7ab2ec3e",
|
|
"292cf93f6ad147b5babbe9fd0842672d",
|
|
"510f86e65deb43bdad3f30ca55366fa7",
|
|
"683a0ab03fee437790ea06770e850f0d",
|
|
"698a03dca3ab41969c5ba91c4ac95012",
|
|
"788ddde1fa5e49498363907f54ab525f",
|
|
"798a8620c6aa4a369d31cf07357176e8",
|
|
"974c98d5426446c9af6be608d69e8cea",
|
|
"977cd2ae146e4b5cb53b284c5b58bee6",
|
|
"1887ed68b88f49a686d8d433b7f439a0",
|
|
"1307199d0d4f4f8f8dd019fa7e4dc9a8",
|
|
"58865640dc73482984f08b5ef728683c",
|
|
"83150656b4cf47409c2a8c971d78c359",
|
|
"a17f6affa68140aaaaded61c7dd310e0",
|
|
"a39c7ff84f624237a8e649b56577aedc",
|
|
"a85e76d834d64fc4986e6eea45cf48cf",
|
|
"a3549e5a2f5e4bcea5af97af0e86ea60",
|
|
#"a57903d4d27b47a0afa4f198a7bf9741",
|
|
"b1cf964e987f4387a3c377c329623a89",
|
|
"b59d67957ea946ecab7ce57ba395f825",
|
|
"b606f8c1c00e4edb8fe8e3afc6b790cb",
|
|
"b55222002dff47afb9cde94deb2d776f",
|
|
"b845757019654c20bf4f11a8aa2964f4",
|
|
"bac9268aca25471587a274baa8cb0aef",
|
|
"c999941878a04ca4b96b00308fdf1d47",
|
|
"d0e41604aa1c4a50a06fdc867e3e0883",
|
|
"d2c2a43cce4a4ebfa7008423e108fff4",
|
|
"d20c062e155147af9aaaee477e68e209",
|
|
"d31b742005d04f8e85845ad0fb9582fc",
|
|
"d6821c791abd40cf9d90ebf01ce287b8",
|
|
"d49515a15647455db263a5b1a963bb5d",
|
|
"da2ecef74b0b42dfb4599aa231580dcf",
|
|
"dbb281fdff3849eeb7ff61d343172dd9",
|
|
"dbd5e5ea53bf4f5db3dd99582322f915",
|
|
"de8a9a1996934ae98daa93dc2425509f",
|
|
"e0c802e9e50146fc93346d0f6e865612",
|
|
"e6b34adce1534ae08af70613c0ef729d",
|
|
"e55630984dcb4b87aa13080d0ef23e15",
|
|
"eed665d75dfa4a619d5a74a6cc104341",
|
|
"f7d0033ee7124baf974f171a571e5e0a",
|
|
"f303f2c550704a178b7c56417d44c329",
|
|
"f1106d463759429e8a4dda41fda512f8",
|
|
"f8045427e89349deb279d3c12e9c0462",
|
|
"feb8cf484f604e4a8137a8d00e7226b8",
|
|
"ff935be0480c4c6cac56ebff9021895f",
|
|
"ffae0d9d78124b6f808cef1771e78179",
|
|
]
|
|
#log_ids: List[str] = [
|
|
#"34fecf49dbaca3401d745fb467",
|
|
# "44ea194de594cd8d63ac0314be",
|
|
# "57c444470dbf88605433ca935c",
|
|
# "78e0c545b594e82edfad55bd7f",
|
|
# "91abfd4b31a5562b1c66be37d9",
|
|
"597b704fe9ace475316c345903",
|
|
"e01a684aa29dff9ddd9705edf8",
|
|
"fbf9d64ae0bdad0de7efa3eec6",
|
|
# "fe1331481f85560681f86827ec",
|
|
# "fe1331481f85560681f86827ec"]
|
|
#"fec57041458e6cef98652df625", ]
|
|
store: ResultStore = ResultStore()
|
|
for log_id in log_ids:
|
|
log.debug(log_id)
|
|
for analysis in process_log(log_id, settings):
|
|
log.info("* Result for " + analysis.name())
|
|
# print(analysis.result())
|
|
# print(analysis.render())
|
|
analysis.result(store)
|
|
if False:
|
|
for r in get_renderer(analyzers.LocomotionActionAnalyzer):
|
|
r().render(store.get_all())
|
|
if False:
|
|
render(analyzers.LocationAnalyzer, store.get_all())
|
|
#print(json.dumps(store.serializable(), indent=1))
|
|
if False:
|
|
render(analyzers.ActivityMapper, store.get_all())
|
|
render(analyzers.ProgressAnalyzer, store.get_all())
|
|
if True:
|
|
for a in [analyzers.BiogamesCategorizer,
|
|
analyzers.ActivityMapper,
|
|
analyzers.LogEntrySequenceAnalyzer,
|
|
analyzers.ActionSequenceAnalyzer,
|
|
analyzers.BoardDurationAnalyzer,
|
|
analyzers.LocomotionActionAnalyzer,
|
|
analyzers.SimulationRoundsAnalyzer,
|
|
analyzers.ProgressAnalyzer]:
|
|
print(str(a))
|
|
render(a, store.get_all())
|
|
|
|
if False:
|
|
from analyzers.postprocessing import graph
|
|
g = graph.Cache(settings)
|
|
g.run(store)
|
|
if True:
|
|
render(analyzers.SimulationOrderAnalyzer, store.get_all())
|
|
|
|
# for analyzers in analyzers:
|
|
# if analyzers.name() in ["LogEntryCount", "ActionSequenceAnalyzer"]:
|
|
# print(json.dumps(analyzers.result(), indent=2))
|
|
|
|
# for analyzers in analyzers:
|
|
# if analyzers.name() in ["BoardDuration"]:
|
|
# print(json.dumps(analyzers.result(), indent=2))
|
|
# print(analyzers.render())
|
|
|
|
# coords = analyzers[1].render()
|
|
# with open("test.js", "w") as out:
|
|
# out.write("coords = "+coords)
|