Skip to main content

Easy progress reporting for Python

Bars

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 progress.bar import Bar

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

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 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'
    @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 4 predefined spinners:

  • Spinner

  • PieSpinner

  • MoonSpinner

  • LineSpinner

Other

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

Metadata

Release files for progress 1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for progress 1.2
File Size Uploaded
progress-1.2.tar.gz 5.0 kB Details

Release files / progress-1.2.tar.gz

Download URL progress-1.2.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5b6a50f9ac76820f619d7789b5354881c8c10060a64047e415868d8f503cc2eb
BLAKE2b-256 checksum
How to use checksums
7454bb538ae57f32fca8bf65c837d3f1715f7c17ae7734d87f4a9a56dab6e982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.6.1

2 release files

1.6

1 release file

1.5

1 release file

1.4

1 release file

1.3

1 release file

This release

1.2 This release

1 release file

1.1

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page