diff options
author | erkin <me@erkin.party> | 2023-10-12 19:41:37 +0300 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2023-10-14 07:42:40 +0000 |
commit | 8ab27f839a5545464db46ea14a2d5326b86553a6 (patch) | |
tree | 39b4df2db1507b11d77a51bacaf9db18faf2cf00 /python/vyos/utils | |
parent | 3b202fa469f58b35d1ce2e1cb91015f9551618c8 (diff) | |
download | vyos-1x-8ab27f839a5545464db46ea14a2d5326b86553a6.tar.gz vyos-1x-8ab27f839a5545464db46ea14a2d5326b86553a6.zip |
remote: T5650: Resize-aware progressbar implementation
(cherry picked from commit 799d24eba18d6710219b7380cbafb954b9eec5ce)
Diffstat (limited to 'python/vyos/utils')
-rw-r--r-- | python/vyos/utils/io.py | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/python/vyos/utils/io.py b/python/vyos/utils/io.py index 843494855..5fffa62f8 100644 --- a/python/vyos/utils/io.py +++ b/python/vyos/utils/io.py @@ -24,45 +24,6 @@ def print_error(str='', end='\n'): sys.stderr.write(end) sys.stderr.flush() -def make_progressbar(): - """ - Make a procedure that takes two arguments `done` and `total` and prints a - progressbar based on the ratio thereof, whose length is determined by the - width of the terminal. - """ - import shutil, math - col, _ = shutil.get_terminal_size() - col = max(col - 15, 20) - def print_progressbar(done, total): - if done <= total: - increment = total / col - length = math.ceil(done / increment) - percentage = str(math.ceil(100 * done / total)).rjust(3) - print_error(f'[{length * "#"}{(col - length) * "_"}] {percentage}%', '\r') - # Print a newline so that the subsequent prints don't overwrite the full bar. - if done == total: - print_error() - return print_progressbar - -def make_incremental_progressbar(increment: float): - """ - Make a generator that displays a progressbar that grows monotonically with - every iteration. - First call displays it at 0% and every subsequent iteration displays it - at `increment` increments where 0.0 < `increment` < 1.0. - Intended for FTP and HTTP transfers with stateless callbacks. - """ - print_progressbar = make_progressbar() - total = 0.0 - while total < 1.0: - print_progressbar(total, 1.0) - yield - total += increment - print_progressbar(1, 1) - # Ignore further calls. - while True: - yield - def ask_input(question, default='', numeric_only=False, valid_responses=[]): question_out = question if default: |