9 output_file: click.File, json_files: list, console: Console
11 """Collate the json information into an output file."""
13 "Reading specified JSON files and outputting collated value traces to %s",
18 jd = json.JSONDecoder()
20 console.log(f
"Reading info JSON file {jf.name}")
23 while idx < len(text):
24 res = jd.raw_decode(text, idx)
31 session = jsonobj[
"origin"][
"session"]
32 application = jsonobj[
"origin"][
"application"]
34 if session
not in data:
37 if application
not in data[session]:
38 data[session][application] = {}
40 objref = data[session][application]
41 if "substructure" in jsonobj[
"origin"]:
42 for sub
in jsonobj[
"origin"][
"substructure"]:
48 jsonobj[
"measurement"].replace(
"dunedaq.",
"").replace(
"opmon.",
"")
50 if measurement
not in objref:
51 objref[measurement] = {}
52 objref = objref[measurement]
55 if "custom_origin" in jsonobj:
57 for k, v
in jsonobj[
"custom_origin"].items():
60 custom_origin += f
"{k}:{v}"
63 if custom_origin !=
"":
64 if custom_origin
not in objref:
65 objref[custom_origin] = {}
66 objref = objref[custom_origin]
68 for datapoint
in jsonobj[
"data"]:
69 if datapoint
not in objref:
70 objref[datapoint] = {}
72 for value
in jsonobj[
"data"][datapoint]:
73 objref[datapoint][jsonobj[
"time"]] = jsonobj[
"data"][datapoint][value]
75 json.dump(data, output_file, indent=4, sort_keys=
True)
76 console.log(
"Operation complete")