def required_input(query, *expected_values):
    """
    Request user input with an expected set of values.
    The user will be constantly polled for a value until one of the expected values are input.
    """
    if len(expected_values) == 0:
        raise Exception("Unexpected length of expected_values tuple. Should be > 0.")

    query += f' ({"/".join(expected_values)}): '
    while True:
        user_input = input(f'\n{query}').lower()
        if user_input in expected_values:
            return user_input