in scripts/microupload.py [0:0]
def progress(msg: str, xs: Sequence[T]) -> Iterable[T]:
"""Show progress while iterating over a sequence."""
size = len(xs)
sys.stderr.write('\r{}: 0% (0/{})'.format(msg, size))
sys.stderr.flush()
for i, x in enumerate(xs, 1):
yield x
s = '{0}: {1}% ({2}/{3})'.format(msg, int(i * 100 / size), i, size)
sys.stderr.write('\r' + s)
sys.stderr.flush()
sys.stderr.write('\n')
sys.stderr.flush()