merging... · commit-0/python-progressbar@951f776 · GitHub
Skip to content

Commit 951f776

Browse files
committed
merging...
2 parents 5b648bd + 3e4bca1 commit 951f776

5 files changed

Lines changed: 32 additions & 34 deletions

File tree

examples.py

Lines changed: 2 additions & 2 deletions

progressbar/bar.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,10 @@ def start(self, *args, **kwargs):
173173
DefaultFdMixin.start(self, *args, **kwargs)
174174

175175
def update(self, value=None):
176-
if utils.streams.needs_flush():
177-
if not self.line_breaks:
178-
self.fd.write('\r' + ' ' * self.term_width + '\r')
179-
utils.streams.flush()
176+
if not self.line_breaks and utils.streams.needs_clear():
177+
self.fd.write('\r' + ' ' * self.term_width + '\r')
178+
179+
utils.streams.flush()
180180
DefaultFdMixin.update(self, value=value)
181181

182182
def finish(self, end='\n'):

progressbar/utils.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -138,22 +138,22 @@ def __init__(self, target, capturing=False, listeners=set()):
138138
self.target = target
139139
self.capturing = capturing
140140
self.listeners = listeners
141+
self.needs_clear = False
141142

142143
def write(self, value):
143144
if self.capturing:
144145
self.buffer.write(value)
145146
if '\n' in value:
147+
self.needs_clear = True
146148
for listener in self.listeners: # pragma: no branch
147149
listener.update()
148150
else:
149151
self.target.write(value)
150152

151153
def flush(self):
154+
self.needs_clear = False
152155
self.buffer.flush()
153156

154-
def _needs_flush(self):
155-
return bool(self.buffer.getvalue())
156-
157157
def _flush(self):
158158
value = self.buffer.getvalue()
159159
if value:
@@ -268,14 +268,10 @@ def unwrap_stderr(self):
268268
sys.stderr = self.original_stderr
269269
self.wrapped_stderr = 0
270270

271-
def needs_flush(self):
272-
if self.wrapped_stdout:
273-
if self.stdout._needs_flush():
274-
return True
275-
if self.wrapped_stderr:
276-
if self.stderr._needs_flush():
277-
return True
278-
return False
271+
def needs_clear(self): # pragma: no cover
272+
stdout_needs_clear = getattr(self.stdout, 'needs_clear', False)
273+
stderr_needs_clear = getattr(self.stderr, 'needs_clear', False)
274+
return stderr_needs_clear or stdout_needs_clear
279275

280276
def flush(self):
281277
if self.wrapped_stdout: # pragma: no branch

tests/test_monitor_progress.py

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -172,32 +172,18 @@ def test_no_line_breaks(testdir):
172172
line_breaks=False,
173173
items=list(range(5)),
174174
)))
175-
pprint.pprint(result.stderr.str(), width=70)
176-
assert result.stderr.str() == u'\n'.join((
177-
u'',
178-
u' ',
175+
pprint.pprint(result.stderr.lines, width=70)
176+
assert result.stderr.lines == [
179177
u'',
180178
u'N/A%| |',
181-
u' ',
182-
u'',
183179
u' 20%|########## |',
184-
u' ',
185-
u'',
186180
u' 40%|##################### |',
187-
u' ',
188-
u'',
189181
u' 60%|################################ |',
190-
u' ',
191-
u'',
192182
u' 80%|########################################### |',
193-
u' ',
194-
u'',
195183
u'100%|######################################################|',
196184
u'',
197-
u' ',
198-
u'',
199185
u'100%|######################################################|'
200-
))
186+
]
201187

202188

203189
def test_colors(testdir):

tests/test_stream.py

Lines changed: 16 additions & 0 deletions

0 commit comments

Comments
 (0)