Use print() instead of stdout.buffer.write()

This commit is contained in:
Kovid Goyal 2017-02-02 16:30:53 +05:30
parent 71b4ea5a60
commit 688d0f74c4

View File

@ -65,8 +65,10 @@ def read(self, size):
return data
def report_progress(self, size):
sys.stdout.buffer.write(b'\x1b[s')
sys.stdout.buffer.write(b'\x1b[K')
def write(*args):
print(*args, end='')
write('\x1b[s\x1b[K')
frac = float(self.tell()) / self._total
mb_pos = self.tell() / float(1024**2)
mb_tot = self._total / float(1024**2)
@ -75,14 +77,13 @@ def report_progress(self, size):
bit_rate = kb_rate * 1024
eta = int((self._total - self.tell()) / bit_rate) + 1
eta_m, eta_s = eta / 60, eta % 60
sys.stdout.write(
write(
' %.1f%% %.1f/%.1fMB %.1f KB/sec %d minutes, %d seconds left'
% (frac * 100, mb_pos, mb_tot, kb_rate, eta_m, eta_s))
sys.stdout.buffer.write(b'\x1b[u')
write('\x1b[u')
if self.tell() >= self._total:
sys.stdout.write('\n')
t = int(time.time() - self.start_time) + 1
print('Upload took %d minutes and %d seconds at %.1f KB/sec' %
print('\nUpload took %d minutes and %d seconds at %.1f KB/sec' %
(t / 60, t % 60, kb_rate))
sys.stdout.flush()