urwid_timed_progress is an Urwid progress widget that displays enhanced progress with custom units, rate of progress, and estimated time remaining.
pip install urwid_timed_progress
Create timed progress bar, much like a regular ProgressBar:
file_size_mb = 1234 progress = TimedProgressBar('normal', 'complete', label='Current File', units='MB', done=file_size_mb)
As the file operation proceeds update the progress bar:
progress.add_progress(1) # each time 1 unit of progress has been made
add_progress()
updates the progress bar rate and estimated time remaining.
To update the timer without adding progress do:
progress.add_progress(0)
See example code.
The project lives on GitHub. Bug reports, questions, and comments are most welcome.