Package: awesome-progress-bar
Awesome progress barIt's a progress bar for the terminal. But why it is awesome?It has thread mode. This way progress bar can run in the parallel.It's animated with ASCII characters.It also measures elapsed time.It's user-friendly and customizable.Why does progress bar need to be run in the parallel mode?The bar should be updated when it is time to. Imagine we are doing something in theforloop and each iteration we update its state. But each iteration can take different amount
of time. And each iteration can be longer than 1 minute. And without threads the animation
would have non-constant amount of FPS.How to useInitializationParameters:totalAmount of iterationsprefixA short message before the progress bar. Default is'Progress'suffixA short message after the progress bar. Default is''fillA character that will be used as progress bar filler. Default is'='bar_lengthThe length of the whole string (including prefix, spinner, progress bar, percents and 
        suffix). Default is equal to the minimum between terminal's width and 100update_periodThe duration of pause between iterations in seconds. Default is0.1. Works 
        only ifuse_threadisTrueuse_timeIfTruethere will be an information about elapsed time in the center of 
        the progress bar written intime_formatformat. Default isTruetime_formatString, that should include'hh','mm'or/and'ss'.'hh'will be replaced with amount of elapsed hours,'mm'- minutes,'ss'- seconds. Default is'mm:ss'use_threadIfTrueProgressBar will create extra thread. Default isTruespinner_typeOne of['sb', 'db', 's']. With'sb'progress bar will print 
        spinner consisting of 1 Braille pattern.'db'- 2 Braille patterns.'s'- a slash. Default is'sb'use_spinnerIfTruethe spinner will be shown. Default isTruelast_charSomething, that will be printed after the progress is done. Default is'\n'use_etaIfTruethe information about approximate remaining time will be printed. 
        Default isFalseeta_formatThe format of ETA. Similar to thetime_format. Default is equal to thetime_formatMethodsiter(append='')Used for tracking the progress.In the thread mode only increases the number of iteration.Without extra threadbar.iter()prints the bar each time user call it.Parameters:append:A string to append after the bar. The appended text doesn't effect 
                on the progress bar width.get_time_passed (return_str=True)Returns the time spent.If the progress is done returns bar's operating time. If not - returns the time elapsed 
                from the progress start.Parameters:return_str:IfTruereturns time in thetime_formatformat. If not returns just amount of secondsstop()Stops the bar in the thread mode.If the bar doesn't call theiterfunction the required number of times, the 
                created thread will run until you call the stop function.wait()Blocks the program until bar is dead.The bar updates everyupdate_periodseconds in the thread mode. Hence, there can 
                be a small delay between last callingbar.iter()and next try for printing 
                something. So, if you want to print anything after the progress is done be aware to usebar.wait()*stop()andwait()are needed only in the thread mode.Examplesfromawesome_progress_barimportProgressBarimporttimetotal=133bar=ProgressBar(total,bar_length=50)try:forxinrange(total):time.sleep(0.1)bar.iter(' Appended')except:bar.stop()bar.wait()print('Bar is done')# Progress: |=========== 00:15 ============| 100.00% Appended# Bar is donefromawesome_progress_barimportProgressBarbar=ProgressBar(100,prefix='Prefix',suffix='Suffix',use_eta=True,bar_length=70)# Prefix: в ‡ |==>             00:00/00:14                |   5.26% Suffixbar=ProgressBar(100,fill='#',use_time=False,bar_length=50,use_spinner=False)# Progress: |##########>                   |  33.83%bar=ProgressBar(100,time_format='hhh mmmin sss',bar_length=70,spinner_type='s')# Progress: - |=======>         00h 00min 02s                  |  16.54%bar=ProgressBar(100,bar_length=70,spinner_type='db')# Progress: вў€вЎ± |===========>         00:04                     |  24.81%See morehere.Feel free to suggest ideas to improve this package in the GitHub's Issues section.