blob: 04f213d7841f13b01dcc5bdbda915b14ef024b1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import os
import csv
def sec_to_min(sec):
"""converts seconds to MM:SS"""
mins = int(sec / 60)
sec_left = sec % 60
return str(mins).zfill(2) + ":" + str(sec_left).zfill(2)
def sesh_to_log(session, filename):
"""writes session dict to logfile specified"""
fields = []
for field in session.keys():
fields.append(field)
if os.path.exists(filename):
logmode = 'a'
else:
logmode = 'w'
with open(filename, logmode) as logfile:
writer = csv.DictWriter(logfile, fieldnames=fields)
if logmode == 'w':
writer.writeheader()
writer.writerow(session)
def per_tag_per_day(file):
"""returns list of dicts, each has date, tag and time spent per tag"""
reader = csv.DictReader(file)
rows = [] # need to make into list to transverse backwards
for row in reader:
rows.append(row)
# list of dicts; each dict is tag: time_spent
day_times = []
cur = -1
for i in range(len(rows)):
date = rows[i]['date']
tag = rows[i]['tag']
if i > 0 and date == rows[i-1]['date']:
if rows[i]['type'] == 'focus':
day_times[cur][tag] = day_times[cur].get(tag, 0) + int(rows[i]['elapsed'])
else:
cur += 1
day_times.append({"date": date, tag: int(rows[i]['elapsed'])})
return day_times
|