in tools/analysis/ping-patterns/ping-patterns.py [0:0]
def analyse_by_day(data):
"""
Find the "issues" notated in the `notes` field on each ping and generate
a graph of their frequencies over time.
"""
data_by_day = {}
for ping in data:
if ping["ping_type"] == "metrics":
day = ping["end_time_local"].replace(hour=0, minute=0, second=0)
data_by_day.setdefault(day, {})
day_data = data_by_day[day]
day_data.setdefault("total", 0)
day_data["total"] += 1
for note in ping["notes"]:
day_data.setdefault(note, 0)
day_data[note] += 1
for i, fix in enumerate(FIXES):
if ping["version_date"] is not None and ping["version_date"] >= fix[1]:
fix_id = f"fix{i}"
day_data.setdefault(fix_id, 0)
day_data[fix_id] += 1
# Trim the first and last couple of days, since they aren't meaningful
data_by_day = sorted(list(data_by_day.items()))[2:-2]
return data_by_day