diff options
author | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-06-26 17:54:10 +0200 |
---|---|---|
committer | Pierre-Yves David <pierre-yves.david@logilab.fr> | 2008-06-26 17:54:10 +0200 |
commit | 8bf1f035c9e3eda62011b5b2d6f663263b33177e (patch) | |
tree | ce4e63ae0bc9546bd1913991fec5c8b6b7701030 | |
parent | bfa2ba01ff28072880203cbf61d2705574e2489d (diff) | |
parent | faad3def4cb6cc286df60265c67197cec359bfb4 (diff) | |
download | logilab-common-8bf1f035c9e3eda62011b5b2d6f663263b33177e.tar.gz |
merge
-rw-r--r-- | shellutils.py | 17 |
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() |