-
Notifications
You must be signed in to change notification settings - Fork 1
/
misc.py
39 lines (28 loc) · 1.05 KB
/
misc.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
import logging
from collections import OrderedDict
class Registry:
def __init__(self): self.dd = OrderedDict()
def keys(self): return list(self.dd.keys())
def values(self): return list(self.dd.values())
def items(self): return self.dd.items()
def get(self, key, default=None): return self.dd.get(key, default)
def __getitem__(self, key): return self.dd[key]
def put(self, key, val):
# print(self.keys())
assert (key not in self.dd)
self.dd[key] = val
def reg(self, tp):
self.put(tp.__name__, tp)
return tp
def setup_logger(logger=None, name='', log_level=logging.INFO): # INFO DEBUG
if not logger: logger = logging.getLogger(name)
if logger.hasHandlers(): logger.propagate = 0
logger.setLevel(log_level)
ch = logging.StreamHandler()
formatter = logging.Formatter(
'%(asctime)s|%(name)s|%(message)s',
# logging.BASIC_FORMAT,
"%H:%M:%S")
ch.setFormatter(formatter)
logger.addHandler(ch)
return logger