~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui/__init__.py

  • Committer: Martin
  • Date: 2011-05-21 16:29:38 UTC
  • mto: This revision was merged to the branch mainline in revision 5907.
  • Revision ID: gzlist@googlemail.com-20110521162938-1vrw3hp0197l3vrl
Add tests for non-ascii conflict serialisation

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
from bzrlib.lazy_import import lazy_import
48
48
lazy_import(globals(), """
49
49
from bzrlib import (
50
 
    config,
51
50
    osutils,
52
51
    progress,
53
52
    trace,
146
145
            "This may take some time. Upgrade the repositories to the "
147
146
            "same format for better performance."
148
147
            ),
149
 
        experimental_format_fetch=("Fetching into experimental format "
150
 
            "%(to_format)s.\n"
151
 
            "This format may be unreliable or change in the future "
152
 
            "without an upgrade path.\n"),
153
148
        deprecated_command=(
154
149
            "The command 'bzr %(deprecated_name)s' "
155
150
            "has been deprecated in bzr %(deprecated_in_version)s. "
159
154
            "It is recommended that you upgrade by "
160
155
            "running the command\n"
161
156
            "  bzr upgrade %(basedir)s"),
162
 
        locks_steal_dead=(
163
 
            u"Stole dead lock %(lock_url)s %(other_holder_info)s."),
164
157
        )
165
158
 
166
159
    def __init__(self):
211
204
        """
212
205
        return self.get_boolean(prompt % prompt_kwargs)
213
206
 
214
 
    def get_password(self, prompt=u'', **kwargs):
 
207
    def get_password(self, prompt='', **kwargs):
215
208
        """Prompt the user for a password.
216
209
 
217
 
        :param prompt: The prompt to present the user (must be unicode)
 
210
        :param prompt: The prompt to present the user
218
211
        :param kwargs: Arguments which will be expanded into the prompt.
219
212
                       This lets front ends display different things if
220
213
                       they so choose.
248
241
        """
249
242
        # XXX: is the caller supposed to close the resulting object?
250
243
        if encoding is None:
251
 
            encoding = config.GlobalStack().get('output_encoding')
 
244
            from bzrlib import config
 
245
            encoding = config.GlobalConfig().get_user_option(
 
246
                'output_encoding')
252
247
        if encoding is None:
253
248
            encoding = osutils.get_terminal_encoding(trace=True)
254
249
        if encoding_type is None:
309
304
        try:
310
305
            template = self._user_warning_templates[warning_id]
311
306
        except KeyError:
312
 
            fail = "bzr warning: %r, %r" % (warning_id, message_args)
313
 
            warnings.warn("no template for warning: " + fail)   # so tests will fail etc
 
307
            fail = "failed to format warning %r, %r" % (warning_id, message_args)
 
308
            warnings.warn(fail)   # so tests will fail etc
314
309
            return fail
315
310
        try:
316
311
            return template % message_args
317
312
        except ValueError, e:
318
 
            fail = "bzr unprintable warning: %r, %r, %s" % (
 
313
            fail = "failed to format warning %r, %r: %s" % (
319
314
                warning_id, message_args, e)
320
315
            warnings.warn(fail)   # so tests will fail etc
321
316
            return fail
411
406
        """Show a warning to the user."""
412
407
        raise NotImplementedError(self.show_warning)
413
408
 
 
409
    def warn_cross_format_fetch(self, from_format, to_format):
 
410
        """Warn about a potentially slow cross-format transfer.
 
411
        
 
412
        This is deprecated in favor of show_user_warning, but retained for api
 
413
        compatibility in 2.0 and 2.1.
 
414
        """
 
415
        self.show_user_warning('cross_format_fetch', from_format=from_format,
 
416
            to_format=to_format)
 
417
 
 
418
    def warn_experimental_format_fetch(self, inter):
 
419
        """Warn about fetching into experimental repository formats."""
 
420
        if inter.target._format.experimental:
 
421
            trace.warning("Fetching into experimental format %s.\n"
 
422
                "This format may be unreliable or change in the future "
 
423
                "without an upgrade path.\n" % (inter.target._format,))
 
424
 
414
425
 
415
426
class NoninteractiveUIFactory(UIFactory):
416
427
    """Base class for UIs with no user."""
472
483
    def get_integer(self, prompt):
473
484
        return self.responses.pop(0)
474
485
 
475
 
    def get_password(self, prompt=u'', **kwargs):
 
486
    def get_password(self, prompt='', **kwargs):
476
487
        return self.responses.pop(0)
477
488
 
478
489
    def get_username(self, prompt, **kwargs):