A Python Progressbar library to provide visual (yet text based) progress to long running operations.
Project description
Travis status:
Coverage:
Introduction
NOTE: This version has been completely rewritten and might not be 100% compatible with the old version. If you encounter any problems while using it please let me know: https://github.com/WoLpH/python-progressbar/issues
A text progress bar is typically used to display the progress of a long running operation, providing a visual cue that processing is underway.
The ProgressBar class manages the current progress, and the format of the line is given by a number of widgets. A widget is an object that may display differently depending on the state of the progress bar. There are many types of widgets:
Timer
ETA
AdaptiveETA
FileTransferSpeed
AdaptiveTransferSpeed
AnimatedMarker
Counter
Percentage
FormatLabel
SimpleProgress
Bar
ReverseBar
BouncingBar
RotatingMarker
DynamicMessage
The progressbar module is very easy to use, yet very powerful. It will also automatically enable features like auto-resizing when the system supports it.
Links
- Documentation
- Package homepage
- My blog
Usage
There are many ways to use Python Progressbar, you can see a few basic examples here but there are many more in the examples file.
Wrapping an iterable
import time
import progressbar
bar = progressbar.ProgressBar()
for i in bar(range(100)):
time.sleep(0.02)
Progressbars with logging
Progressbars with logging require stderr redirection _before_ the StreamHandler is initialized. To make sure the stderr stream has been redirected on time make sure to call progressbar.streams.wrap_stderr() before you initialize the logger.
One option to force early initialization is by using the WRAP_STDERR environment variable, on Linux/Unix systems this can be done through:
# WRAP_STDERR=true python your_script.py
In most cases the following will work as well, as long as you initialize the StreamHandler after the wrapping has taken place.
import time
import logging
import progressbar
progressbar.streams.wrap_stderr()
logging.basicConfig()
bar = progressbar.ProgressBar()
for i in bar(range(10)):
logging.error('Got %d', i)
time.sleep(0.2)
Context wrapper
import time
import progressbar
with progressbar.ProgressBar(max_value=10) as bar:
for i in range(10):
time.sleep(0.1)
bar.update(i)
Combining progressbars with print output
import time
import progressbar
bar = progressbar.ProgressBar(redirect_stdout=True)
for i in range(100):
print 'Some text', i
time.sleep(0.1)
bar.update(i)
Progressbar with unknown length
import time
import progressbar
bar = progressbar.ProgressBar(max_value=progressbar.UnknownLength)
for i in range(20):
time.sleep(0.1)
bar.update(i)
Bar with custom widgets
import time
import progressbar
bar = progressbar.ProgressBar(widgets=[
' [', progressbar.Timer(), '] ',
progressbar.Bar(),
' (', progressbar.ETA(), ') ',
])
for i in bar(range(20)):
time.sleep(0.1)
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
File details
Details for the file progressbar2-3.20.1.tar.gz
.
File metadata
- Download URL: progressbar2-3.20.1.tar.gz
- Upload date:
- Size: 26.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac8a9498ec3ff46e690bf24705dd061bda0cf8976fb7b0f91505ea5668de6df6 |
|
MD5 | 8915e85cd53ca57c4c78378c630e406f |
|
BLAKE2b-256 | 02b6b34d6e78fc2188d7f40dc9e280642237ec2a22316ad0301a657aefee94e8 |
File details
Details for the file progressbar2-3.20.1-py2.py3-none-any.whl
.
File metadata
- Download URL: progressbar2-3.20.1-py2.py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d49aed290db25d6cbfb1e58bc2c6c3955e62fd26a0e69bbbc39f3b14fc396e8c |
|
MD5 | 8d6e72186267e57ae852a1ba0cc98a00 |
|
BLAKE2b-256 | 3491309c2de6017bedf32bcd6a4dfea2196c10370e14386251b293c3613f7f7d |