Beispiel #1
0
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')
Beispiel #2
0
 def test_mebibytes(self):
     bytes_ = utils.GIBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.MEBIBYTE, 'MiB')
Beispiel #3
0
 def test_gibibytes(self):
     bytes_ = utils.TEBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.GIBIBYTE, 'GiB')
Beispiel #4
0
 def test_bytes(self):
     bytes_ = utils.KIBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_, 'B')
Beispiel #5
0
 def test_kibibytes(self):
     bytes_ = utils.MEBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.KIBIBYTE, 'KiB')
Beispiel #6
0
 def test_specify_unit(self):
     bytes_ = utils.KIBIBYTE
     assert utils.bytes_to_unit_pair(bytes_, 'GiB') == (bytes_ / utils.GIBIBYTE, 'GiB')
Beispiel #7
0
 def test_yobibytes(self):
     bytes_ = utils.YOBIBYTE
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.YOBIBYTE, 'YiB')
Beispiel #8
0
 def test_zebibytes(self):
     bytes_ = utils.YOBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.ZEBIBYTE, 'ZiB')
Beispiel #9
0
 def test_exbibytes(self):
     bytes_ = utils.ZEBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.EXBIBYTE, 'EiB')
Beispiel #10
0
 def test_pebibytes(self):
     bytes_ = utils.EXBIBYTE - 1
     assert utils.bytes_to_unit_pair(bytes_) == (bytes_ / utils.PEBIBYTE, 'PiB')