~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ui.py

and the tutorial patch came back, the very next day

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
displays no output.
29
29
"""
30
30
 
 
31
 
 
32
 
 
33
 
 
34
 
31
35
import bzrlib.progress
32
36
 
33
37
 
34
 
class UIFactory(object):
35
 
    """UI abstraction.
36
 
 
37
 
    This tells the library how to display things to the user.  Through this
38
 
    layer different applications can choose the style of UI.
39
 
    """
 
38
class TextUIFactory(object):
40
39
    def progress_bar(self):
41
 
        """Return a progress bar object"""
42
 
        raise NotImplementedError
43
 
 
44
 
    def get_password(self, prompt='', **kwargs):
45
 
        """Prompt the user for a password.
46
 
 
47
 
        :param prompt: The prompt to present the user
48
 
        :param kwargs: Arguments which will be expanded into the prompt.
49
 
                       This lets front ends display different things if
50
 
                       they so choose.
51
 
        :return: The password string, return None if the user 
52
 
                 canceled the request.
53
 
        """
54
 
        raise NotImplementedError
55
 
        
56
 
 
57
 
class SilentUIFactory(UIFactory):
58
 
    """A UI Factory which never prints anything.
59
 
 
60
 
    This is the default UI, if another one is never registered.
61
 
    """
 
40
 
 
41
        # this in turn is abstract, and creates either a tty or dots
 
42
        # bar depending on what we think of the terminal
 
43
        return bzrlib.progress.ProgressBar()
 
44
 
 
45
 
 
46
class SilentUIFactory(object):
62
47
    def progress_bar(self):
63
48
        return bzrlib.progress.DummyProgress()
64
49
 
65
 
    def get_password(self, prompt='', **kwargs):
66
 
        return None
67
 
 
68
50
 
69
51
ui_factory = SilentUIFactory()