Skip to main content

Easy to use progress bars

Project description

Easy progress reporting for Python

pypi

Demo

Bars

There are 7 progress bars to choose from:

  • Bar

  • ChargingBar

  • FillingSquaresBar

  • FillingCirclesBar

  • IncrementalBar

  • PixelBar

  • ShadyBar

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

from progress.bar import Bar

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

or use any bar of this class as a context manager:

from progress.bar import Bar

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

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:

Name

Value

index

current value

max

maximum value

remaining

max - index

progress

index / max

percent

progress * 100

avg

simple moving average time per item (in seconds)

elapsed

elapsed time in seconds

elapsed_td

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

eta

avg * remaining

eta_td

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

Instead of passing all configuration options on instantiation, 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'
    @property
    def remaining_hours(self):
        return self.eta // 3600

Spinners

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
    spinner.next()

There are 5 predefined spinners:

  • Spinner

  • PieSpinner

  • MoonSpinner

  • LineSpinner

  • PixelSpinner

Installation

Download from PyPi

pip install progress

Other

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

License

progress is licensed under ISC

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.6.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

progress-1.6.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file progress-1.6.1.tar.gz.

File metadata

  • Download URL: progress-1.6.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.10

File hashes

Hashes for progress-1.6.1.tar.gz
Algorithm Hash digest
SHA256 c1ba719f862ce885232a759eab47971fe74dfc7bb76ab8a51ef5940bad35086c
MD5 4261aa287f52d04807a2addf466ee062
BLAKE2b-256 ac263b086f0c5d6c1c18c2430d6fac3a99d79553884ca6cdf759cf256dd43b7d

See more details on using hashes here.

File details

Details for the file progress-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: progress-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.10

File hashes

Hashes for progress-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5239f22f305c12fdc8ce6e0e47f70f21622a935e16eafc4535617112e7c7ea0b
MD5 36e83f05feaa8b1415c8a29b621a3c5c
BLAKE2b-256 4259123aee44a039b212cfb8d90be1adf06496a99b313ee1683aadf90b3d9799

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page