~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui/__init__.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-12-09 06:37:40 UTC
  • mfrom: (4792.8.16 progress-output)
  • Revision ID: pqm@pqm.ubuntu.com-20091209063740-orfojzx53lbt29ey
(mbp) progress bars automatically synchronize with other terminal
        output

Show diffs side-by-side

added added

removed removed

Lines of Context:
125
125
        """
126
126
        raise NotImplementedError(self.get_password)
127
127
 
 
128
    def make_output_stream(self, encoding=None, encoding_type=None):
 
129
        """Get a stream for sending out bulk text data.
 
130
 
 
131
        This is used for commands that produce bulk text, such as log or diff
 
132
        output, as opposed to user interaction.  This should work even for
 
133
        non-interactive user interfaces.  Typically this goes to a decorated
 
134
        version of stdout, but in a GUI it might be appropriate to send it to a 
 
135
        window displaying the text.
 
136
     
 
137
        :param encoding: Unicode encoding for output; default is the 
 
138
            terminal encoding, which may be different from the user encoding.
 
139
            (See get_terminal_encoding.)
 
140
 
 
141
        :param encoding_type: How to handle encoding errors:
 
142
            replace/strict/escape/exact.  Default is replace.
 
143
        """
 
144
        # XXX: is the caller supposed to close the resulting object?
 
145
        if encoding is None:
 
146
            encoding = osutils.get_terminal_encoding()
 
147
        if encoding_type is None:
 
148
            encoding_type = 'replace'
 
149
        out_stream = self._make_output_stream_explicit(encoding, encoding_type)
 
150
        return out_stream
 
151
 
 
152
    def _make_output_stream_explicit(self, encoding, encoding_type):
 
153
        raise NotImplementedError("%s doesn't support make_output_stream"
 
154
            % (self.__class__.__name__))
 
155
 
128
156
    def nested_progress_bar(self):
129
157
        """Return a nested progress bar.
130
158