Skip to main content

Easy progress reporting for Python

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:

.. code-block:: python

from pgbar.pgbar 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:

.. code-block:: python

from pgbar.pgbar 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:

.. code-block:: python

for pgbar.pgbar 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:

.. code-block:: python

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:

.. code-block:: python

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

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

.. code-block:: python

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:

.. code-block:: python

from pgbar.pgspinner 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

.. code-block:: shell

pip install pgbar

Metadata

Release files for pgbar 0.3

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

Source distribution (sdist)

Source distribution for pgbar 0.3
File Size Uploaded
pgbar-0.3.tar.gz 5.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pgbar 0.3
File Interpreter ABI Platform
pgbar-0.3-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / pgbar-0.3.tar.gz

Download URL pgbar-0.3.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9655f19f1eb3d69ff8dcddd261cf61dd5078fd27d624cdfffb07b61bbe4b265a
BLAKE2b-256 checksum
How to use checksums
39a538636277e6f2596e508f463dd4406a0f19960f639118d2dd8929f0b95e01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.4

Release files / pgbar-0.3-py3-none-any.whl

Download URL pgbar-0.3-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d8ad05b4909c6ee325d14de4a40f700a122f498eb5e7c654c82a296b24df11bb
BLAKE2b-256 checksum
How to use checksums
f699f8a568ee7f3fbe87fcd59f1236fcb7933cd780030112446ef6b01d86916d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.4

Release history Release notifications | RSS feed

This release

0.3 This release

2 release files

0.2

2 release files

0.1

2 release files

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