'Requests from the user using `raw_input` if `subject` should be
performed. When `careful`, the default answer is NO, otherwise YES.
Returns the user answer in the form `True` or `False`.'

def ask(self, subject='perform    this    action', careful=False):

    sample = '(y/N)'
    if (not careful):
        sample = '(Y/n)'
    prompt = ('You    really    want    to    %s    %s?    ' % (subject, sample))
    try:
        answer = input(prompt).lower()
        if careful:
            return (answer in ('yes', 'y'))
        else:
            return (answer not in ('no', 'n'))
    except EOFError:
        print(file=sys.stderr)
        default = True
        if careful:
            default = False
        return default
