16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
from bzrlib.progress import ProgressBar
20
22
class Progress(object):
21
23
def __init__(self, units, current, total=None):
23
25
self.current = current
26
if self.total is not None:
27
self.percent = 100.0 * current / total
28
def _get_percent(self):
29
if self.total is None:
31
return 100.0 * self.current / self.total
33
percent = property(_get_percent)
30
36
if self.total is not None:
31
37
return "%i of %i %s %.1f%%" % (self.current, self.total, self.units,
34
return "%i %s" (self.current, self.units)
37
def progress_bar(progress):
38
fmt = " %i of %i %s (%.1f%%)"
39
f = fmt % (progress.total, progress.total, progress.units, 100.0)
42
markers = int (float(cols) * progress.current / progress.total)
43
txt = fmt % (progress.current, progress.total, progress.units,
45
sys.stdout.write("\r[%s%s]%s" % ('='*markers, ' '*(cols-markers), txt))
40
return "%i %s" (self.current, self.units)
42
def show_progress(pi, prog):
43
pi.update(prog.units, prog.current, prog.total)
47
45
def clear_progress_bar():
48
sys.stdout.write('\r%s\r' % (' '*79))
46
sys.stderr.write('\r%s\r' % (' '*79))