Skip to content

Commit 673839d

Browse files
committed
Add TqdmHandler
1 parent 8d57384 commit 673839d

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

supar/utils/logging.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,22 @@ def get_logger(name):
1111
return logging.getLogger(name)
1212

1313

14+
class TqdmHandler(logging.StreamHandler):
15+
16+
def __init__(self, *args, **kwargs):
17+
super().__init__(*args, **kwargs)
18+
19+
def emit(self, record):
20+
try:
21+
msg = self.format(record)
22+
tqdm.write(msg)
23+
self.flush()
24+
except (KeyboardInterrupt, SystemExit):
25+
raise
26+
except Exception:
27+
self.handleError(record)
28+
29+
1430
def init_logger(logger,
1531
path=None,
1632
mode='w',
@@ -19,9 +35,9 @@ def init_logger(logger,
1935
verbose=True):
2036
level = level or logging.WARNING
2137
if not handlers:
22-
handlers = [logging.StreamHandler()]
38+
handlers = [TqdmHandler()]
2339
if path:
24-
os.makedirs(os.path.dirname(path), exist_ok=True)
40+
os.makedirs(os.path.dirname(path) or './', exist_ok=True)
2541
handlers.append(logging.FileHandler(path, mode))
2642
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
2743
datefmt='%Y-%m-%d %H:%M:%S',
@@ -33,13 +49,15 @@ def init_logger(logger,
3349
def progress_bar(iterator,
3450
ncols=None,
3551
bar_format='{l_bar}{bar:18}| {n_fmt}/{total_fmt} {elapsed}<{remaining}, {rate_fmt}{postfix}',
36-
leave=True):
52+
leave=False,
53+
**kwargs):
3754
return tqdm(iterator,
3855
ncols=ncols,
3956
bar_format=bar_format,
4057
ascii=True,
4158
disable=(not (logger.level == logging.INFO and is_master())),
42-
leave=leave)
59+
leave=leave,
60+
**kwargs)
4361

4462

4563
logger = get_logger('supar')

0 commit comments

Comments
 (0)