update xlib

This commit is contained in:
iperov 2021-11-03 21:18:53 +04:00
parent 56b171a3de
commit 8489949f2c
5 changed files with 641 additions and 7 deletions

View file

@ -2,13 +2,15 @@ from typing import Generator
_progress_symbols = "|/-\\"
def progress_bar_iterator(iterable, desc = '') -> Generator:
n_count = len(iterable)
progress_bar_print(0, n_count, desc)
def progress_bar_iterator(iterable, count : int = None, desc = '', suppress_print=False) -> Generator:
if count is None:
count = len(iterable)
if not suppress_print:
progress_bar_print(0, count, desc)
for i, item in enumerate(iterable):
yield item
progress_bar_print(i + 1, n_count, desc)
if not suppress_print:
progress_bar_print(i + 1, count, desc)
def progress_bar_print(n, n_count, desc = ''):
str_max_len = 80
@ -19,8 +21,7 @@ def progress_bar_print(n, n_count, desc = ''):
suffix_str = f'| {n}/{n_count}'
bar_len = str_max_len - (prefix_str_len+len(suffix_str))
bar_head = '#'*int( (n/n_count)*bar_len)
bar_head = '#'*int( (n/ max(1,n_count) )*bar_len)
if n != n_count:
bar_head += _progress_symbols[n % len(_progress_symbols)]
bar_tail = '-'*( bar_len - len(bar_head) )