summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Yves David <pierre-yves.david@logilab.fr>2008-06-26 17:54:10 +0200
committerPierre-Yves David <pierre-yves.david@logilab.fr>2008-06-26 17:54:10 +0200
commit8bf1f035c9e3eda62011b5b2d6f663263b33177e (patch)
treece4e63ae0bc9546bd1913991fec5c8b6b7701030
parentbfa2ba01ff28072880203cbf61d2705574e2489d (diff)
parentfaad3def4cb6cc286df60265c67197cec359bfb4 (diff)
downloadlogilab-common-8bf1f035c9e3eda62011b5b2d6f663263b33177e.tar.gz
merge
-rw-r--r--shellutils.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/shellutils.py b/shellutils.py
index dd9207f..d855ae5 100644
--- a/shellutils.py
+++ b/shellutils.py
@@ -192,16 +192,15 @@ class ProgressBar(object):
"""a simple text progression bar"""
def __init__(self, nbops, size=20., stream=sys.stdout):
- self._dotevery = max(nbops / size, 1)
- self._fstr = '\r[%-20s]'
- self._dotcount, self._dots = 1, []
+ self._fstr = '\r[%%-%ss]' % size
self._stream = stream
+ self._total = nbops
+ self._size = size
+ self._current = 0
def update(self):
"""update the progression bar"""
- self._dotcount += 1
- if self._dotcount >= self._dotevery:
- self._dotcount = 1
- self._dots.append('.')
- self._stream.write(self._fstr % ''.join(self._dots))
- self._stream.flush()
+ self._current += 1
+ progress = int((float(self._current)/float(self._total))*self._size)
+ self._stream.write(self._fstr % ('.' * progress) )
+ self._stream.flush()