Terminal Progress Bar
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pgbar-0.3.tar.gz.
File metadata
- Download URL: pgbar-0.3.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9655f19f1eb3d69ff8dcddd261cf61dd5078fd27d624cdfffb07b61bbe4b265a
|
|
| MD5 |
564fe9959020c7cce4a80404b49a23f6
|
|
| BLAKE2b-256 |
39a538636277e6f2596e508f463dd4406a0f19960f639118d2dd8929f0b95e01
|
File details
Details for the file pgbar-0.3-py3-none-any.whl.
File metadata
- Download URL: pgbar-0.3-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8ad05b4909c6ee325d14de4a40f700a122f498eb5e7c654c82a296b24df11bb
|
|
| MD5 |
4b4c35adcb79a8842c7445632be3eb50
|
|
| BLAKE2b-256 |
f699f8a568ee7f3fbe87fcd59f1236fcb7933cd780030112446ef6b01d86916d
|