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()
or use any bar of this class as a context manager:
from progress.bar 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:
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
:
Instead of passing all configuration options on instantiation, 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
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
Download from PyPi
There are a number of other classes available too, please check the source or subclass one of them to create your own.
progress is licensed under ISC
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4