# Perhaps this should go in the utils module.
import sys
import time
class ProgressPrinter(object):
"Utility class for printing some simple progress output for installs/uninstalls"
def __init__(self, msg, section=False, indent=0):
self.start = time.time()
if indent: sys.stdout.write(" " * indent)
if section: sys.stdout.write(msg)
else: sys.stdout.write("%s..." % msg)
sys.stdout.flush()
def finish(self, msg="done"):
end = time.time()
elapsed = max(min((end - self.start) * 20, 2), 0.5)
finish_at = end + elapsed
now = end
while now < finish_at:
sys.stdout.write(".")
sys.stdout.flush()
time.sleep(0.05)
now = time.time()
sys.stdout.write("%s\n" % msg)
sys.stdout.flush()