scripts/generate_aggregate_json_by_date.py (60 lines of code) (raw):

#!/usr/bin/env python # run like: # generate_aggregate_json_by_date.py 1 2 3 4 5 6 7 8 9 import sys import os import subprocess import json from pathlib import Path from origin_content_classifier import classify_web_content_traits # setup input file, output file naming conventions testn = sys.argv[1]; url = sys.argv[2]; platformn = sys.argv[3]; datestr = sys.argv[4]; sxsvi = sys.argv[5]; fjsnfilm = sys.argv[6]; fjsnmetric = sys.argv[7]; cjsnfilm = sys.argv[8]; cjsnmetric = sys.argv[9]; metrics_sfx = "-metrics.json" power_sfx = "-power.json" # Consolidate per-date and platform data files into one file. # json for filmstrips, json for metrics # firefox and chrome sections def serialize_aggregate(tname, url, tplatform, date, sbys_video, flmfirefoxj, mtrxfirefoxj, flmchromej, mtrxchromej): fpowerj = mtrxfirefoxj + power_sfx; cpowerj = mtrxchromej + power_sfx; vdict = { } vdict["platform"] = tplatform vdict["date"] = date vdict["test"] = tname vdict["url"] = url vdict["url_content_traits"] = classify_web_content_traits(url) vdict["video_side_by_side"] = sbys_video # firefox metrics, filmstrip if os.path.exists(flmfirefoxj): with open(flmfirefoxj, 'r') as jff: firefox_dict = json.load(jff) if os.path.exists(fpowerj): with open(fpowerj, 'r') as jfpow: firefoxp_dict = json.load(jfpow) firefox_dict["power"] = firefoxp_dict else: firefox_dict["power"] = { } with open(mtrxfirefoxj + metrics_sfx, 'r') as jfm: firefoxm_dict = json.load(jfm) firefox_dict["metrics"] = firefoxm_dict vdict["firefox"] = firefox_dict # chrome metrics, filmstrip if os.path.exists(flmchromej): with open(flmchromej, 'r') as jc: chrome_dict = json.load(jc) if os.path.exists(cpowerj): with open(mtrxchromej + power_sfx, 'r') as jcpow: chromep_dict = json.load(jcpow) chrome_dict["power"] = chromep_dict else: chrome_dict["power"] = { } with open(mtrxchromej + metrics_sfx, 'r') as jcm: chromem_dict = json.load(jcm) chrome_dict["metrics"] = chromem_dict vdict["chrome"] = chrome_dict ofname = date + "-" + tplatform + "-" + tname + "-aggregate.json" with open(ofname, 'w') as of: json.dump(vdict, of, indent=2) serialize_aggregate(testn, url, platformn, datestr, sxsvi, fjsnfilm, fjsnmetric, cjsnfilm, cjsnmetric)