Easy to use progress bars
Project description
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:
from progress.bar import Bar
bar = Bar('Processing', max=20)
for i in range(20):
# Do some work
bar.next()
bar.finish()
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:
for i 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:
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:
class FancyBar(Bar):
message = 'Loading'
fill = '*'
suffix = '%(percent).1f%% - %(eta)ds'
You can also override any of the arguments or create your own:
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:
from progress.spinner import Spinner
spinner = Spinner('Loading ')
while state != 'FINISHED':
# Do some work
spinner.next()
There are 5 predefined spinners:
Spinner
PieSpinner
MoonSpinner
LineSpinner
PixelSpinner
Other
There are a number of other classes available too, please check the source or subclass one of them to create your own.
License
progress is licensed under ISC
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.