Enlighten Progress Bar is a console progress bar module for Python. (Yes, another one.)
The main advantage of Enlighten is it allows writing to stdout and stderr without any redirection.
https://python-enlighten.readthedocs.io
$ pip install enlighten
(EPEL repositories must be configured)
$ yum install python-enlighten
$ dnf install python2-enlighten
$ dnf install python3-enlighten
For a basic status bar, invoke the Counter class directly.
import time
import enlighten
pbar = enlighten.Counter(total=100, desc='Basic', unit='ticks')
for num in range(100):
time.sleep(0.1) # Simulate work
pbar.update()
To maintain multiple progress bars simultaneously or write to the console, a manager is required.
Advanced output will only work when the output stream, sys.stdout
by default,
is attached to a TTY. get_manager can be used to get a manager instance.
It will return a disabled Manager instance if the stream is not attached to a TTY
and an enabled instance if it is.
import time
import enlighten
manager = enlighten.get_manager()
ticks = manager.counter(total=100, desc='Ticks', unit='ticks')
tocks = manager.counter(total=20, desc='Tocks', unit='tocks')
for num in range(100):
time.sleep(0.1) # Simulate work
print(num)
ticks.update()
if not num % 5:
tocks.update()
manager.stop()
The Counter class has two output formats, progress bar and counter.
The progress bar format is used when a total is not None
and the count is less than the
total. If neither of these conditions are met, the counter format is used:
import time
import enlighten
counter = enlighten.Counter(desc='Basic', unit='ticks')
for num in range(100):
time.sleep(0.1) # Simulate work
counter.update()
- basic - Basic progress bar
- context manager - Managers and counters as context managers
- floats - Support totals and counts that are
floats
- multicolored - Multicolored progress bars
- multiple with logging - Nested progress bars and logging
- FTP downloader - Show progress downloading files from FTP
Enlighten is highly configurable. For information on modifying the output, see the Series and Format sections of the Counter documentation.