"""List the exploration set's feature requests by reactions, for reading. Writes top.tsv (number, reactions, comments, title) for the 120 most-reacted issues and all.tsv for every issue into $CLAIMSET_RUN_DIR, and reports summary counts of reactions. """ import json import os import statistics import sys issues = json.load(open(sys.argv[1])) out = os.environ.get("CLAIMSET_RUN_DIR", ".") issues.sort(key=lambda i: (-i["reactions_total"], i["number"])) for name, part in (("top.tsv", issues[:120]), ("all.tsv", issues)): with open(os.path.join(out, name), "w") as f: for i in part: f.write(f"{i['number']}\t{i['reactions_total']}\t{i['comments']}\t{i['title']}\n") r = [i["reactions_total"] for i in issues] results = [ {"quantity": "exploration-set issues", "value": len(issues)}, {"quantity": "total reactions on exploration-set issues", "value": sum(r)}, {"quantity": "median reactions per exploration-set issue", "value": statistics.median(r)}, {"quantity": "exploration-set issues with at least 10 reactions", "value": sum(1 for x in r if x >= 10)}, ] path = os.environ.get("CLAIMSET_RESULTS") if path: with open(path, "w") as f: json.dump(results, f) print(json.dumps(results))