summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2023-06-29 16:50:27 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2023-06-29 16:50:27 +0200
commit9b83049f6c8e5b7780125865b65b191a61d69701 (patch)
tree8d212af4eea18626c9e37fd513642345f74c86a1
parent1dd6a37b6d75cbee626f5e0365d65f376482a096 (diff)
analyze-log: add --export-model suport
-rwxr-xr-xbin/analyze-log.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/bin/analyze-log.py b/bin/analyze-log.py
index 444ecd2..2846d7c 100755
--- a/bin/analyze-log.py
+++ b/bin/analyze-log.py
@@ -12,6 +12,7 @@ import dfatool.utils
from dfatool.model import AnalyticModel
from dfatool.validation import CrossValidator
from functools import reduce
+import json
import re
@@ -106,6 +107,9 @@ def main():
help="Build decision tree without checking for analytic functions first",
)
parser.add_argument(
+ "--export-model", metavar="FILE", type=str, help="Export JSON model to FILE"
+ )
+ parser.add_argument(
"logfiles", nargs="+", type=str, help="Path to benchmark output"
)
args = parser.parse_args()
@@ -209,6 +213,14 @@ def main():
[None, param_info, None],
)
+ if args.export_model:
+ print(f"Exportding model to {args.export_model}")
+ json_model = model.to_json()
+ with open(args.export_model, "w") as f:
+ json.dump(
+ json_model, f, indent=2, sort_keys=True, cls=dfatool.utils.NpEncoder
+ )
+
if args.plot_param:
for kv in args.plot_param.split(";"):
try: