def show_progress(session, method='get', silent=False): print('') if method == 'get': for file in session.unfinished: print('Getting {}'.format(file.remote_path)) else: if not session.local_path: time.sleep(.5) print('\nSending {}\n'.format(session.local_path)) print('\n') session.run() previous_output_length = 0 final_update_needed = True if not silent else False while session.is_running or final_update_needed: time.sleep(.5) if not silent: # See if we finished since initial check; if so, end loop. if not session.is_running: final_update_needed = False bps, eta, total, size = session.tracker.get_progress() bps_value, bps_unit = bytes_to_unit_pair(bps) eta = seconds_to_eta_string(eta) s_value, s_unit = bytes_to_unit_pair(size) t_value, t_unit = bytes_to_unit_pair(total, s_unit if size else None) speed = 'Speed: {:.2f} {}/s'.format(bps_value, bps_unit) eta = 'ETA: {}'.format(eta) file_progress = 'File: {:.2f} {} / {:.2f} {}'.format(t_value, t_unit, s_value, s_unit) status = '{} <|> {} <|> {}'.format(speed, eta, file_progress) status_length = len(status) if status_length < previous_output_length: status += (previous_output_length - status_length) * ' ' previous_output_length = len(status) s = '{}\r'.format(status) sys.stdout.write(s) sys.stdout.flush() #print('\n', session.finished, session.unfinished, session.errors, session.workers) print('\n\n') if method == 'get': for file in session.finished: print('Saved to {}'.format(file.local_path)) else: print('\n\nSent to {}\n'.format(session.remote_path)) print('\n') if not session.errors: print('Transfer successful') else: print('Error. Try again with --resume')
def test_mebibytes(self): bytes_ = utils.GIBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.MEBIBYTE, 'MiB')
def test_gibibytes(self): bytes_ = utils.TEBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.GIBIBYTE, 'GiB')
def test_bytes(self): bytes_ = utils.KIBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_, 'B')
def test_kibibytes(self): bytes_ = utils.MEBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.KIBIBYTE, 'KiB')
def test_specify_unit(self): bytes_ = utils.KIBIBYTE assert utils.bytes_to_unit_pair(bytes_, 'GiB') == (bytes_ / utils.GIBIBYTE, 'GiB')
def test_yobibytes(self): bytes_ = utils.YOBIBYTE assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.YOBIBYTE, 'YiB')
def test_zebibytes(self): bytes_ = utils.YOBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.ZEBIBYTE, 'ZiB')
def test_exbibytes(self): bytes_ = utils.ZEBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.EXBIBYTE, 'EiB')
def test_pebibytes(self): bytes_ = utils.EXBIBYTE - 1 assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.PEBIBYTE, 'PiB')