1#!/usr/bin/env python 2""" 3A very simple progress bar which keep track of the progress as we consume an 4iterator. 5""" 6from __future__ import unicode_literals 7 8import time 9 10from prompt_toolkit.formatted_text import HTML 11from prompt_toolkit.shortcuts import ProgressBar 12from prompt_toolkit.shortcuts.progress_bar import formatters 13from prompt_toolkit.styles import Style 14 15style = Style.from_dict({ 16 'progressbar title': '#0000ff', 17 'item-title': '#ff4400 underline', 18 'percentage': '#00ff00', 19 'bar-a': 'bg:#00ff00 #004400', 20 'bar-b': 'bg:#00ff00 #000000', 21 'bar-c': 'bg:#000000 #000000', 22 'tildes': '#444488', 23 'time-left': 'bg:#88ff88 #ffffff', 24 'spinning-wheel': 'bg:#ffff00 #000000', 25}) 26 27 28def main(): 29 custom_formatters = [ 30 formatters.Label(), 31 formatters.Text(' '), 32 formatters.SpinningWheel(), 33 formatters.Text(' '), 34 formatters.Text(HTML('<tildes>~~~</tildes>')), 35 formatters.Bar(sym_a='#', sym_b='#', sym_c='.'), 36 formatters.Text(' left: '), 37 formatters.TimeLeft(), 38 ] 39 with ProgressBar(title='Progress bar example with custom formatter.', 40 formatters=custom_formatters, style=style) as pb: 41 42 for i in pb(range(20), label='Downloading...'): 43 time.sleep(1) 44 45 46if __name__ == '__main__': 47 main() 48