Easy progress reporting for Python
Bars
There are 7 progress bars to choose from:
BarChargingBarFillingSquaresBarFillingCirclesBarIncrementalBarPixelBarShadyBar
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:
SpinnerPieSpinnerMoonSpinnerLineSpinnerPixelSpinner
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pgbar-0.3.tar.gz | 5.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|