Skip to content


[ allennlp.common.tee ]


def replace_cr_with_newline(message: str) -> str

TQDM and requests use carriage returns to get the training line to update for each batch without adding more lines to the terminal output. Displaying those in a file won't work correctly, so we'll just make sure that each batch shows up on its one line.

TeeHandler Objects#

class TeeHandler():
 | def __init__(
 |     self,
 |     filename: str,
 |     terminal: TextIO,
 |     file_friendly_terminal_output: bool = False,
 |     silent: bool = False
 | ) -> None

This class behaves similar to the tee command-line utility by writing messages to both a terminal and a file.

It's meant to be used like this to patch sys.stdout and sys.stderr.


sys.stdout = TeeHandler("stdout.log", sys.stdout)
sys.stderr = TeeHandler("stdout.log", sys.stderr)


 | def write(self, message)


 | def flush(self)


 | def isatty(self)

Mirror the API of sys.stdout so that we can check for the presence of a terminal easily.


 | def cleanup(self) -> TextIO