From c76da39d1ad914d1694eae6e356edce3d3922f1d Mon Sep 17 00:00:00 2001 From: Giorgos Verigakis Date: Wed, 9 May 2012 16:56:17 +0300 Subject: [PATCH] Use ANSI clear line instead of tracking line width --- progress/helpers.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/progress/helpers.py b/progress/helpers.py index bfc1c7d..48194f7 100644 --- a/progress/helpers.py +++ b/progress/helpers.py @@ -37,20 +37,19 @@ class WriteMixin(object): class WritelnMixin(object): def __init__(self, message=None, **kwargs): super(WritelnMixin, self).__init__(**kwargs) - self.max_line_width = 0 if message: self.message = message - def writeln(self, line): - if not self.file.isatty(): - return - if len(line) > self.max_line_width: - self.max_line_width = len(line) - else: - line += ' ' * (self.max_line_width - len(line)) # Add padding - print('\r' + line, end='', file=self.file) - self.file.flush() + def clearln(self): + if self.file.isatty(): + print('\r\x1b[K', end='', file=self.file) + + def writeln(self, line): + if self.file.isatty(): + self.clearln() + print(line, end='', file=self.file) + self.file.flush() def finish(self): if self.file.isatty():