Пример #1
0
def remove(sheet, default="yes"):
    """Ask a yes/no/quit sheet via raw_input() and return their answer.

    "sheet" is a string that is presented to the user.
    "default" is the presumed answer if the user just hits <Enter>.
        It must be "yes" (the default), "no", "quit" or None (meaning
        an answer is required of the user).
    The "answer" return value is one of "yes", "no" or "quit".
    """

    if not exists(sheet):
        die('\033[1;31mNo\033[0m cheatsheet found for \033[1;31m' + sheet + '\033[0m')

    sheet = sheets.get()[sheet]

    valid = {"yes":"yes",   "y":"yes",    "ye":"yes",
             "no":"no",     "n":"no",
             "quit":"quit", "qui":"quit", "qu":"quit", "q":"quit"}
    if default == None:
        prompt = " [y/n/q] "
    elif default == "yes":
        prompt = " [Y/n/q] "
    elif default == "no":
        prompt = " [y/N/q] "
    elif default == "quit":
        prompt = " [y/n/Q] "
    else:
        raise ValueError("invalid default answer: '%s'" % default)
    while 1:
        sys.stdout.write(sheet + prompt)
        choice = input().lower()
        if default is not None and choice == '':
            print("Delete\033[1;31m %s \033[0mfile " % sheet)
            os.remove(sheet)
            return default
        elif choice in valid.keys():
            print("Delete\033[1;31m %s \033[0mfile " % sheet)
            os.remove(sheet)
            return valid[choice]
        else:
            sys.stdout.write("Please respond with 'yes', 'no' or 'quit'.\n")
Пример #2
0
def path(sheet):
    """ Returns a sheet's filesystem path """
    return sheets.get()[sheet]
Пример #3
0
def is_writable(sheet):
    """ Predicate that returns true if the sheet is writeable """
    return sheet in sheets.get() and os.access(path(sheet), os.W_OK)
Пример #4
0
def exists_in_default_path(sheet):
    """ Predicate that returns true if the sheet exists in default_path"""
    default_path_sheet = os.path.join(sheets.default_path(), sheet)
    return sheet in sheets.get() and os.access(default_path_sheet, os.R_OK)
Пример #5
0
def exists(sheet):
    """ Predicate that returns true if the sheet exists """
    return sheet in sheets.get() and os.access(path(sheet), os.R_OK)