Skip to content

Instantly share code, notes, and snippets.

@devnano
Created July 5, 2020 22:19
Show Gist options
  • Save devnano/44bc51758931c1715c7ad6cab4d20aa7 to your computer and use it in GitHub Desktop.
Save devnano/44bc51758931c1715c7ad6cab4d20aa7 to your computer and use it in GitHub Desktop.
AppStore Sessions Ad-Hoc Python Plots
import pygal
import datetime
import statistics
apple_filename = "rosta_–_duty_calendar-sessions-20161001-20200629.csv"
def every_n_dates_criteria(n):
return lambda date, data: len(data) == n
class PlotParams:
def __init__(self, data_point_criteria=None, aggregator=None):
self.data_point_criteria = data_point_criteria
self.aggregator = aggregator
class Data:
def __init__(self, dates, data, label):
self.dates = dates
self.data = data
self.label = label
class DateRange:
def __init__(self, from_date=None, to_date=None):
self.from_date = from_date
self.to_date = to_date
class Criteria:
def __init__(self, name,
strategy,
x_label_formatter=lambda d: f'{d.strftime("%b/%Y")}'):
self.name = name
self.strategy = strategy
self.x_label_formatter = x_label_formatter
def apple_data_points(data_point_criteria=lambda date, data: date.day == 1,
aggregator=lambda data: max(data),
date_range=None):
dates = []
sessions = []
users = []
with open(apple_filename) as f:
for line in f:
data = line.replace("'", "").split(",")
try:
current_date = datetime.datetime.strptime(data[0], "%m/%d/%y")
except ValueError:
continue
if date_range:
if date_range.from_date and current_date < date_range.from_date:
continue
if date_range.to_date and current_date > date_range.to_date:
break
date = current_date
users.append(int(eval(data[1])))
if data_point_criteria(date, users):
sessions.append(aggregator(users))
dates.append(date)
users = []
if not sessions and users:
sessions.append(aggregator(users))
dates.append(date)
return (dates, sessions)
def create_plot(title, dates, data, plot_name, x_label_formatter):
"""Plot implementation with pygal."""
line_chart = pygal.Line(x_label_rotation=90, fill=True)
line_chart.title = title
line_chart.x_labels = map(x_label_formatter, dates)
for d in data:
line_chart.add(d.label, d.data)
line_chart.render_to_file(plot_name)
if __name__ == "__main__":
# Just daily session as indicator by now
indicators = {"daily sessions": None}
# How to aggregate each period data
aggregators = {
"min": lambda data: min(data),
"max": lambda data: max(data),
"avg": lambda data: int(statistics.mean(data)),
# # "mode": lambda data: statistics.mode(data),
# "median": lambda data: statistics.median(data),
# # "sum": lambda data: sum(data)
}
# Time criteria use to aggregate the data
criterias = [
Criteria("monthly", lambda date, data: date.day == 1),
Criteria("bimonthly", lambda date, data: len(data) == 30 * 2),
Criteria("quarterly", lambda date, data: len(data) == 30 * 3),
Criteria("semester", lambda date, data: len(data) == 30 * 6),
Criteria("weekly", lambda date, data: len(data) == 7,
lambda d: f'{d.strftime("%b/%d/%y")}'),
Criteria("fortnight", lambda date, data: len(data) == 14,
lambda d: f'{d.strftime("%b/%d/%y")}'),
]
# Just official AppStore Data.
# There's a draft impl of fabric->firebase but is less consistent
# and data is only available since 5/2020
sources = {
# For now just ignore fabric/firebase sources.
# "Fabric_Firebase": data_points,
"AppStore": apple_data_points
}
# Date ranges of interest
date_ranges = [
# From start to PT translation
DateRange(to_date=datetime.datetime(2019, 10, 9, 0, 0)),
# # From start to COVID
DateRange(to_date=datetime.datetime(2020, 3, 20, 0, 0)),
# From COVID to now 1/7/2020
DateRange(from_date=datetime.datetime(2020, 2, 17, 0, 0)),
# # All available data
DateRange()
]
# Multiply parameters to produce the plots:
# Source x indicator x aggregator x time criteria x time range
for source_k, source_v in sources.items():
for indicator_k, indicator_v in indicators.items():
for aggregator_k, aggregator_v in aggregators.items():
for criteria in criterias:
for date_range in date_ranges:
# 1. Produce the plot source data
dates, daus = source_v(
criteria.strategy, aggregator_v, date_range)
# 2. Additional plot parameters
label = indicator_k.title()
dates_range_text = f"{criteria.x_label_formatter(dates[0])} – {criteria.x_label_formatter(dates[-1])}"
title = f"{indicator_k}({criteria.name} {aggregator_k}) {dates_range_text}".title(
)
data = Data(dates, daus, label)
# 3. Create the plot
create_plot(title,
dates,
[data],
f"{source_k}_{title.replace(' ', '_').replace('/', '_')}.svg",
criteria.x_label_formatter)
Name Rosta – Duty Calendar
Start Date 8/2/16
End Date 6/29/20
Date Sessions
8/2/17 20.0
8/3/17 16.0
8/4/17 19.0
8/5/17 2.0
8/6/17 13.0
8/7/17 21.0
8/8/17 8.0
8/9/17 14.0
8/10/17 14.0
8/11/17 23.0
8/12/17 28.0
8/13/17 28.0
8/14/17 29.0
8/15/17 11.0
8/16/17 11.0
8/17/17 26.0
8/18/17 31.0
8/19/17 26.0
8/20/17 22.0
8/21/17 17.0
8/22/17 28.0
8/23/17 24.0
8/24/17 23.0
8/25/17 18.0
8/26/17 17.0
8/27/17 15.0
8/28/17 36.0
8/29/17 35.0
8/30/17 21.0
8/31/17 27.0
9/1/17 32.0
9/2/17 53.0
9/3/17 43.0
9/4/17 63.0
9/5/17 37.0
9/6/17 30.0
9/7/17 43.0
9/8/17 40.0
9/9/17 30.0
9/10/17 33.0
9/11/17 35.0
9/12/17 30.0
9/13/17 67.0
9/14/17 38.0
9/15/17 27.0
9/16/17 19.0
9/17/17 60.0
9/18/17 38.0
9/19/17 30.0
9/20/17 61.0
9/21/17 37.0
9/22/17 55.0
9/23/17 58.0
9/24/17 62.0
9/25/17 59.0
9/26/17 45.0
9/27/17 87.0
9/28/17 66.0
9/29/17 79.0
9/30/17 58.0
10/1/17 94.0
10/2/17 47.0
10/3/17 32.0
10/4/17 68.0
10/5/17 86.0
10/6/17 58.0
10/7/17 87.0
10/8/17 56.0
10/9/17 51.0
10/10/17 95.0
10/11/17 80.0
10/12/17 109.0
10/13/17 116.0
10/14/17 61.0
10/15/17 79.0
10/16/17 107.0
10/17/17 173.0
10/18/17 102.0
10/19/17 149.0
10/20/17 97.0
10/21/17 86.0
10/22/17 90.0
10/23/17 121.0
10/24/17 117.0
10/25/17 85.0
10/26/17 103.0
10/27/17 83.0
10/28/17 86.0
10/29/17 106.0
10/30/17 123.0
10/31/17 117.0
11/1/17 87.0
11/2/17 135.0
11/3/17 101.0
11/4/17 90.0
11/5/17 90.0
11/6/17 114.0
11/7/17 110.0
11/8/17 153.0
11/9/17 115.0
11/10/17 128.0
11/11/17 86.0
11/12/17 83.0
11/13/17 122.0
11/14/17 159.0
11/15/17 166.0
11/16/17 152.0
11/17/17 119.0
11/18/17 96.0
11/19/17 156.0
11/20/17 154.0
11/21/17 111.0
11/22/17 157.0
11/23/17 142.0
11/24/17 139.0
11/25/17 128.0
11/26/17 135.0
11/27/17 170.0
11/28/17 152.0
11/29/17 138.0
11/30/17 133.0
12/1/17 189.0
12/2/17 125.0
12/3/17 120.0
12/4/17 162.0
12/5/17 170.0
12/6/17 169.0
12/7/17 148.0
12/8/17 147.0
12/9/17 126.0
12/10/17 106.0
12/11/17 173.0
12/12/17 161.0
12/13/17 191.0
12/14/17 173.0
12/15/17 156.0
12/16/17 141.0
12/17/17 169.0
12/18/17 158.0
12/19/17 130.0
12/20/17 129.0
12/21/17 175.0
12/22/17 136.0
12/23/17 117.0
12/24/17 110.0
12/25/17 132.0
12/26/17 186.0
12/27/17 228.0
12/28/17 156.0
12/29/17 139.0
12/30/17 122.0
12/31/17 103.0
1/1/18 161.0
1/2/18 232.0
1/3/18 195.0
1/4/18 211.0
1/5/18 222.0
1/6/18 219.0
1/7/18 182.0
1/8/18 215.0
1/9/18 203.0
1/10/18 173.0
1/11/18 253.0
1/12/18 172.0
1/13/18 154.0
1/14/18 176.0
1/15/18 216.0
1/16/18 181.0
1/17/18 201.0
1/18/18 198.0
1/19/18 199.0
1/20/18 144.0
1/21/18 183.0
1/22/18 187.0
1/23/18 219.0
1/24/18 201.0
1/25/18 217.0
1/26/18 198.0
1/27/18 155.0
1/28/18 179.0
1/29/18 218.0
1/30/18 227.0
1/31/18 201.0
2/1/18 197.0
2/2/18 170.0
2/3/18 185.0
2/4/18 190.0
2/5/18 216.0
2/6/18 226.0
2/7/18 214.0
2/8/18 265.0
2/9/18 190.0
2/10/18 137.0
2/11/18 184.0
2/12/18 188.0
2/13/18 245.0
2/14/18 210.0
2/15/18 198.0
2/16/18 181.0
2/17/18 130.0
2/18/18 201.0
2/19/18 309.0
2/20/18 247.0
2/21/18 245.0
2/22/18 243.0
2/23/18 201.0
2/24/18 219.0
2/25/18 204.0
2/26/18 228.0
2/27/18 259.0
2/28/18 254.0
3/1/18 265.0
3/2/18 234.0
3/3/18 197.0
3/4/18 198.0
3/5/18 323.0
3/6/18 235.0
3/7/18 277.0
3/8/18 213.0
3/9/18 248.0
3/10/18 195.0
3/11/18 220.0
3/12/18 257.0
3/13/18 300.0
3/14/18 293.0
3/15/18 300.0
3/16/18 339.0
3/17/18 210.0
3/18/18 222.0
3/19/18 292.0
3/20/18 326.0
3/21/18 258.0
3/22/18 228.0
3/23/18 212.0
3/24/18 206.0
3/25/18 238.0
3/26/18 273.0
3/27/18 243.0
3/28/18 208.0
3/29/18 237.0
3/30/18 170.0
3/31/18 231.0
4/1/18 192.0
4/2/18 266.0
4/3/18 258.0
4/4/18 280.0
4/5/18 244.0
4/6/18 252.0
4/7/18 200.0
4/8/18 238.0
4/9/18 228.0
4/10/18 267.0
4/11/18 318.0
4/12/18 266.0
4/13/18 223.0
4/14/18 263.0
4/15/18 266.0
4/16/18 294.0
4/17/18 348.0
4/18/18 377.0
4/19/18 284.0
4/20/18 240.0
4/21/18 267.0
4/22/18 271.0
4/23/18 247.0
4/24/18 303.0
4/25/18 275.0
4/26/18 251.0
4/27/18 242.0
4/28/18 222.0
4/29/18 227.0
4/30/18 292.0
5/1/18 260.0
5/2/18 344.0
5/3/18 257.0
5/4/18 226.0
5/5/18 227.0
5/6/18 218.0
5/7/18 292.0
5/8/18 304.0
5/9/18 378.0
5/10/18 331.0
5/11/18 282.0
5/12/18 219.0
5/13/18 209.0
5/14/18 264.0
5/15/18 273.0
5/16/18 313.0
5/17/18 289.0
5/18/18 224.0
5/19/18 233.0
5/20/18 276.0
5/21/18 327.0
5/22/18 381.0
5/23/18 318.0
5/24/18 342.0
5/25/18 337.0
5/26/18 228.0
5/27/18 252.0
5/28/18 361.0
5/29/18 378.0
5/30/18 346.0
5/31/18 356.0
6/1/18 306.0
6/2/18 240.0
6/3/18 317.0
6/4/18 320.0
6/5/18 408.0
6/6/18 384.0
6/7/18 365.0
6/8/18 317.0
6/9/18 279.0
6/10/18 253.0
6/11/18 298.0
6/12/18 319.0
6/13/18 314.0
6/14/18 390.0
6/15/18 294.0
6/16/18 289.0
6/17/18 328.0
6/18/18 339.0
6/19/18 407.0
6/20/18 370.0
6/21/18 376.0
6/22/18 320.0
6/23/18 296.0
6/24/18 324.0
6/25/18 470.0
6/26/18 442.0
6/27/18 400.0
6/28/18 354.0
6/29/18 300.0
6/30/18 249.0
7/1/18 303.0
7/2/18 353.0
7/3/18 388.0
7/4/18 368.0
7/5/18 342.0
7/6/18 263.0
7/7/18 237.0
7/8/18 312.0
7/9/18 355.0
7/10/18 358.0
7/11/18 375.0
7/12/18 341.0
7/13/18 346.0
7/14/18 312.0
7/15/18 314.0
7/16/18 376.0
7/17/18 369.0
7/18/18 342.0
7/19/18 368.0
7/20/18 323.0
7/21/18 284.0
7/22/18 296.0
7/23/18 411.0
7/24/18 450.0
7/25/18 342.0
7/26/18 396.0
7/27/18 386.0
7/28/18 299.0
7/29/18 272.0
7/30/18 415.0
7/31/18 394.0
8/1/18 404.0
8/2/18 413.0
8/3/18 287.0
8/4/18 248.0
8/5/18 312.0
8/6/18 430.0
8/7/18 446.0
8/8/18 349.0
8/9/18 397.0
8/10/18 375.0
8/11/18 335.0
8/12/18 418.0
8/13/18 431.0
8/14/18 395.0
8/15/18 336.0
8/16/18 485.0
8/17/18 385.0
8/18/18 342.0
8/19/18 293.0
8/20/18 399.0
8/21/18 414.0
8/22/18 389.0
8/23/18 403.0
8/24/18 346.0
8/25/18 315.0
8/26/18 327.0
8/27/18 452.0
8/28/18 413.0
8/29/18 373.0
8/30/18 350.0
8/31/18 351.0
9/1/18 292.0
9/2/18 403.0
9/3/18 469.0
9/4/18 480.0
9/5/18 402.0
9/6/18 426.0
9/7/18 361.0
9/8/18 294.0
9/9/18 388.0
9/10/18 511.0
9/11/18 400.0
9/12/18 460.0
9/13/18 396.0
9/14/18 330.0
9/15/18 314.0
9/16/18 286.0
9/17/18 389.0
9/18/18 431.0
9/19/18 483.0
9/20/18 376.0
9/21/18 402.0
9/22/18 349.0
9/23/18 319.0
9/24/18 462.0
9/25/18 510.0
9/26/18 529.0
9/27/18 427.0
9/28/18 537.0
9/29/18 370.0
9/30/18 348.0
10/1/18 500.0
10/2/18 396.0
10/3/18 480.0
10/4/18 476.0
10/5/18 449.0
10/6/18 353.0
10/7/18 433.0
10/8/18 448.0
10/9/18 449.0
10/10/18 449.0
10/11/18 511.0
10/12/18 406.0
10/13/18 413.0
10/14/18 349.0
10/15/18 444.0
10/16/18 531.0
10/17/18 681.0
10/18/18 470.0
10/19/18 487.0
10/20/18 406.0
10/21/18 397.0
10/22/18 556.0
10/23/18 508.0
10/24/18 486.0
10/25/18 514.0
10/26/18 454.0
10/27/18 448.0
10/28/18 419.0
10/29/18 642.0
10/30/18 524.0
10/31/18 561.0
11/1/18 514.0
11/2/18 453.0
11/3/18 424.0
11/4/18 334.0
11/5/18 551.0
11/6/18 540.0
11/7/18 619.0
11/8/18 535.0
11/9/18 507.0
11/10/18 382.0
11/11/18 423.0
11/12/18 640.0
11/13/18 512.0
11/14/18 575.0
11/15/18 471.0
11/16/18 488.0
11/17/18 437.0
11/18/18 477.0
11/19/18 588.0
11/20/18 604.0
11/21/18 569.0
11/22/18 532.0
11/23/18 580.0
11/24/18 399.0
11/25/18 478.0
11/26/18 637.0
11/27/18 647.0
11/28/18 649.0
11/29/18 563.0
11/30/18 601.0
12/1/18 374.0
12/2/18 487.0
12/3/18 587.0
12/4/18 562.0
12/5/18 526.0
12/6/18 545.0
12/7/18 527.0
12/8/18 420.0
12/9/18 386.0
12/10/18 505.0
12/11/18 518.0
12/12/18 505.0
12/13/18 522.0
12/14/18 459.0
12/15/18 322.0
12/16/18 372.0
12/17/18 461.0
12/18/18 524.0
12/19/18 460.0
12/20/18 412.0
12/21/18 521.0
12/22/18 396.0
12/23/18 314.0
12/24/18 265.0
12/25/18 283.0
12/26/18 528.0
12/27/18 558.0
12/28/18 449.0
12/29/18 350.0
12/30/18 372.0
12/31/18 391.0
1/1/19 437.0
1/2/19 552.0
1/3/19 527.0
1/4/19 422.0
1/5/19 348.0
1/6/19 452.0
1/7/19 554.0
1/8/19 560.0
1/9/19 599.0
1/10/19 523.0
1/11/19 613.0
1/12/19 437.0
1/13/19 443.0
1/14/19 604.0
1/15/19 557.0
1/16/19 567.0
1/17/19 564.0
1/18/19 498.0
1/19/19 383.0
1/20/19 467.0
1/21/19 625.0
1/22/19 610.0
1/23/19 530.0
1/24/19 613.0
1/25/19 568.0
1/26/19 481.0
1/27/19 482.0
1/28/19 635.0
1/29/19 597.0
1/30/19 546.0
1/31/19 578.0
2/1/19 542.0
2/2/19 456.0
2/3/19 437.0
2/4/19 535.0
2/5/19 598.0
2/6/19 531.0
2/7/19 523.0
2/8/19 510.0
2/9/19 515.0
2/10/19 504.0
2/11/19 604.0
2/12/19 620.0
2/13/19 536.0
2/14/19 503.0
2/15/19 497.0
2/16/19 391.0
2/17/19 443.0
2/18/19 624.0
2/19/19 584.0
2/20/19 536.0
2/21/19 634.0
2/22/19 528.0
2/23/19 441.0
2/24/19 439.0
2/25/19 590.0
2/26/19 546.0
2/27/19 525.0
2/28/19 568.0
3/1/19 490.0
3/2/19 486.0
3/3/19 563.0
3/4/19 590.0
3/5/19 588.0
3/6/19 703.0
3/7/19 615.0
3/8/19 548.0
3/9/19 433.0
3/10/19 524.0
3/11/19 655.0
3/12/19 635.0
3/13/19 687.0
3/14/19 588.0
3/15/19 624.0
3/16/19 566.0
3/17/19 470.0
3/18/19 638.0
3/19/19 680.0
3/20/19 612.0
3/21/19 639.0
3/22/19 648.0
3/23/19 491.0
3/24/19 575.0
3/25/19 619.0
3/26/19 625.0
3/27/19 655.0
3/28/19 611.0
3/29/19 629.0
3/30/19 488.0
3/31/19 567.0
4/1/19 727.0
4/2/19 746.0
4/3/19 689.0
4/4/19 719.0
4/5/19 592.0
4/6/19 609.0
4/7/19 474.0
4/8/19 617.0
4/9/19 713.0
4/10/19 639.0
4/11/19 619.0
4/12/19 635.0
4/13/19 440.0
4/14/19 459.0
4/15/19 692.0
4/16/19 630.0
4/17/19 616.0
4/18/19 600.0
4/19/19 438.0
4/20/19 449.0
4/21/19 497.0
4/22/19 598.0
4/23/19 707.0
4/24/19 677.0
4/25/19 759.0
4/26/19 553.0
4/27/19 512.0
4/28/19 567.0
4/29/19 722.0
4/30/19 583.0
5/1/19 613.0
5/2/19 607.0
5/3/19 675.0
5/4/19 507.0
5/5/19 501.0
5/6/19 625.0
5/7/19 702.0
5/8/19 752.0
5/9/19 757.0
5/10/19 585.0
5/11/19 462.0
5/12/19 523.0
5/13/19 794.0
5/14/19 721.0
5/15/19 694.0
5/16/19 710.0
5/17/19 602.0
5/18/19 560.0
5/19/19 510.0
5/20/19 674.0
5/21/19 726.0
5/22/19 677.0
5/23/19 660.0
5/24/19 672.0
5/25/19 478.0
5/26/19 601.0
5/27/19 795.0
5/28/19 735.0
5/29/19 713.0
5/30/19 669.0
5/31/19 606.0
6/1/19 482.0
6/2/19 558.0
6/3/19 782.0
6/4/19 679.0
6/5/19 625.0
6/6/19 652.0
6/7/19 605.0
6/8/19 618.0
6/9/19 607.0
6/10/19 713.0
6/11/19 736.0
6/12/19 728.0
6/13/19 615.0
6/14/19 666.0
6/15/19 537.0
6/16/19 538.0
6/17/19 668.0
6/18/19 693.0
6/19/19 758.0
6/20/19 689.0
6/21/19 634.0
6/22/19 527.0
6/23/19 546.0
6/24/19 766.0
6/25/19 751.0
6/26/19 817.0
6/27/19 682.0
6/28/19 635.0
6/29/19 494.0
6/30/19 543.0
7/1/19 787.0
7/2/19 757.0
7/3/19 698.0
7/4/19 690.0
7/5/19 605.0
7/6/19 496.0
7/7/19 538.0
7/8/19 670.0
7/9/19 728.0
7/10/19 642.0
7/11/19 574.0
7/12/19 628.0
7/13/19 541.0
7/14/19 536.0
7/15/19 661.0
7/16/19 640.0
7/17/19 593.0
7/18/19 673.0
7/19/19 642.0
7/20/19 571.0
7/21/19 485.0
7/22/19 789.0
7/23/19 707.0
7/24/19 644.0
7/25/19 673.0
7/26/19 645.0
7/27/19 505.0
7/28/19 565.0
7/29/19 801.0
7/30/19 753.0
7/31/19 773.0
8/1/19 721.0
8/2/19 672.0
8/3/19 489.0
8/4/19 510.0
8/5/19 631.0
8/6/19 641.0
8/7/19 732.0
8/8/19 613.0
8/9/19 653.0
8/10/19 503.0
8/11/19 578.0
8/12/19 691.0
8/13/19 660.0
8/14/19 591.0
8/15/19 600.0
8/16/19 615.0
8/17/19 486.0
8/18/19 540.0
8/19/19 373.0
8/20/19 753.0
8/21/19 766.0
8/22/19 759.0
8/23/19 640.0
8/24/19 473.0
8/25/19 582.0
8/26/19 736.0
8/27/19 801.0
8/28/19 697.0
8/29/19 768.0
8/30/19 770.0
8/31/19 651.0
9/1/19 572.0
9/2/19 820.0
9/3/19 716.0
9/4/19 732.0
9/5/19 815.0
9/6/19 844.0
9/7/19 529.0
9/8/19 534.0
9/9/19 809.0
9/10/19 780.0
9/11/19 777.0
9/12/19 679.0
9/13/19 713.0
9/14/19 570.0
9/15/19 606.0
9/16/19 680.0
9/17/19 737.0
9/18/19 683.0
9/19/19 692.0
9/20/19 664.0
9/21/19 580.0
9/22/19 637.0
9/23/19 809.0
9/24/19 825.0
9/25/19 863.0
9/26/19 923.0
9/27/19 804.0
9/28/19 597.0
9/29/19 758.0
9/30/19 809.0
10/1/19 901.0
10/2/19 817.0
10/3/19 765.0
10/4/19 723.0
10/5/19 635.0
10/6/19 615.0
10/7/19 962.0
10/8/19 863.0
10/9/19 907.0
10/10/19 774.0
10/11/19 783.0
10/12/19 623.0
10/13/19 667.0
10/14/19 908.0
10/15/19 871.0
10/16/19 825.0
10/17/19 758.0
10/18/19 680.0
10/19/19 535.0
10/20/19 438.0
10/21/19 736.0
10/22/19 680.0
10/23/19 719.0
10/24/19 715.0
10/25/19 685.0
10/26/19 581.0
10/27/19 619.0
10/28/19 799.0
10/29/19 902.0
10/30/19 842.0
10/31/19 710.0
11/1/19 705.0
11/2/19 555.0
11/3/19 597.0
11/4/19 823.0
11/5/19 923.0
11/6/19 952.0
11/7/19 754.0
11/8/19 807.0
11/9/19 656.0
11/10/19 627.0
11/11/19 863.0
11/12/19 849.0
11/13/19 828.0
11/14/19 807.0
11/15/19 779.0
11/16/19 675.0
11/17/19 704.0
11/18/19 845.0
11/19/19 824.0
11/20/19 960.0
11/21/19 792.0
11/22/19 773.0
11/23/19 641.0
11/24/19 797.0
11/25/19 997.0
11/26/19 995.0
11/27/19 812.0
11/28/19 867.0
11/29/19 847.0
11/30/19 805.0
12/1/19 708.0
12/2/19 1040.0
12/3/19 931.0
12/4/19 932.0
12/5/19 965.0
12/6/19 690.0
12/7/19 693.0
12/8/19 713.0
12/9/19 979.0
12/10/19 920.0
12/11/19 920.0
12/12/19 816.0
12/13/19 781.0
12/14/19 549.0
12/15/19 726.0
12/16/19 863.0
12/17/19 828.0
12/18/19 849.0
12/19/19 801.0
12/20/19 758.0
12/21/19 662.0
12/22/19 650.0
12/23/19 735.0
12/24/19 613.0
12/25/19 617.0
12/26/19 846.0
12/27/19 843.0
12/28/19 826.0
12/29/19 685.0
12/30/19 875.0
12/31/19 714.0
1/1/20 802.0
1/2/20 1323.0
1/3/20 1101.0
1/4/20 831.0
1/5/20 996.0
1/6/20 1115.0
1/7/20 1157.0
1/8/20 1178.0
1/9/20 1204.0
1/10/20 1157.0
1/11/20 813.0
1/12/20 885.0
1/13/20 1072.0
1/14/20 1233.0
1/15/20 1095.0
1/16/20 1074.0
1/17/20 967.0
1/18/20 816.0
1/19/20 842.0
1/20/20 1206.0
1/21/20 1099.0
1/22/20 1073.0
1/23/20 1051.0
1/24/20 1050.0
1/25/20 781.0
1/26/20 866.0
1/27/20 1243.0
1/28/20 1250.0
1/29/20 1195.0
1/30/20 1193.0
1/31/20 1085.0
2/1/20 824.0
2/2/20 889.0
2/3/20 1300.0
2/4/20 1021.0
2/5/20 1060.0
2/6/20 1087.0
2/7/20 955.0
2/8/20 884.0
2/9/20 912.0
2/10/20 1203.0
2/11/20 1193.0
2/12/20 1136.0
2/13/20 998.0
2/14/20 1033.0
2/15/20 845.0
2/16/20 842.0
2/17/20 1236.0
2/18/20 1206.0
2/19/20 1152.0
2/20/20 1219.0
2/21/20 1021.0
2/22/20 787.0
2/23/20 941.0
2/24/20 984.0
2/25/20 1017.0
2/26/20 1232.0
2/27/20 1171.0
2/28/20 1255.0
2/29/20 870.0
3/1/20 909.0
3/2/20 1152.0
3/3/20 1286.0
3/4/20 1158.0
3/5/20 1224.0
3/6/20 1050.0
3/7/20 790.0
3/8/20 858.0
3/9/20 1202.0
3/10/20 1211.0
3/11/20 1227.0
3/12/20 1115.0
3/13/20 956.0
3/14/20 828.0
3/15/20 664.0
3/16/20 835.0
3/17/20 755.0
3/18/20 623.0
3/19/20 678.0
3/20/20 607.0
3/21/20 365.0
3/22/20 411.0
3/23/20 532.0
3/24/20 519.0
3/25/20 539.0
3/26/20 542.0
3/27/20 599.0
3/28/20 468.0
3/29/20 462.0
3/30/20 731.0
3/31/20 637.0
4/1/20 600.0
4/2/20 549.0
4/3/20 565.0
4/4/20 460.0
4/5/20 548.0
4/6/20 608.0
4/7/20 594.0
4/8/20 641.0
4/9/20 588.0
4/10/20 478.0
4/11/20 429.0
4/12/20 427.0
4/13/20 586.0
4/14/20 614.0
4/15/20 546.0
4/16/20 605.0
4/17/20 548.0
4/18/20 530.0
4/19/20 523.0
4/20/20 599.0
4/21/20 584.0
4/22/20 587.0
4/23/20 679.0
4/24/20 670.0
4/25/20 510.0
4/26/20 497.0
4/27/20 628.0
4/28/20 633.0
4/29/20 633.0
4/30/20 661.0
5/1/20 547.0
5/2/20 497.0
5/3/20 515.0
5/4/20 581.0
5/5/20 585.0
5/6/20 681.0
5/7/20 656.0
5/8/20 639.0
5/9/20 480.0
5/10/20 509.0
5/11/20 684.0
5/12/20 667.0
5/13/20 706.0
5/14/20 658.0
5/15/20 604.0
5/16/20 514.0
5/17/20 513.0
5/18/20 652.0
5/19/20 743.0
5/20/20 670.0
5/21/20 734.0
5/22/20 687.0
5/23/20 598.0
5/24/20 534.0
5/25/20 731.0
5/26/20 678.0
5/27/20 760.0
5/28/20 831.0
5/29/20 714.0
5/30/20 641.0
5/31/20 628.0
6/1/20 794.0
6/2/20 829.0
6/3/20 760.0
6/4/20 802.0
6/5/20 822.0
6/6/20 593.0
6/7/20 641.0
6/8/20 791.0
6/9/20 837.0
6/10/20 851.0
6/11/20 845.0
6/12/20 764.0
6/13/20 605.0
6/14/20 593.0
6/15/20 868.0
6/16/20 773.0
6/17/20 917.0
6/18/20 830.0
6/19/20 789.0
6/20/20 581.0
6/21/20 602.0
6/22/20 834.0
6/23/20 853.0
6/24/20 917.0
6/25/20 923.0
6/26/20 799.0
6/27/20 666.0
6/28/20 673.0
6/29/20 952.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment