~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/progress.py

  • Committer: Martin Pool
  • Date: 2010-06-02 05:03:31 UTC
  • mto: This revision was merged to the branch mainline in revision 5279.
  • Revision ID: mbp@canonical.com-20100602050331-n2p1qt8hfsahspnv
Correct more sloppy use of the term 'Linux'

Show diffs side-by-side

added added

removed removed

Lines of Context:
152
152
                own_fraction = 0.0
153
153
            return self._parent_task._overall_completion_fraction(own_fraction)
154
154
 
 
155
    @deprecated_method(deprecated_in((2, 1, 0)))
 
156
    def note(self, fmt_string, *args):
 
157
        """Record a note without disrupting the progress bar.
 
158
        
 
159
        Deprecated: use ui_factory.note() instead or bzrlib.trace.  Note that
 
160
        ui_factory.note takes just one string as the argument, not a format
 
161
        string and arguments.
 
162
        """
 
163
        if args:
 
164
            self.ui_factory.note(fmt_string % args)
 
165
        else:
 
166
            self.ui_factory.note(fmt_string)
 
167
 
155
168
    def clear(self):
156
169
        # TODO: deprecate this method; the model object shouldn't be concerned
157
170
        # with whether it's shown or not.  Most callers use this because they
166
179
            self.ui_factory.clear_term()
167
180
 
168
181
 
 
182
# NOTE: This is also deprecated; you should provide a ProgressView instead.
 
183
class _BaseProgressBar(object):
 
184
 
 
185
    def __init__(self,
 
186
                 to_file=None,
 
187
                 show_pct=False,
 
188
                 show_spinner=False,
 
189
                 show_eta=False,
 
190
                 show_bar=True,
 
191
                 show_count=True,
 
192
                 to_messages_file=None,
 
193
                 _stack=None):
 
194
        object.__init__(self)
 
195
        if to_file is None:
 
196
            to_file = sys.stderr
 
197
        if to_messages_file is None:
 
198
            to_messages_file = sys.stdout
 
199
        self.to_file = to_file
 
200
        self.to_messages_file = to_messages_file
 
201
        self.last_msg = None
 
202
        self.last_cnt = None
 
203
        self.last_total = None
 
204
        self.show_pct = show_pct
 
205
        self.show_spinner = show_spinner
 
206
        self.show_eta = show_eta
 
207
        self.show_bar = show_bar
 
208
        self.show_count = show_count
 
209
        self._stack = _stack
 
210
        # seed throttler
 
211
        self.MIN_PAUSE = 0.1 # seconds
 
212
        now = time.time()
 
213
        # starting now
 
214
        self.start_time = now
 
215
        # next update should not throttle
 
216
        self.last_update = now - self.MIN_PAUSE - 1
 
217
 
 
218
    def finished(self):
 
219
        """Return this bar to its progress stack."""
 
220
        self.clear()
 
221
        self._stack.return_pb(self)
 
222
 
 
223
    def note(self, fmt_string, *args, **kwargs):
 
224
        """Record a note without disrupting the progress bar."""
 
225
        self.clear()
 
226
        self.to_messages_file.write(fmt_string % args)
 
227
        self.to_messages_file.write('\n')
 
228
 
 
229
 
169
230
class DummyProgress(object):
170
231
    """Progress-bar standin that does nothing.
171
232
 
187
248
    def clear(self):
188
249
        pass
189
250
 
 
251
    def note(self, fmt_string, *args, **kwargs):
 
252
        """See _BaseProgressBar.note()."""
 
253
 
190
254
    def child_progress(self, **kwargs):
191
255
        return DummyProgress(**kwargs)
192
256