Skip to content

Commit d22a6c0

Browse files
committed
Only setup tqdm logging if stderr is a tty
1 parent 3412ecb commit d22a6c0

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

requake/config/rq_setup.py

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,29 @@ def new(*args):
9090
return new
9191

9292

93+
def _setup_tqdm_logging(logger_root):
94+
"""Set up a tqdm logging handler."""
95+
96+
class TqdmLoggingHandler(logging.Handler):
97+
"""A logging handler that writes to tqdm."""
98+
def __init__(self, level=logging.NOTSET):
99+
super().__init__(level)
100+
101+
def emit(self, record):
102+
try:
103+
msg = self.format(record)
104+
tqdm.tqdm.write(msg)
105+
self.flush()
106+
except (ValueError, TypeError, IOError, OSError):
107+
self.handleError(record)
108+
console = TqdmLoggingHandler()
109+
console.setLevel(logging.INFO)
110+
# Add logger color coding on all platforms but win32
111+
if sys.platform != 'win32' and sys.stdout.isatty():
112+
console.emit = _color_handler_emit(console.emit)
113+
logger_root.addHandler(console)
114+
115+
93116
def _setup_logging(progname, action_name):
94117
"""Set up the logging infrastructure."""
95118
global logger
@@ -118,24 +141,14 @@ def _setup_logging(progname, action_name):
118141
filehand.setFormatter(formatter)
119142
logger_root.addHandler(filehand)
120143

121-
class TqdmLoggingHandler(logging.Handler):
122-
"""A logging handler that writes to tqdm."""
123-
def __init__(self, level=logging.NOTSET):
124-
super().__init__(level)
125-
126-
def emit(self, record):
127-
try:
128-
msg = self.format(record)
129-
tqdm.tqdm.write(msg)
130-
self.flush()
131-
except (ValueError, TypeError, IOError, OSError):
132-
self.handleError(record)
133-
console = TqdmLoggingHandler()
134-
console.setLevel(logging.INFO)
135-
# Add logger color coding on all platforms but win32
136-
if sys.platform != 'win32' and sys.stdout.isatty():
137-
console.emit = _color_handler_emit(console.emit)
138-
logger_root.addHandler(console)
144+
if sys.stderr.isatty():
145+
_setup_tqdm_logging(logger_root)
146+
else:
147+
console = logging.StreamHandler()
148+
console.setLevel(logging.INFO)
149+
formatter = logging.Formatter('%(levelname)-8s %(message)s')
150+
console.setFormatter(formatter)
151+
logger_root.addHandler(console)
139152

140153
logger = logging.getLogger(progname)
141154

0 commit comments

Comments
 (0)