[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/commit-0/python-progressbar/multibar/tests/original_examples.py [Back]  [Original]

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import time

from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \
    AdaptiveETA, FileTransferSpeed, FormatLabel, Percentage, \
    ProgressBar, ReverseBar, RotatingMarker, \
    SimpleProgress, Timer, UnknownLength

examples = []
def example(fn):
    try: name = 'Example %d' % int(fn.__name__[7:])
    except: name = fn.__name__

    def wrapped():
        try:
            sys.stdout.write('Running: %s\n' % name)
            fn()
            sys.stdout.write('\n')
        except KeyboardInterrupt:
            sys.stdout.write('\nSkipping example.\n\n')

    examples.append(wrapped)
    return wrapped

@example
def example0():
    pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()
    for i in range(300):
        time.sleep(0.01)
        pbar.update(i+1)
    pbar.finish()

@example
def example1():
    widgets = ['Test: ', Percentage(), ' ', Bar(marker=RotatingMarker()),
               ' ', ETA(), ' ', FileTransferSpeed()]
    pbar = ProgressBar(widgets=widgets, maxval=10000).start()
    for i in range(1000):
        # do something
        pbar.update(10*i+1)
    pbar.finish()

@example
def example2():
    class CrazyFileTransferSpeed(FileTransferSpeed):
        """It's bigger between 45 and 80 percent."""
        def update(self, pbar):
            if 45 < pbar.percentage() < 80:
                return 'Bigger Now ' + FileTransferSpeed.update(self,pbar)
            else:
                return FileTransferSpeed.update(self,pbar)

    widgets = [CrazyFileTransferSpeed(),'  ',
               Percentage(),' ', ETA()]
    pbar = ProgressBar(widgets=widgets, maxval=10000)
    # maybe do something
    pbar.start()
    for i in range(2000):
        # do something
        pbar.update(5*i+1)
    pbar.finish()

@example
def example3():
    widgets = [Bar('>'), ' ', ETA(), ' ', ReverseBar(' 400) * 0.9)
        pbar.update(i + 1)
    pbar.finish()

@example
def example19():
  pbar = ProgressBar()
  for i in pbar([]):
    pass
  pbar.finish()

@example
def example20():
    """Widgets that behave differently when length is unknown"""
    widgets = ['[When length is unknown at first]',
               ' Progress: ', SimpleProgress(),
               ', Percent: ', Percentage(),
               ' ', ETA(),
               ' ', AdaptiveETA()]
    pbar = ProgressBar(widgets=widgets, maxval=UnknownLength)
    pbar.start()
    for i in range(20):
        time.sleep(0.5)
        if i == 10:
            pbar.maxval = 20
        pbar.update(i + 1)
    pbar.finish()

if __name__ == '__main__':
    try:
        for example in examples: example()
    except KeyboardInterrupt:
        sys.stdout.write('\nQuitting examples.\n')

Web Proxy Viewer  |  New URL  |  Original Page