def keyboard_input(message, yesno=False):
    """ Get keyboard input from a human, optionally reasking for valid
    yes or no input.

    Parameters
    ----------
    message : :obj:`str`
        the message to display to the user
    yesno : :obj:`bool`
        whether or not to enforce yes or no inputs
    
    Returns
    -------
    :obj:`str`
        string input by the human
    """
    # add space for readability
    message += ' '

    # add yes or no to message
    if yesno:
        message += '[y/n] '

    # ask human
    human_input = input(message)
    if yesno:
        while human_input.lower() != 'n' and human_input.lower() != 'y':
            logging.info('Did not understand input. Please answer \'y\' or \'n\'')
            human_input = input(message)
    return human_input
Get keyboard input from a human, optionally reasking for valid
    yes or no input.

    Parameters
    ----------
    message : :obj:`str`
        the message to display to the user
    yesno : :obj:`bool`
        whether or not to enforce yes or no inputs
    
    Returns
    -------
    :obj:`str`
        string input by the human