-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlib.py
51 lines (43 loc) · 1.43 KB
/
lib.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
import time
import requests
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import json
class Timer(object):
"""
Usage:
with Timer(name='Title') as t:
do_something()
"""
def __init__(self, name=None):
self.name= name
def print_time(self, time):
if self.name:
print('Elapsed Time [{}]: {:,.3f}s'.format(self.name, time))
else:
print('Elapsed Time: {:,.3f}s'.format(time))
def measure(self, f, repeat=1):
start = time.time()
for _ in range(repeat):
f()
elapsed = time.time() - start
self.print_time(elapsed)
def __enter__(self):
self.start = time.time()
def __exit__(self, exception_type, exception_value, traceback):
elapsed = time.time() - self.start
self.print_time(elapsed)
def notify(string='done'):
# send a personal notification to Namgyu
headers = {
'Content-type': 'application/json',
}
data = {
'text': '[CR] {}'.format(string),
}
data = json.dumps(data)
response = requests.post('https://hooks.slack.com/services/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', headers=headers, data=data)
def onehot(labels):
# generate onehot labels from list of string labels
labelize = LabelEncoder().fit_transform
onehot = OneHotEncoder(sparse=False).fit_transform
return onehot(labelize(list(labels)).reshape(-1, 1))