diff options
| -rw-r--r-- | progress.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/progress.py b/progress.py index 98bb6429..b119b374 100644 --- a/progress.py +++ b/progress.py | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | # limitations under the License. | 14 | # limitations under the License. |
| 15 | 15 | ||
| 16 | import sys | 16 | import sys |
| 17 | from time import time | ||
| 17 | from trace import IsTrace | 18 | from trace import IsTrace |
| 18 | 19 | ||
| 19 | class Progress(object): | 20 | class Progress(object): |
| @@ -22,6 +23,8 @@ class Progress(object): | |||
| 22 | self._total = total | 23 | self._total = total |
| 23 | self._done = 0 | 24 | self._done = 0 |
| 24 | self._lastp = -1 | 25 | self._lastp = -1 |
| 26 | self._start = time() | ||
| 27 | self._show = False | ||
| 25 | 28 | ||
| 26 | def update(self, inc=1): | 29 | def update(self, inc=1): |
| 27 | self._done += inc | 30 | self._done += inc |
| @@ -29,6 +32,12 @@ class Progress(object): | |||
| 29 | if IsTrace(): | 32 | if IsTrace(): |
| 30 | return | 33 | return |
| 31 | 34 | ||
| 35 | if not self._show: | ||
| 36 | if 0.5 <= time() - self._start: | ||
| 37 | self._show = True | ||
| 38 | else: | ||
| 39 | return | ||
| 40 | |||
| 32 | if self._total <= 0: | 41 | if self._total <= 0: |
| 33 | sys.stderr.write('\r%s: %d, ' % ( | 42 | sys.stderr.write('\r%s: %d, ' % ( |
| 34 | self._title, | 43 | self._title, |
| @@ -47,7 +56,7 @@ class Progress(object): | |||
| 47 | sys.stderr.flush() | 56 | sys.stderr.flush() |
| 48 | 57 | ||
| 49 | def end(self): | 58 | def end(self): |
| 50 | if IsTrace(): | 59 | if IsTrace() or not self._show: |
| 51 | return | 60 | return |
| 52 | 61 | ||
| 53 | if self._total <= 0: | 62 | if self._total <= 0: |
