Spaces:
Running on Zero
Running on Zero
File size: 1,892 Bytes
d43892c | 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 | import sys
import time
class Logger(object):
def __init__(self, outfile):
self.terminal = sys.stdout
self.log_path = outfile
now = time.strftime("%c")
self.write('================ (%s) ================\n' % now)
def write(self, message):
self.terminal.write(message)
with open(self.log_path, mode='a') as f:
f.write(message)
def write_dict(self, dict):
message = ''
for k, v in dict.items():
message += '%s: %.7f ' % (k, v)
self.write(message)
def write_dict_str(self, dict):
message = ''
for k, v in dict.items():
message += '%s: %s ' % (k, v)
self.write(message)
def flush(self):
self.terminal.flush()
class Timer:
def __init__(self, starting_msg = None):
self.start = time.time()
self.stage_start = self.start
if starting_msg is not None:
print(starting_msg, time.ctime(time.time()))
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, exc_tb):
return
def update_progress(self, progress):
self.elapsed = time.time() - self.start
self.est_total = self.elapsed / progress
self.est_remaining = self.est_total - self.elapsed
self.est_finish = int(self.start + self.est_total)
def str_estimated_complete(self):
return str(time.ctime(self.est_finish))
def str_estimated_remaining(self):
return str(self.est_remaining/3600) + 'h'
def estimated_remaining(self):
return self.est_remaining/3600
def get_stage_elapsed(self):
return time.time() - self.stage_start
def reset_stage(self):
self.stage_start = time.time()
def lapse(self):
out = time.time() - self.stage_start
self.stage_start = time.time()
return out
|