1234567891011121314151617181920212223 |
- import time
- def show_progress(command, step, total, since=None):
- progress = step * 100 // total
- filled = progress // 2
- blank = 50 - filled
- line = '\r%s%% [%s%s]'
- rendered_line = line % (str(progress).rjust(3), '=' * filled, ' ' * blank)
- if since:
- progress_float = float(step) * 100.0 / float(total)
- if progress_float > 0:
- step_time = (time.time() - since) / progress_float
- estimated_time = (100 - progress) * step_time
- clock = time.strftime('%H:%M:%S', time.gmtime(estimated_time))
- rendered_line = '%s %s est.' % (rendered_line, clock)
- else:
- rendered_line = '%s --:--:-- est.' % rendered_line
- command.stdout.write(rendered_line, ending='')
- command.stdout.flush()
|