1
1
# Copyright (C) 2005 Aaron Bentley
2
# <aaron@aaronbentley.com>
2
# <aaron.bentley@utoronto.ca>
4
4
# This program is free software; you can redistribute it and/or modify
5
5
# it under the terms of the GNU General Public License as published by
16
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
from bzrlib.progress import ProgressBar
22
20
class Progress(object):
23
21
def __init__(self, units, current, total=None):
25
23
self.current = current
28
def _get_percent(self):
29
if self.total is None:
31
return 100.0 * self.current / self.total
33
percent = property(_get_percent)
26
if self.total is not None:
27
self.percent = 100.0 * current / total
36
30
if self.total is not None:
37
31
return "%i of %i %s %.1f%%" % (self.current, self.total, self.units,
40
return "%i %s" (self.current, self.units)
42
def show_progress(pi, prog):
43
pi.update(prog.units, prog.current, prog.total)
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))
45
47
def clear_progress_bar():
46
sys.stderr.write('\r%s\r' % (' '*79))
48
sys.stdout.write('\r%s\r' % (' '*79))