-
Notifications
You must be signed in to change notification settings - Fork 0
/
timer.py
42 lines (33 loc) · 1017 Bytes
/
timer.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
import time
def __print_time__(name, diff):
print("Time used {}: {:.2f}s".format(name, diff))
class SimpleTimer:
__slots__ = 'time', 'name'
def __init__(self, name=None):
self.time = None
self.name = None
if name is not None:
self.set(name)
def set(self, name):
self.time = time.time()
self.name = name
def report(self, min=0):
d = time.time() - self.time
if d > min:
__print_time__(self.name, d)
class Timer:
def __init__(self, set_name=None):
self.timers = {}
self.last = []
if set_name is not None:
self.set(set_name)
def set(self, name):
self.timers[name] = time.time()
self.last.append(name)
def report(self, name=None):
if name is None:
name = self.last.pop()
if name is None:
print("Timer: ERROR. Nothing to report.")
else:
__print_time__(name, time.time() - self.timers[name])