This repository has been archived by the owner on Sep 13, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
formats.py
111 lines (78 loc) · 2.97 KB
/
formats.py
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import sys
import csv
from calendar import day_name
from datetime import timedelta
import numpy as np
from base import WeekSpace, DAY_IN_WEEK
class ImportFile(object):
"""
"""
def __init__(self, fname):
self._fname = fname
def base(self):
pass
def csv(self, debug=False):
"""
"""
reader = csv.reader(open(self._fname, newline=''), delimiter=',', quotechar='|')
raw = []
data = []
for line in reader:
raw.append(line)
if debug:
print(','.join(line))
for line in raw:
data.append(line)
return data
class ExportFile(object):
"""
"""
def __init__(self, week, fname):
self.week = week
self._fname = fname
def base(self):
pass
def csv(self, debug=False):
with open(self._fname, 'w', newline='') as f:
writer = csv.writer(f, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
index = []
sub_index = []
num = []
title = []
description = []
state = []
start = []
end = []
loop_iter = 0
for j in range(self.week.get_day(0).num_space):
for i in range(DAY_IN_WEEK):
sub_index.append(loop_iter)
if i % 7 == 6:
index.append(sub_index)
sub_index = []
num.append(str(self.week.get_space(i, j).num))
title.append(self.week.get_space(i, j).title)
description.append(self.week.get_space(i, j).description)
state.append(str(self.week.get_space(i, j).state))
min_start = self.week.get_space(i, j).start
min_end = self.week.get_space(i, j).end
hours_start = str(timedelta(minutes=min_start))[:-3]
hours_end = str(timedelta(minutes=min_end))[:-3]
if min_start >= 1440:
hours_start = str(timedelta(minutes=min_start))[7:11]
elif min_end >= 1440:
hours_end = str(timedelta(minutes=min_end))[7:11]
start.append(str(hours_start))
end.append(str(hours_end))
loop_iter = loop_iter + 1
for l in range(DAY_IN_WEEK):
for k in range(self.week.get_day(0).num_space):
writer.writerow(np.take(num, index[k]))
writer.writerow(np.take(title, index[k]))
writer.writerow(np.take(description, index[k]))
writer.writerow(np.take(state, index[k]))
writer.writerow(np.take(start, index[k]))
writer.writerow(np.take(end, index[k]))
if __name__ == '__main__':
ImportFile("FreeTime.csv").csv()
# ExportFile(WeekSpace(0, 0), 'FreeTime.csv').csv()