Skip to main content

Easy to use progress bars

Project description

Easy progress reporting for Python


There are 6 progress bars to choose from:

  • Bar

  • ChargingBar

  • FillingSquaresBar

  • FillingCirclesBar

  • IncrementalBar

  • ShadyBar

To use them, just call next to advance and finish to finish.

from import Bar

bar = Bar('Processing', max=20)
for i in range(20):
    # Do some work

The result will be a bar like the following:

Processing |#############                   | 42/100

To simplify the common case where the work is done in an iterator, you can use the iter method.

for i in Bar('Processing').iter(it):
    # Do some work

Progress bars are very customizable, you can change their width, their fill character, their suffix and more.

bar = Bar('Loading', fill='@', suffix='%(percent)d%%')

This will produce a bar like the following:

Loading |@@@@@@@@@@@@@                   | 42%

You can use a number of template arguments in message and suffix:




current value


maximum value


max - index


index / max


progress * 100


simple moving average time per item (in seconds)


elapsed time in seconds


elapsed as a timedelta (useful for printing as a string)


avg * remaining


eta as a timedelta (useful for printing as a string)

Instead of passing all configuration options on instatiation, you can create your custom subclass.

class FancyBar(Bar):
    message = 'Loading'
    fill = '*'
    suffix = '%(percent).1f%% - %(eta)ds'

You can also override any of the arguments or create your own.

class SlowBar(Bar):
    suffix = '%(remaining_hours)d hours remaining'
    def remaining_hours(self):
        return self.eta // 3600


For actions with an unknown number of steps you can use a spinner.

from progress.spinner import Spinner

spinner = Spinner('Loading ')
while state != 'FINISHED':
    # Do some work

There are 4 predefined spinners:

  • Spinner

  • PieSpinner

  • MoonSpinner

  • LineSpinner


Thera are a number of other classes available too, please check the source or subclass one of them to create your own.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

progress-1.2.tar.gz (5.0 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page