~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: 2006-04-22 07:28:09 UTC
  • mfrom: (1551.2.56 win32fixes)
  • Revision ID: pqm@pqm.ubuntu.com-20060422072809-b06e742274a4e9f4
Misc fixes for win32

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
displays no output.
29
29
"""
30
30
 
31
 
import sys
32
31
 
33
32
import bzrlib.progress
34
33
from bzrlib.symbol_versioning import *
77
76
        cursor at the leftmost position."""
78
77
        raise NotImplementedError(self.clear_term)
79
78
 
80
 
    def get_boolean(self, prompt):
81
 
        """Get a boolean question answered from the user. 
82
 
 
83
 
        :param prompt: a message to prompt the user with. Should be a single
84
 
        line without terminating \n.
85
 
        :return: True or False for y/yes or n/no.
86
 
        """
87
 
        raise NotImplementedError(self.get_boolean)
88
 
 
89
 
 
90
 
class CLIUIFactory(UIFactory):
91
 
    """Common behaviour for command line UI factories."""
92
 
 
93
 
    def __init__(self):
94
 
        super(CLIUIFactory, self).__init__()
95
 
        self.stdin = sys.stdin
96
 
 
97
 
    def get_boolean(self, prompt):
98
 
        self.clear_term()
99
 
        # FIXME: make a regexp and handle case variations as well.
100
 
        while True:
101
 
            self.prompt(prompt)
102
 
            line = self.stdin.readline()
103
 
            if line in ('y\n', 'yes\n'):
104
 
                return True
105
 
            if line in ('n\n', 'no\n'):
106
 
                return False
107
 
 
108
 
    def prompt(self, prompt):
109
 
        """Emit prompt on the CLI."""
110
 
 
111
 
 
112
 
class SilentUIFactory(CLIUIFactory):
 
79
 
 
80
class SilentUIFactory(UIFactory):
113
81
    """A UI Factory which never prints anything.
114
82
 
115
83
    This is the default UI, if another one is never registered.